Если вы читаете страницу конфигурации устройства Sip2Sip, на ней говорится, что:
«устройство SIP всегда должно выполнять поиск DNS, как определено в стандарте SIP RFC3263 (NAPTR + SRV + поиск DNS)»
PJSIP поддерживает поиск DNS SRV.
В PJSUA он будет выполнять поиск DNS SRV только в том случае, если вы не укажете номер порта в URL-адресе SIP.
sip: [email protected] сначала попытается выполнить поиск записи DNS SRV, а затем переключится на поиск имени DNS A / C.
а также
"sip: [email protected]: 5060" будет выполнять только поиск имен DNS A / C.
Они говорят, что PJSUA не будет поддерживать автоматически поддержку аварийного переключения:
«Мы предлагали реализовать механизм аварийного переключения на уровне приложений».
Если вам нужна «быстрая и легкая» установка, вам нужно установить outbound_proxy на "proxy.sipthor.net". например
cfg.outbound_proxy_cnt = 1;
cfg.outbound_proxy[0] = pj_str("sip:proxy.sipthor.net:5060");
Если вам нужно более надежное решение, вам нужно использовать разрешение SRV pjsip. функции для разрешения sip2sip.info srv-записи, например: "_sip._udp.sip2sip.info", а затем установить записи outbound_proxy с результатом.
Код немного запутан.
pjsip_resolver_t* resolver_;
...
status = pjsip_resolver_create( pool, &resolver_ );
...
pjsip_host_info host;
host.flag = PJSIP_TRANSPORT_DATAGRAM; // is using UDP, see pjsip_transport_flags_e
host.type = PJSIP_TRANSPORT_UDP; // if using UDP, see pjsip_transport_type_e
host.addr.host = pj_str("sip2sip.info");
host.addr.port = 5060;
pjsip_resolve(resolver_, pool, &host, token, resolver_cb_func);
...
static void resolver_cb_func( pj_status_t status, void *token, const struct pjsip_server_addresses *addr)
{
...
// use results to fill in the outbound_proxy
}
Вы также можете использовать его для поддержки аварийного переключения, но похоже, что sip2sip не имеет нескольких sip-серверов в записи DNS SRV, поэтому в настоящее время он не будет использоваться. Если они когда-нибудь добавят еще, это станет более полезным.
_sip._udp.sip2sip.info Сервер: fritz.box Адрес: fd00 :: 2665: 11ff: fef9: ec51
Неавторизованный ответ:
_sip._udp.sip2sip.info Местоположение службы SRV:
приоритет = 100
вес = 100
порт = 5060
svr hostname = proxy.sipthor.net
sip2sip.info nameserver = ns2.dns-hosting.info sip2sip.info nameserver = ns1.dns-hosting .info sip2sip.info nameserver = ns7.dns-hosting.info
Sip2Sip также поддерживает настройку STUN, поэтому я бы также установил настройки STUN для учетной записи:
cfg.stun_srv_cnt = 1;
cfg.stun_srv[0] = pj_str("sip2sip.info");
Поскольку ваш пример, похоже, не предоставляет информацию о порте, он должен работать. Для дальнейшей диагностики потребуется просмотреть вывод журнала pjsip.
person
Shane Powell
schedule
20.02.2014