Одно из следующего: dns.server.com
не является допустимым DNS-сервером, не имеет записи SRV для _sip._udp
, служба DNS не отвечает на порт 53 (стандартный порт DNS) или ваш код Java неверен.
Для диагностики неполадок DNS-сервера вы можете попробовать host -t SRV _sip._udp.server.com dns.server.com
или dig @dns.server.com -t SRV _sip._udp.server.com
, чтобы убедиться, что сервер работает.
Если host
или dig
вернет ожидаемую запись, попробуйте внести следующие изменения в свой код:
Изменение:
env.put("java.naming.provider.url", "dns://dns.server.com");
Кому:
env.put("java.naming.provider.url", "dns:");
(т. Е. Просто используйте стандартное разрешение DNS вашей ОС)
Изменение:
ctx.getAttributes("_sip._udp", new String [] { "SRV" });
Кому:
ctx.getAttributes("_sip._udp.domain.com", new String [] { "SRV" });
поскольку для записи SRV требуется доменное имя для поиска, в результате вы получите:
Hashtable<String, String> env = new Hashtable<String, String>();
env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
DirContext ctx = new InitialDirContext(env);
Attributes attributes = ctx.getAttributes("_sip._udp.domain.com", new String [] { "SRV" });
return attributes;