标准SIP发送双流BFCP协议报文分析

视频会议中使用SIP协议进行对接,不可避免会遇到发送和接收双流的问题,双流广义上指主流和演示流,这里讲的发送双流指的是演示流,一般用在开会时,展示PPT等内容。

 

这里先来讲讲SIP携带的SDP中BFCP的协商问题,部分报文如下:

 

主叫INVITE报文:

132532tyd2y6jhp2oy5j2g.png

 

 被叫INVITE 200 OK部分报文:

132532enk9kh7w1cte6zhx.png

 

主叫ACK中携带的SDP部分报文如下:

132532u3se18ozsjzpaava.png

 

BFCP客户端和服务端连接后,需要发送Hello握手报文,接收端收到报文后,回复HelloAck报文,表示BFCP握手成功,握手交互报文如下:

132532fak1aiudngss3h5h.png

 

132532dyuzkzy9a16e23fy.png

 

需要特别注意:客户端发送报文中的User ID、Conference ID和Floor ID字段需要携带上服务端SDP中声明的相关字段的值,否则遇到判断比较严格的厂家,BFCP客户端发送的报文,服务端会不响应或者回复拒绝的报文,携带上相关的错误原因及错误码。

 

BFCP申请发送演示流交互过程如下:

132533bmz77s2k77pi2dss.png

 

BFCP服务端回复客户端演示流申请结果如下:

132533dhhoy5i28o1dtmom.png

 

接收端接收一段演示流后,可能也想发送演示流,这时发送端还没有停止发送演示流,BFCP服务端(客户端也可以进行演示流抢占,这里不再展示)可能会进行演示流抢占,这时需要先给BFCP客户端发送演示流抢占命令,即先发送让客户端停止发送演示的命令,再发起演示的命令,具体交互报文如下:

132533op7ajdas5f545j5z.png

 

BFCP客户端对服务端申请客户端停止演示信令响应(这里客户端回复Ack表示同意):

132533gqrc2ocyb2e8xcxu.png

 

接着服务端发起演示,客户端回复Ack表示同意接收演示,具体报文如下:

132533jil3s3iimyim756b.png

132533xvx7cx9jj1rtejav.png

 

BFCP服务端停止演示,交互信令如下:

132533j68hoxqgtx7eehf2.png

132533bxzfjc5dfxvguwxx.png

 

BFCP客户端取消演示交互报文如下:

132533wcmsrgmxyw1ghe45.png

 
posted @ 2023-03-07 10:30  阿风小子  阅读(380)  评论(0编辑  收藏  举报