这可能看起来像一个非常简单的问题,但我还没有在互联网上找到答案。
任何人都可以告诉我如何为SIP域执行NAPTR查询? (这主要用于DNS查找),或者任何对我来说都很好的引用(这个引用存在于rfc2915上)。
也许使用终端或任何工具可能更进一步我想用java来做,所以如果任何一段代码都会非常有帮助。
答案 0 :(得分:9)
您正在寻找的RFC是“Session Initiation Protocol (SIP): Locating SIP Servers”。
以下是如何选择传输协议和解析SIP服务器地址的简要摘要。
在现实世界中,几乎没有SIP提供商使用NAPTR记录,可能有一半或更少使用SRV记录,其余的仅依赖于A记录。在我自己的SIP软件中,我关闭了NAPTR查找,因为它浪费了时间,如果SIP提供商很难设置NAPTR记录,他们也很可能会设置标准的SRV记录。
事后看来,SIP协议设计者应该单独留下整个SIP服务器地址解析,让实施者使用标准的IP负载平衡和故障转移机制。因为SIP客户端并不都支持SRV记录,再次根据我的经验不到一半,使用这些记录总比没有好,但不是故障转移或负载平衡的理想解决方案。
如果您正在寻找具有SIP NAPTR记录的主机名,请在上次检查时检查columbia.edu和snom.com,他们都有一些。
答案 1 :(得分:0)
A NAPTR record in DNS与DNS (SRV, CNAME, etc.)
中的任何其他记录一样NAPTR记录最常用于Internet电话中的应用程序,例如,会话发起协议(SIP)中服务器和用户地址的映射。 NAPTR记录与服务记录(SRV)的组合允许将多个记录链接在一起以形成复杂的重写规则,从而产生新的域标签或统一资源标识符(URI)。
NAPTR记录的DNS类型代码为35。
要查询它们,可以使用命令行工具for($i=1;$i<100;$i++){
$part_1 = implode("",range(0,$i));
echo bcadd(bcmul($part_1,"9"),($i+1)."")."\n";
}
并使用dig
开关指定查询的类型。例如:
-t
如果您有兴趣,可以阅读有关E.164和ENUM的更多信息:
答案 2 :(得分:0)
NAPTR记录和SRV记录在LTE(4G)解决方案中很常见。 EPC节点(网络节点)使用DNS通过S-NAPTR和SRV记录选择其他EPC节点。这使操作员可以在不更改MME节点上的任何配置的情况下增加/删除节点的自由度。您可以在主题“使用DNS的EPc节点选择”中参考3gpp标准29.003或23.401或google。 https://ericlajoie.com/nodeselection.html