1. SIP中的SDP交互
SIP和SDP是传递媒体消息的美妙组合,SIP提供了建立一个多媒体会话的消息机制,而SDP则提供了一个结构化语言描述这些会话。SIP协议头中的Content-Type字段可以定义为sdp类型的内容。
下图是一个简单的INVITE请求信令交换的过程,为流程清晰,省略的部分字段的显示。
2. 媒体协商
呼叫中的某一方可能不支持另外一方提供的媒体格式,对于INVITE请求的回应应该包含状态代码488(此处不可接受)或者606(不可接受),此外,回应还要包含一个“warning”首部,其告警代码为304(媒体类型不可用)或者305(不兼容的媒体格式)。此时,呼叫方可以选择提交一个新的INVITE请求。
在某些情况下,被叫方可能只支持音频而不支持视频的情况,那么被叫方应该返回它支持的流的媒体信息,同时还应该返回它不支持的流的媒体信息,但端口号为0.
3. OPTIONS方法
由于语音编码技术范围比较广,所以会出现不同SIP用户之间能力的不匹配。当不知道一方是否具备处理某特定媒体类型的性能时,OPTIONS方法可用来提供事先发现其性能的机制。这个过程避免了那部分注定失败的会话建立。
下图是OPTIONS信令交互流程