更新时间:2024-05-21 16:07
SIP消息有两种类型:从客户机到服务器的请求消息(Request)和从服务器到客户机的响应消息(Response)。
呼叫控制请求:
--INVITE:发起呼叫,并对会话进行描述
--ACK:主叫确认收到被叫发送的对INVITE的确认响应
--BYE:释放连接,可由主叫方发起,也可由被叫方发起
--CANCEL:主叫取消呼叫,在连接建立起来之前发送
注册请求:
--REGISTER:在注册服务器上注册用户
能力查询请求:
--OPTIONS:查询服务器的能力
扩展操作:
--INFO:传递信息
服务器向客户端反馈对应请求的处理结果的SIP消息,包括1xx、2xx、3xx、4xx、5xx、6xx响应。
generic-message = start-line
* message-header
CRLF
[ message-body]
SIP消息由一个起始行、消息头、一个标志消息头结束的空行及作为可选项的消息体组成。SIP消息的起始行分为请求行(Request-Line)和状态行(Status-Line)两种。其中,请求行是请求消息的起始行,状态行是响应消息的起始行。可见,请求消息包含请求行、消息头、空行和消息体;响应消息包括状态行、消息头、空行和消息体。
请求消息和响应消息都包括SIP消息头字段和SIP消息体字段。SIP消息头主要用来指明本消息的发起方和接受方,以及经过多少跳转等基本信息;SIP消息体主要用来描述本次会话具体实现方式;通过换行符区分命令行和每一条参数行。
消息头:Call-id;
参数行:Via、From、To、Contact、Csq、Content-length、Max-forward、Content-type、White Space、SDP等。