标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

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

主叫INVITE报文:

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

 被叫INVITE 200 OK部分报文:

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等) 

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)

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

标准SIP发送双流BFCP协议报文分析(包括SDP中BFCP描述,BFCP客户端和服务端分别发送演示,以及演示流抢占等)