请求URL


请求URL

《中国电信IMS网络SIP协议总体技术要求》里要求,如果主叫用户拨叫的被叫号码仅为E.164编码,则UA设备发往网络的被叫号码形式可以为SIP URLTEL URL,同时也需要支持转义符处理。

SIPURL

格式:(URL包含user=phone属性)

sip:被叫号码@归属域;user=phone

 

如:

sip: 50440045@sh.ctcims.cn; user=phone

sip: 755004@open.ims.test; user=phone

 

注意:

归属域是不含有端口号的,这个不同于SIP软交换的URL

TELURL

格式:

tel: 被叫号码;phone-context=归属域

 

如:

tel:50440045;phone-context= sh.ctcims.cn

tel: 755004; phone-context= open.ims.test

 

小提示:

  • 在《RFC2806》里讲述,tel url一般有两种格式,全局格式和本域格式,其中全局格式为我们通常见到的+8675512345678这种行式,全局格式有个明显的加号,同时要求设备在用户没有完全按所有号码时,需要自动补全国家码、区域码等。

  • 一些电信规范里仅要求采用的是本域格式的tel url,当前我们就采用这种。

  • 另外针对tel url的解析是在IMS核心的S-CSCF网元进行解析处理。

URL转义

在《RFC2396》中针以URL转义讲的比较让人头晕,《RFC3261》也针对SIP描述了一些,总结一下主要有这几点:

  1. Reserved组内的字符如果出现在URL部件中一定要转义处理

  2. Unreserved组内的字符出现在URL部件中可以转义处理,但不建议转义处理

  3. 除了12两种情况之外的字符必须转义处理。

     

    URL转义处理流程为:

    将要转义的一个字符变为三个字符,格式为%XX,其中XX是这个字符对应ASCII码的十六进制数值。

     

    举个例子描述一下,如下部分是从《RFC3261》的BNF范式中截取,当前仅分析sip url中的用户名部件。

     

    SIP-URI ="sip:" [ userinfo ] hostport  uri-parameters [ headers]

    userinfo                     =    ( user / telephone-subscriber ) [ ":" password ]"@"

    user                           =    1*( unreserved / escaped /user-unreserved )

    user-unreserved        =    "&"/ "=" / "+" / "$" / "," / ";"/ "?" / "/"

    reserved =";" / "/" / "?" / ":" / "@" /"&" / "=" / "+" / "$" /","

    unreserved =alphanum / mark

    mark ="-" / "_" / "." / "!" / "?" /"*" / "’" / "(" / ")"

    alphanum ALPHA/DIGIT

     

  • Reserved组包含的字符是URL顶层划分部件的关键字符,比如@出现在字符串中用于将userhostport两个部件分离出来。

  • Unreserved组包含的字符为大小写字母、数字、以及mark里面包含的,这些字符虽然不能做为分隔符使用,但确是在部件中最可能出现的字符集,该字符集是全局性的,针对整个SIP BNF范式有效,如果各别部件含有其它常用字符则单独扩冲,比如这里user-unreserved是针对user部分可能出现的常用字符进行扩冲。

     

    在这个例子中user合法的字符集包含Unreserveduser-unreserved或转义字符,其它字符全部为非法,必须进行转义。

     

    比如:

    sip:755001@123@1.1.1.1,其中user部件包含了@,导致这个URL无法识别出userhostport的界线到底在哪里。这里将user部件进行转义为755001%40123@1.1.1.1就比较清晰了。

     

    参考资料

    RFC2396

    RFC2806

    RFC3261

    IMS试点阶段号码传送与显示暂行规定V1.0

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值