专注SIP通讯产品与方案

SIP消息实例

请求消息
以下为一请求消息的格式:
INVITE SIPrbob@acme.com SIP/2.0 向 sip:bob@acme.com 发起呼叫,协议版本号
Via: SIP/2.0/UDP alice_ws.radvision.com 通过 proxy: alice_ws.radvision.com
From: Alice A.发起呼叫的用户标识
To: Bob B.所要呼叫的用户
Call-ID:2388990012@alice_ws.radvision.com 对这一呼叫的惟一标识
CSeq: 1命令的序列号,标识一个事件
Subject: Lunch today.呼叫的名字或属性
Content-Iype: application/SDP 消息体的类型
Content-Length: 182消息体的字节长度
一个空白行标识消息头结束,消息体开始
v=0 SDP协议版本号
o=AHce 53655765 2353687637 IN IP4 128.3.4.5会话建立者和会话的标识,会话版本,地 址的协议类型,地址
s=Call from Alice.会话的名字
c=IN IP4 alice_ws.radvision.com 连接的信息
M=audio 3456 RTP/AVP 0 3 4 5对媒体流的描述:类型、端口,呼叫者希望收发的格式
通过以上的例子,可以对SIP协议有一个基本认识。除了在建立会话时进行各种消息交互 外,SIP终端还可以在会话过程中,发出消息改变或添加会话的某些属性。例如,用户在进行 语音通话的过程中,想增加视频通信,可以在不中断通话的情况下,发送新的INVITE消息, 打开双方的视频媒体,使通话变成可视。这为用户的使用带来很大的灵活性。
注册/注销过程
        SIP为用户定义了注册和注销过程,其目的是可以动态建立用户的逻辑地址和其当前联系 地址之间的对应关系,以便实现呼叫路由和对用户移动性的支持。逻辑地址和联系地址的分 离也方便了用户,它不论在何处、使用何种设备,都可以通过惟一的逻辑地址进行通信。
注册/注销过程是通过REGISTER消息和200成功响应来实现的。在注册/注销时,用户将 其逻辑地址和当前联系地址通过REGISTER消息发送给其注册服务器,注册服务器对该请求 消息进行处理,并以200成功响应消息通知用户注册/注销成功。
 呼叫过程
SIP IP电话系统中的呼叫是通过INVITE邀请请求、成功响应和ACK确认请求的三次握 手来实现的,即当主叫用户代理要发起呼叫时,它构造一个INVITE消息,并发送给被叫。被 叫收到邀请后决定接受该呼叫,就回送一个成功响应(状态码为200)o主叫方收到成功响应 后,向对方发送ACK请求。被叫收到ACK请求后,呼叫成功建立。
呼叫的终止通过BYE请求消息来实现。当参与呼叫的任一方要终止呼叫时,它就构造一 个BYE请求消息,并发送给对方。对方收到BYE请求后,释放与此呼叫相关的资源,回送 一个成功响应,表示呼叫已经终止。
当主、被叫双方已建立呼叫,如果任一方想要修改当前的通信参数(通信类型、编码等), 可以通过发送一个对话内的INVITE请求消息(称为re-INyiTE)来实现。
重定向
        当重定向服务器(其功能可包含在代理服务器和用户终端中)收到主叫用户代理的INVITE 邀请消息,它通过查找定位服务器发现该呼叫应该被重新定向(重定向的原因有多种,如用 户位置改变、实现负荷分担等),就构造一个重定向响应消息(状态码为3xx),将新的目标地 址回送给主叫用户代理。主叫用户代理收到重定向响应消息后,将逐一向新的目标地址发送 INVITE邀请,直至收到成功响应并建立呼叫。如果尝试了所有的新目标都无法建立呼叫,则 本次呼叫失败。
能力查询过程
        SIP IP电话系统还提供了一种让用户在不打扰对方用户的情况下查询对方通信能力的手 段。可查询的内容包括:对方支持的请求方法(methods)、支持的内容类型、支持的扩展项、 支持的编码等。
        能力查询通过OPTION请求消息来实现。当用户代理想要查询对方的能力时,它构造一 个OPTION请求消息,发送给对方。对方收到该请求消息后,将自己支持的能力通过响应消 息回送给查询者。如果此时自己可以接收呼叫,就发送成功响应(状态码为200),如果此时 自己忙,就发送自身忙响应(状态码为486)。因此,能力查询过程也可以用于查询对方的忙 闲状态,看是否能够接受呼叫。