1、SIP消息
SIP 协议是一个基于文本的协议,使用 UTF-8 字符集(RFC2279[7])。一个 SIP 消息既可以是一个从客户端到服务器端的请求,也可以是一个从服务器端到客户端的一个应答。
消息类型都由一个起始行,一个或者多个包头域,一个可选的消息中文组成。
起始行、每一个包头行,空行、都必须由回车换行组成(CRLF)。即使消息正文没有,也必须有一个空行跟随。
2、请求
SIP 请求是根据起始行中的 Request-Line 来区分的。一个 Request_line 包含方法名字,Request-URI,用单个空格(SP)间隔开的协议版本。
Request-Line 由 CRLF 结束。除了用作行结束标志以外,不允许 CR 或者 LF 出现在其他地方。在其他域中,不允许出现线形的空白(liner whitespace LWS)
Request-Line = Method SP Request-URI SP SIP-VERSION CRLF
Method: 这个规范规定了 6 中方法:REGISTER 用于登记联系信息,INVITE,ACK, CANCEL 用于建立会话,BYE 用于结束会话,OPTIONS 用于查询服务器负载。SIP 扩展、标准 RFC 追加可能包含扩展的方法。
Request-URI: Request-URI 是一个 SIP 或者 SIPS URI。也可以是一个通用的 URI(RFC 2396[5])。它标志了这个请求所用到的用户或者服务的地址。Request-URI 禁止包含空白字符或者控制字符,并且禁止用”<>”括上。也可以是一个通用的 URI(RFC 2396[5])。它标志了这个请求所用到的用户或者服务的地址。Request-URI 禁止包含空白字符或者控制字符,并且禁止用”<>”括上。
SIP 元素可以支持除了 SIP 或者 SIPS 之外所规定的 Request-URIs。比如”tel” URI 模式(RFC 28