注册订阅

来源:互联网 发布:java贪吃蛇游戏 编辑:程序博客网 时间:2024/04/29 18:08


注册

注册订阅

 

终端在注册成功后,向S-CSCF发送SUBSCRIBE请求,请求订阅该用户所有相关的公有标识注册信息。

 

隐式注册处理网络发起重认证网络发起注销功能都需要基于当前功能点。

 

1、终端向P-CSCF发起订阅请求

 

SUBSCRIBEsip:ue@ims.test SIP/2.0

Via: SIP/2.0/UDP1.1.1.1;brach=1111

Route:<sip:1.1.1.2;lr>

Route:<sip:1.1.1.4;lr>

From:<sip:ue@ims.test>;tag=xxx

To:<sip:ue@ims.test>

Event: reg

Expires: 600

Accept:application/reginfo+xml

Contact:sip:1.1.1.1

Content-Length:0

 

  • 终端添加VIA头域,告知该事务请求的应答应该发送到哪里。

  • 这里有两条Route头域,其中第一条是终端已知的P-CSCF地址,表示下一跳首先发给P-CSCF,第二条Route头域是S-CSCF的地址,该地址信息就是在之前UES-CSCF注册过程中,由S-CSCF200 OK里协带的Service-Route头域值(参考UE协带鉴权发起第二次注册小节)。

  • FromTo头域的值都为ue@ims.test,表示终端希望订阅自己的信息(在有些情况下,P-CSCF也希望订阅终端信息,如果P-CSCF实现向S-CSCF进行注册订阅,则From头域为P-CSCFURLTo头域为终端的URL)。

  • Event头域里指示需要订阅注册相关事件。

  • Expires头域指示当前期望订阅的有效生命周期为600秒。

  • Accept头域指明终端这次订阅只能处理reginfo+xml类型的信息。

  • Content头域告知远端,后续主动向终端发送事务请求时应该发送到哪里。

     

    2P-CSCF转发订阅请求到S-CSCF

     

    P-CSCF收到终端发来的订阅请求后,检查如果没有协带P-Preferred-Identiy头域,则取该用户的默认公有标识做为有效的公有用户身份,做为新加的P-Asserted-Identity头域值,告诉S-CSCF需要订阅和这个公有标识相关的注册信息。

     

    P-CSCF在转发消息之前,删除为自身地址的首个Route头域,同时将自己的地址添加到Via头域。

     

SUBSCRIBEsip:ue@ims.test SIP/2.0

Via: SIP/2.0/UDP1.1.1.2; brach=1112

Via: SIP/2.0/UDP1.1.1.1;brach=1111

Route:<sip:1.1.1.4;lr>

From:<sip:ue@ims.test>;tag=xxx

To:<sip:ue@ims.test>

Event: reg

Expires: 600

Accept:application/reginfo+xml

Contact:sip:1.1.1.1

Content-Length:0

 

34S-CSCF收到订阅请求,给予订阅请求应答,并通过P-CSCF转发到终端

 

56S-CSCFP-Asserted-Identity头域提取公有用户标识,验证合法后,将该公有用户标识相关联的所有公有用户标识的注册信息通过Notify信令告知给终端,其中信令报文如下:

 

NOTIFYsip:ue@1.1.1.1 SIP/2.0

Via: SIP/2.0/UDP1.1.1.4;brach=1114

From: <sip:ue@ims.test>;tag=xxxxx

To:<sip:ue@ims.test>

Contact:<sip:1.1.1.4 >

Content-Type:application/reginfo+xml

Event: reg

Subscription-State:active

……

 

<?xmlversion="1.0" encoding="UTF-8"?>

<reginfoxmlns="urn:ietf:params:xml:ns:reginfo" version="0" state="full">

        <registration aor="sip:ue@ims.test " id="11 " state="active">

                  <contact id="12" state="active" event="registered">

                           <uri>sip:ue@1.1.1.1</uri>

                  /contact>

        </registration>

        <registration aor="tel:+867551234567" id="14 " state="active">

                  <contact id="15" state="active" event=" created ">

                           <uri>sip:ue@1.1.1.1</uri>

                  /contact>

        </registration>

        <registration aor="sip:uehome@ims.test " id="17 " state="terminated">

        </registration>

</reginfo>

 

当前只关注Body内容描述,其它SIP头域信息不详细描述。

  • reginfo根元素,指明当前子元素描述是个注册信息。

  • xmlns属性指明所使用的名字空间为urn:ietf:params:xml:ns:reginfo

  • version属性表示当前这个消息通知的版本为0,后面不断发送注册通知消息后,该值会不断递增

  • state属性为full,表明当前发送的是比较完整的全部相关用户标识的注册信息,如果后面再进行通知刷新时仅针对某个用户标识的改变,则state属性将为partial,同时仅包括部分用户标识信息

  • 第一条registration表明,当前公有标识sip:ue@ims.test已经成功注册(event="registered"),该公有标识绑定的联系地址为sip:ue@1.1.1.1

  • 第二条registration表明,当前公有标识tel:+867551234567是隐性注册的(event="created "),该公有标识是第一条公有标识一样,都绑定到sip:ue@1.1.1.1这个联系地址,这里意思就是打哪个都可以呼叫到sip:ue@1.1.1.1

  • 第三条registrationstate="terminated",表明没有注册,所以也就没有子元素。

     

    78终端在收到Notify注册事件通知后,给S-CSCF发送应答。

     

    参考资料

    《中国电信IMS网络SIP协议总体技术要求》

    IMS-移动领域的IP多媒体概念和服务》

0 0
原创粉丝点击