图 直接呼叫方式的信令流程
1. 主叫向被叫发出INVITE请求设 BelKBell 的永久地址是 Sip:a. g. bell@bell-tel. com)呼叫 Watson(Watson 的永久地址是 Sip:watson@bell-tel. com),Bcll 当前位于主机 Kton. bell-tel. com 上,并知道 Watson当前的地址是watson@boston. bell-丨el. com。当Bell的客户代理UA要发起呼 叫时,它首先创建一个INVITE的请求:在To头域中填上被叫的地址Sip:watson@bell- tel.com,在请求行的Request-URL中包含被叫的当前地址watson @ boston, bell-tel. com。在From头域中填上主叫地址Sp:a. g. bell@bell-tel. com,在Contact头域中说明 主叫的当前地址a. g. bell@Kton. bell-tel. com。并在消息体(SDP协议的内容)说明Bell 能够接收的RTP音频编码的类型:0(PCMU律)、3(GSM)、4((C..723)和5(DV14)和接收 媒体信息的RTP端口号3456。INVITE消息的格式如下:
C—S: INVITE sip: watson@boston.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP Kton.bell-tel.com
From:A. Bell(Sip:a. g. bell@bell-tel. com)
To:T. Watson (Sip:watson@bell-tel. com)
Call-ID: 3298420296@kton. bell-tel. com
Contact:a. g. bell@kton. bell-tel. com CSeq: 1 INVITE
Subject: Mr.Watson,
Come here Content-Type : application/sdp
Con tent-Length =…
v = 0
s = Mr. Watson, come here
c = IN Ip4 kton. bell-tel. com
m = audio 3456 RTP/AVP 0 3 4 5
2. 邀请抵达被叫端后,被叫UAS返回呼叫进展应答
当被叫收到主叫的请求后.被叫可以接受、重定向(如果被叫端支持该功能)或拒绝该 呼叫,似不管怎样都必须返回应答消息。应答从对应的INVITE请求中复制T〇、Fr〇m、 Call-ID和CSeq等头域的域值,并根据各种具体情况返回适当的应答码。在该例中被叫 根据呼叫的进展情况先后返回了 4条临时应答消息(应答码分别为100、180、182、182), 说明呼叫处理的进展情况分别为Trying、Ringing、Queued, 2 callers ahead和Queued,1 callers ahead。相应的应答消息为:
S—C: SIP/2.0 100 Trying
Via: SIP/2.0/UDP Kton.bell-tel.com
From: A. Bell(Sip:a. g. bell@bell-tel. com)
To: T. Watson (Sip:watson@bell-tel. com) ;tag = 37462311
Call-ID:3298420296@kton. bell-tel. com
CSeq: 1 INVITE
Content-Length : 0 S—C: SIP/2.0 180 Ringing
Via: SIP/2.0/UDP Kton.bell-tel.com
From: A. Bell(Sip:a. g. bell@bell-tel. com)
To: T.Wa- Cal1-ID: CSeq:i (Sip: watson@bell-tel.com); tag = 37462311 lers ahead :ll-tel. com
Call-ID: 3298420296@kton. bell-tel. com CSeq: 1 INVITE Content-Length : 0
3. 呼叫建立成功后,返回200应答
当呼叫建立成功后,被叫端返回200应答,在该应答消息中,被叫UAS在Contact字 段说明被叫当前所在的地址为:Sip:watson@boston, bell-tel. com,并在该消息的消息体 (SDP协议的内容)屮说明被叫能够接收的RTP音频编码的类型:0(PCM p律)、3 (GSM)和接收媒体信息的RTP端口号5004。Watson将把音频数据发往地址kton. bell- tel. com 的端口号 3456。 该消息的格式为:
S—C: SIP/2. 0 200 OK
Via: SIP/2.0/UDP kton. bell-tel. com
From: A. Bell ( Sip: a. g. bell @ bell-tel.com)
To: T. Watson (Sip: watson @ bell-tel.com); tag= 37462311
Call-ID: 3298420296 @ kton.bell-tel.com CSeq: 1 INVITE
Contact: Sip: watson @ boston.bell-tel.com
Content-Type : application/sdp Con tent-Length =… v = 0
o = Watson 4858949 4858949 IN IP4 192.1.2. 3 s = I'm on my way c = IN IP4 boston.bell-tel.com
m = audio 5004 RTP/AVP 0 3
4. 主叫收到最终应答后发送ACK请求
UAC在收到被叫的最终应答后向UAS发送ACK请求。由于在返回的应答中含有 Contact头域,则ACK请求发往该Contact头域中的地址。被叫收到主叫发出的ACK 请求,标志着-个呼叫的-个完整的SIP邀请结束:呼叫已成功建立。川以看出,SIP呼 叫是-个次握手的通信建立方式。该消息的格式为:
C-*-S: ACK sip: watson@boston.bell-tel.com SIP/2. 0
Via: SIP/2.0/UDP Kton.bell-tel.com
From: A. Bell(Sip:a. g. bell@bell-tel. com)
To: T. Watson (Sip:watson@bell-tel. com) ; tag = 37462311
Call-ID: 3298420296@kton. bell-tel. com
CSeq: 1 INVITE
5. 呼叫终结
主叫或被叫都能发送BYE请求以终结呼叫。在该例中,由]主叫发送BYE请求释放呼叫,消息格式为:
C——S: BYE sip:watson@boston, bell-tel. com SIP /2. 0
Via: SIP/2.0/UDP Kton.bell-tel.com From: A.Bell(Sip: a.g.bell@ bell-tel.com)
To:T. A. Watson(Sip:watson@bell-tel. com) ;tag = 37462311
Call-ID: 3298420296@kton. bell-tel. com
CSeq: 2 BYE
被叫端收到BYE请求后,同意释放呼叫,回送200应答。该消息的格式为:
S—C: SIP/2. 0 200 OK
Via: SIP/2.0/UDP kton. bell-tel. com
From: A.Bell(Sip: a.g.bell@bell-tel.com)
To:T. A. Watson(Sip:watson@bell-tel. com) ;tag = 37462311
Call-ID: 3298420296@kton. bell-tel. com
CSeq: 2 BYE