赞
踩
因为SIP支持多种传输协议,所以必须有一种管理它们的办法。DNS的完整用法在RFC 3263中定义,这里描述客户端的基本步骤。
实现这一目标有两种方法。第一种是通过SIP URI显式说明。URI 描述中,transport=tcp或transport=sctp ( RFC 4168)的存在说明这个URI所选定的传输协议。注意:对于TLS传输来说,应当使用SIPS URI方案,虽然有些非标准的实现中会用transport=tls参数描述。如果有transport=udp就使用UDP。
第二种,URI中没有transport参数,那么采用以下规则决定传输协议:
代理服务器执行一套稍微不同的规则,如RFC3263所述。
举个例子:假设上图中Schrodinger执行DNS查询的场景。URI是sip:werner.heisenberg@munich.example.org,没有数字IP或端口,因此跳过步骤1和步骤2。Schrodinger遵循步骤3定义,对主机部分munich.example.com执行NAPTR查询,返回这样的记录:
munich.example.com. 360 IN NAPTR 100 50 “s” “SIPS+DTU” “” _sip._udp.munich.example.com
因为只支持UDP传输,所以第4步对_sip._udp.munich.example.de执行SRV查询,结果返回:
_sip._udp.munich.example.com. 300 IN SRV 0 100 5060 proxy.munich.example.com
最后对proxy.munich.example.com执行A类查询,返回:
proxy.munich.example.com.3600 IN A 100.101.102.105
最终,Schrodinger向100.101.102.105:5060发送INVITE 消息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。