IMS消息

来源:互联网 发布:金融同业入门书 知乎 编辑:程序博客网 时间:2024/06/04 14:42

用户代理(User Agent)是发起或者接收呼叫的逻辑实体。
用户代理客户端-UAC(User Agent Client),用于发起请求;
用户代理服务器-UAS(User Agent Server),用于接收请求。
UAC/UAS的划分是针对一个事务的。在一个呼叫中的多个事务里,UAC和UAS的角色是可以互换的。例如在A和B的呼叫中,A向B发起呼叫,在呼叫建立的事务中,A是UAC,B是UAS;呼叫结束时,B先挂机,在呼叫释放的事务中,B是UAC,A是UAS。换句话说,每个一般的UA都是UAS和UAC的结合体。

183 Session Progress:在UE2收到invite的时候,将自己的支持能力发给UE1。The media stream capabilities of the destination are returned along the signalling path, in a 183 Session Progress provisional(临时的,暂时的) response.

PRACK:the Provisional Response ACKnowledgement, PRACK用来保证临时消息(101-199)的可靠传输. PRACK就是仿照200 OK的可靠性响应,对除100以外的1xx临时响应消息进行可靠性传输。PRACK一般是对收到183 call in progress/180 ringing的确认,
UAC与UAS对是否支持该扩展的协商是通过一个option tag – 100rel。为达到该目的,UAC有两种选择,在INVITE消息中加入Require:100rel或者Supported:100rel。UAS在接受到上述消息中,也存在选择的问题。
1、当INVITE中含有Supported:100rel,UAS在发送临时消息时,如果支持PRACK则临时消息中加入Require:100rel和Rseq字段,接到该消息UAC发送PRACK;否则不加上述参数,UAC不发PRACK。
2、当INVITE中含有Require:100rel而UAS不支持PRACK时,需要使用420(不正确的扩展)来拒绝呼叫。否则临时消息中加入Require:100rel和Rseq字段,接到该消息UAC发送PRACK。

例如:UAC发起的INVITE中含有Supported:100 rel,而UAS也支持该扩展并且在183响应中有Require:100rel,说明接下来的会话中,对所有100以外的1xx临时响应消息,均要有PRACK回应。

0 0
原创粉丝点击