实时视音频点播基本要求
1.实时视音频点播采用SIP协议中的Invite方法实现
会话连接,采用RTP/RTCP协议实现媒体传输。
2.实时视音频点播的信令流程分为客户端主动发起
和第三方呼叫控制两种方式 (第三方呼叫控制的第
三方控制者宜采用背靠背用户代理实现(B2BUA)
信令流程
一.客户端发起
(1)媒体流接收者向SIP服务器发送Invite消息,消息头域中携带Subject字段,表明点播的视频源ID、发送方媒体流序列号、媒体流接收者ID、接收端媒体流序列号等参数
(2)SIP服务器收到Invite请求后,通过 三方呼叫控制建立媒体服务器和媒体流发送者之间的媒体连接 。向媒体服务器发送Invite消息,此消息不携带SDP消息体
(3)媒体服务器收到SIP服务器的Invite请求后,回复200OK 响应,携带SDP消息体,消息体中描述了媒体服务器接收媒体流的IP、端口、媒体格式等内容
(4)SIP服务器 收到媒体服务器返回的200OK 响应后,向媒体流发送者发送Invite请求,请求中携带消息3中媒体服务器回复的200OK 响应消息体
(5)媒体流发送者收到SIP服务器的Invite请求后,回复200OK 响应,携带SDP消息体,消息体中描述了媒体流发送者发送媒体流的IP、端口、媒体格式、SSRC字段等内容。
(6)SIP服务器收到媒体流发送者返回的200OK 响应后,向媒体服务器发送ACK 请求,请求中携带消息5中媒体流发送者回复的200OK 响应消息体,完成与媒体服务器的Invite会话建立过程。
(7) SIP服务器收到媒体流发送者返回的200OK 响应后,向媒体流发送者发送ACK 请求,请求中不携带消息体,完成与媒体流发送者的Invite会话建立过程。
(8)完成三方呼叫控制后,SIP服务器通过B2BUA 代理方式建立媒体流接收者和媒体服务器之间的媒体连接。在消息1中增加SSRC值,转发给媒体服务器。
(9)媒体服务器收到Invite请求,回复200OK 响应,携带SDP消息体,消息体中描述了媒体服务器发送媒体流的IP、端口、媒体格式、SSRC值等内容。
(10)SIP服务器将消息9转发给媒体流接收者。
(11) 媒体流接收者收到200OK响应后,回复ACK消息,完成与SIP服务器的Invite会话建立过程。
(12)SIP服务器将消息11转发给媒体服务器,完成与媒体服务器的Invite会话建立过程
(13) 媒体流接收者向SIP服务器发送BYE消息,断开消息1、10、11建立的同媒体流接收者的Invite会话。
(14)SIP服务器收到BYE消息后回复200OK响应,会话断开。
(15)SIP服务器收到BYE消息后向媒体服务器发送BYE消息,断开消息8、9、12建立的同媒体服务器的Invite会话。
(16)媒体服务器收到BYE消息后回复200OK响应,会话断开。
(17)SIP服务器向媒体服务器发送BYE消息,断开消息2、3、6建立的同媒体服务器的Invite会话。
(18)媒体服务器收到BYE消息后回复200OK响应,会话断开。
(19)SIP服务器向媒体流发送者发送BYE 消息,断开消息4、5、7建立的同媒体流发送者的Invite会话。
(20)媒体流发送者收到BYE消息后回复200OK响应,会话断开。
二、第三方呼叫控制
(1)SIP服务器向媒体服务器发送Invite消息,此消息不携带SDP消息体
(2)媒体服务器收到SIP服务器的Invite请求后,回复200OK 响应,携带SDP消息体,消息体中描述了媒体服务器接收媒体流的IP、端口、媒体格式等内容;
(3)SIP服务器收到媒体服务器返回的200OK 响应后,向媒体流发送者发送Invite请求,请求中携带消息2中媒体服务器回复的200OK响应消息体,s字段为“Play”代表实时点播,增加y字段描述SSRC值,f字段描述媒体参数;
(4)媒体流发送者收到SIP服务器的Invite请求后,回复200OK 响应,携带SDP消息体,消息体中描述了媒体流发送者发送媒体流的IP、端口、媒体格式、SSRC字段等内容;
(5)SIP服务器收到媒体流发送者返回的200OK 响应后,向媒体服务器发送ACK 请求,请求中携带消息4中媒体流发送者回复的200OK 响应消息体,完成与媒体服务器的Invite会话建立过程;
(6)SIP服务器收到媒体流发送者返回的200OK 响应后,向媒体流发送者发送ACK 请求,请求中不携带消息体,完成与媒体流发送者的Invite会话建立过程;
(7)SIP服务器向媒体流接收者发送Invite消息,此消息不携带SDP消息体;
(8)媒体流接收者收到SIP服务器的Invite请求后,回复200OK 响应,携带SDP消息体,消息体中描述了媒体流接收者接收媒体流的IP、端口、媒体格式等内容;
(9)SIP服务器收到媒体流接收者返回的200OK 响应后,向媒体服务器发送Invite请求,请求中携带消息8中媒体流接收者回复的200OK 响应消息体,s字段为“Play”代表实时点播,增加y字段描述SSRC值;
(10)媒体服务器收到SIP服务器的Invite请求后,回复200OK响应,携带SDP消息体,消息体中描述了媒体服务器发送媒体流的IP、端口、媒体格式、SSRC字段等内容;
(11)SIP服务器收到媒体服务器返回的200OK响应后,向媒体流接收者发送ACK 请求,请求中携带消息10中媒体服务器回复的200OK响应消息体,完成与媒体流接收者的Invite会话建立过程;
(12)SIP服务器收到媒体服务器返回的200OK响应后,向媒体服务器发送ACK 请求,请求中不携带消息体,完成与媒体服务器的Invite会话建立过程;
(13)SIP服务器向媒体流接收者发送BYE 消息,断开消息7、8、11建立的同媒体流接收者的Invite会话;
(14)媒体流接收者收到BYE消息后回复200OK响应,会话断开;
(15)SIP服务器向媒体服务器发送BYE消息,断开消息9、10、12建立的同媒体服务器的Invite会话;
(16)媒体服务器收到BYE消息后回复200OK响应,会话断开;
(17)SIP服务器向媒体服务器发送BYE消息,断开消息1、2、5建立的同媒体服务器的Invite会话;
(18)媒体服务器收到BYE消息后回复200OK响应,会话断开;
(19)SIP服务器向媒体流发送者发送BYE 消息,断开消息3、4、6建立的同媒体流发送者的Invite会话;
(20)媒体流发送者收到BYE消息后回复200OK响应,会话断开。