本文主要是介绍SIP Call Flow - Initiation of IMS Session,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这里在 IMS 网络中,手机 abc会与另一部手机xyz建立起会话。
基本步骤:
- 手机abc构造了一个INVITE消息,其中包含另一部手机xyz的 public user identity。
- 所有的SIP消息需要通过P-CSCF和S-CSCF的转发
- 手机和P-CSCF间的SIP消息都是通过IPSec完整性保护的
- 手机和P-CSCF间的SIP都是经过压缩的
- 手机间交互/协商媒体流的属性
- UE各自按照协商结果分配资源
- 响铃/接听电话
- 通话开始
Call Flow
路由建立
Routing of IMS INVITE Requests
当手机abc想和手机xyz通话时,它并不清楚消息如何到达手机xyz。手机abc只有下面的信息:
- 手机xyz的SIP URI
- 手机abc相关的P-CSCF地址
- 手机abc相关的S-CSCF地址
手机abc首先将INVITE通过P-CSCF发到S-CSCF,但这时S-CSCF也并不清楚手机xyz的具体位置。 但是通过地址解析 (DNS) abc的S-CSCF可以找到手机xyz的 I-CSCF,并将INVITE消息转发给 xyz的I-CSCF。 I-CSCF会向HSS查询手机xyz相关的S-CSCF的地址,并将INVITE消息转发到xyz的S-CSCF。 最后,手机xyz的P-CSCF会将INVITE通过IP Sec发送给手机xyz。
关于路由信息
所有的CSCF都会将他们的地址放在INVITE消息的Via头中,以便应答消息可以按照同样路径返回。 除了手机xyz的 I-CSCF,其他的CSCF都会将他们的地址加在Route-Record Header的最上面。 因为I-CSCF是负责第一次找到S-CSCF的,所以后面并不需要它将消息转发,所以也不需要将它的地址存入INVITE消息中。
The Route header field is used to force routing for a request through the listed set of proxies.
The Via header field indicates the path taken by the request so far and indicates the path that should be followed in routing responses.
The branch ID parameter in the Via header field values serves as a transaction identifier, and is used by proxies to detect loops.
The Record-Route header field is inserted by proxies in a request to force future requests in the dialog to be routed through the proxy.
From abc UE to the P-CSCF
INVITE sip: xyz@home2.hu SIP/2.0
Via: SIP/2.0/UDP [5555::1:2:3:4]:1357;branch=8uetb
Route: <sip:[5555::a:b:c:d]:7531;lr>
Route: <sip: orig@scscf1.home1.fr;lr>
Contact: sip:[5555::1:2:3:4]:1357
<=
手机abc向它自身的P-CSCF发送INVITE消息
Request-URI是对端手机 xyz 的UR
这篇关于SIP Call Flow - Initiation of IMS Session的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!