首先,和所有的blog写法一样,总得大致介绍一下SIP协议到底能干什么吧。否则到最后连自己都不知道他是干什么的了(当然这是不可能的了)
SIP是一个应用层的控制协议,可以用来建立、修改和终止多媒体会话(或者会议),同时也能够邀请参与者参加已经存在的会话,比如多方会话。主要有以下几种功能:
1、用户定位:检查终端用户的位置,用于通讯;
2、用户有效性:检查用户参与会话的意愿程度;
3、用户能力:检查媒体和媒体的参数;
4、建立会话:在主被叫间建立会话及相关参数;
5、会话管理:包括发送和终止会话,修改会话参数,激活服务等。
SIP本身不提供服务,SIP提供了一个会话管理的基础协议,可以用来实现不同的服务;SIP协议可以理解为一个部件和其他协议组合起来实现不同应用。如SIP结合SDP和RTP等协议来实现电话的呼叫管理控制和语音传输等,从而实现网络电话应用。
理解SIP协议的关键在于SIP协议的头域理解,在此我并不打算对所有的头域进行一一解释,那是RFC3261该干的事情,而不是我干的事情。在此我仅就几种常见的用户代理行(UAC)为中用到的几个关键的头域加以说明,然后就我这实际的使用过程中遇到的几种情况做一个详细的说明。给自己留下一个足迹,以备以后查询之用,同时也希望能够帮助到各位,达到大家共勉那是最好了。
毫无疑问,在SIP协议中最重要的几个用户代理行为就是REGISTER、INVITE、CANCEL和BYE这几个行为&#