● MESSAGE:通过在其请求体中承载即时消息内容实现即时淋色; ● REFER:其功能是指示接受方通过使用在请求中提供的联系地址信息联系
2.2.4.3 SIP 响应消息
SIP 协议中用三位整数的状态码(Status code)和原因码(Reason code)来表示对请求做出的回答。状态码用于机器识别操作,原因短语(Reason Phrse)是对状态码的简单文字描述,用于人工识别操作。
状态码的第个数字定义响应的类别 ,在 SIP/2.0中 6 个值,定义如下: 1xx(Informational):请求已经收到、继续处理请求。 2xx(Success):行动已经成功地收到,理解和接受。
3xx(Redirection):为完成呼叫请求,还须采取进一步的动作。
4xx(Client Error:请求有语法错误或不能被服务器执行。客户机需修改请求,然 后再重发请求。
5xx(Server Error):服务器出错,不能执行合法请求。 6xx(Globoal Failure):任何服务器都不能执行请求。
其中,1xx 响应为暂时响应(Provisional response),其他响应为最终响应(Final Response)。
2.2.5 SIP呼叫流程
2.2.5.1
注册注销过程
SIP 为用户定义了注册和注销过程,其目的是可以动态建立用户的逻辑地址和其当前联系地址之间的对应关系,以便实现呼叫路由和对用户移动性的支持。逻辑地址和联系地址的分离也方便了用户,它不论在何处、使用何种设备,都可以通过惟一的逻辑地址进行通信。
注册/注销过程是通过REGISTER消息和 200 成功响应来实现的。在注册/注销时,用户将其逻辑地址和当前联系地址通过 REFGISTER 消息发送给其注册服务器,注册服务器对该请求消息进行处理,并以 200 成功响应消息通知用户注册注销成功。
2.2.5.2 呼叫过程
SIP IP 电话系统中的呼叫是通过 INVITE邀请请求、成功响应和 ACK确认请求的三次握手来实现的,即当主叫用户代理要发起呼叫时,它构造一个 INVITE消息,并发送给被叫。被叫收到邀请后决定接受该呼叫,就回送一个成功响应(状态码为200)。主叫方收到成功响应后,向对方发送 ACK请求。被叫收到 ACK请求后,呼叫成功建立。
呼叫的终止通过 BYE 请求消息来实现。当参与呼叫的任一方要终止呼叫时,它就构造
一个 BYE 请求消息,并发送给对方。对方收到 BYE 请求后,释放与此呼叫相关的资源,回送一个成功响应,表示呼叫已经终止。
当主、被叫双方已建立呼叫,如果任一方想要修改当前的通信参数(通信类型、编码等),可以通过发送一个对话内的 INVITE 请求消息(称为 re-INVITE)来实现。
2.2.5.3 重定向过程
当重定向服务器(其功能可包含在代理服务器和用户终端中)收到主叫用户代理的INVITE 邀请消息,它通过查找定位服务器发现该呼叫应该被重新定向(重定向的原因有多种,如用户位置改变、实现负荷分担等),就构造一个重定向响应消息(状态码为 3xx),将新的目标地址回送给主叫用户代理。主叫用户代理收到重定向响应消息后,将逐一向新的目标地址发送 INVITE 邀请,直至收到成功响应并建立呼叫。如果尝试了所有的新目标都无法建立呼叫,则本次呼叫失败。
2.2.5.4 能力查询过程
SIP IP 电话系统还提供了一种让用户在不打扰对方用户的情况下查询对方通信能力的手段。可查询的内容包括:对方支持的请求方法(methods)、支持的内容类型、支持的扩展项、支持的编码等。
能力查询通过OPTION请求消息来实现。当用户代理想要查询对方的能力时,它构造一个OPTION请求消息,发送给对方。对方收到该请求消息后,将自己支持的能力通过响应消息回送给查询者。如果此时自己可以接收呼叫,就发送成功响应(状态码为 200),如果此的自己忙,就发送自身忙响应(状态码为 486)。因此,能力查询过程也可以用于查询对方的忙闲状态,看是否能够接受呼叫。
2.2.5.5
1)注册注销
SIP 呼叫流程
下面结合具体场景介绍一下 SIP 呼叫的详细过程。
1. SIP 用户向其所属的注册服务器发起 REGISTER 注册请求。在该请求消息中,Request-URI 表明了注册服务器的域名地址,To 头域包含了注册所准备生成.查询或修改的地址记录,Contact 头域表明该注册用户在此次注册中欲绑定的地址,Contact头域中的Expires参数或者 Expires头域表示了绑定在多长时间内有效。
2. 注册服务器返回 401响应,要求用户进行鉴权。 3. SIP 用户发送带有鉴权信息的注册请求。 4. 注册成功。
SIP 用户的注销和注册更新流程基术,只是在注销时Contact头域中的Expires参数或 Expires头域值为 0。
2)代理方式呼叫流程
1. 用户 A 向其所属的出域代理服务器(软交换)PROXY1 发起 INVITE 请求消息,在该消息中的消息体中带有用户A 的媒体属性SDP 描述;
2. PROXY1 返回 407 响应,要求鉴权; 3. 用户A发送ACK确认消息;
4. 用户A重新发送带有鉴权信息的 INVITE请求; 5. 经过路有分析,PROXY1将请求转发到PROXY2;
6. PROXY1 向用户 A 发送确认消息”100 TRYING”,表示正在对收到的请求进行处理;
7. PROXY2 将 INVITE 请求转发到用户 B;
8. PROXY2 向PROXY1发送确认消息”100 TRYING”
9. 终端B振铃,向其归属的代理服务器(软交换)PROXY2返回”180 RINGING”响应。
10. PROXY2 向PROXY1转发” 180 RINGING”;
11. PROXY1 向用户A转发” 180 RINGING”,用户A所属的终端播放回铃音; 12. 用户 B 摘机,终端 B 向其归属的代理服务器(软交换)PROXY2 返回对INVITE 请求的”200 OK”响应,在该消息中的消息体中带有用户B 的媒体属性 SDP 描述;
13. PROXY2 向PROXY1转发”200 OK”; 14. PROXY1 向用户A转发”200 OK”;
15. 用户A发送针对 200 响应的 ACK确认请求消息;
16. PROXY1 向PROXY2转发 ACK请求消息;
17. PROXY2 向用户 B 转发 ACK 请求消息,用户 A 与 B 之间建立双向 RTP媒体流;
18. 用户 B 挂机,用户 B 向归属的代理服务器(软交换)PROXY2 发送 BYE 请求消息;
19. PROXY2 向PROXY1转发 BYE 请求消息; 20. PROXY1 向用户A转发BYE请求消息; 21. 用户A返回对 BYE 请求的 200 OK响应消息; 22. PROXY1 向PROXY2转发 200 OK请求消息; 23. PROXY2 向用户B转发 200 OK响应消息,通话结束。
3)重定向方式呼叫流程
1. 用户A向重定向服务器发送 INVITE请求消息,该消息不带 SDP;
2. 重定向服务器返回”302 Moved temporarily响应”,该响应的 Contact头域包含用户 B当前更为精确的SIP 地址;
3. 用户A向重定向服务器发送确认 302响应响应受到的 ACK消息;
4. 用户A向重定向代理服务器PROXY2发送 INVITE请求消息,该消息不带SDP; 5. PROXY2 向用户B转发 INVITE 请求;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库6.3 核心网技术- 固网软交换技术(10)在线全文阅读。
相关推荐: