执行NAPTR查询

dej*_*ong 3 dns sip srv

这可能看起来像一个非常简单的问题,但我还没有在互联网上找到答案.

任何人都可以告诉我如何为SIP域执行NAPTR查询?(这主要用于DNS查找),或者任何对我来说都很好的引用(这个存在于rfc2915上).

也许使用终端或任何工具可能进一步我想使用java这样做,所以如果任何一段代码将非常有用.

sip*_*wiz 9

您正在寻找的RFC是" 会话发起协议(SIP):定位SIP服务器 ".

以下是如何选择传输协议和解析SIP服务器地址的简要摘要.

  1. 如果指定了transport参数,则优先,
  2. 如果没有传输参数和目标是IP地址,那么sip应该使用udp和sips tcp,
  3. 如果没有传输参数和目标是具有显式端口的主机名,则sip应使用udp和sips tcp,并且应使用A或AAAA记录DNS查找来解析主机(第4.2节),
  4. 如果没有传输协议且没有显式端口和目标是主机名,那么客户端应该进行NAPTR查找并利用SIP + D2U,SIP + D2T,SIP + D2S,SIPS + D2T和SIPS + D2S服务的记录,
  5. 如果找到NAPTR记录,请选择所需的传输并查找SRV记录,
  6. 如果没有找到NAPTR记录,则查找所需协议的SRV记录_sip._udp,_sip._tcp,_sips._tcp,_sip._tls,
  7. 如果没有SRV记录发现查找A或AAAA记录.

在现实世界中,几乎没有SIP提供商使用NAPTR记录,可能一半或更少使用SRV记录,其余的仅依赖于A记录.在我自己的SIP软件中,我关闭了NAPTR查找,因为它浪费了时间,如果SIP提供商很难设置NAPTR记录,他们也很可能会设置标准的SRV记录.

事后看来,SIP协议设计者应该只留下整个SIP服务器地址解析,让实施者使用标准的IP负载平衡和故障转移机制.因为SIP客户端并不都支持SRV记录,再次根据我的经验不到一半,使用这样的记录总比没有好,但不是故障转移或负载平衡的好方法.

如果您正在寻找具有SIP NAPTR记录的主机名,请在上次检查时检查columbia.edu和snom.com,两者都有一些.