PJSIP iOS не может разрешить запись SRV в сети IPV6
С новым требованием Apple, чтобы все приложения iOS работали в сети IPV6, у меня есть клиентское приложение VOIP, основанное на PJSIP, которое полностью сломано. Я пытаюсь решить проблемы шаг за шагом. Проблема, которую я хочу решить, - это разрешение SRV.
Я делаю srv разрешение, как это в моем приложении, и оно терпит неудачу (тайм-аут / нет результата). Я мог бы использовать команду dig на моем Mac, который находится в той же сети ipv6, и он правильно разрешает запись SRV, которую я пытаюсь сделать из pjsip. Любые входные данные о правильных API для использования в IPV6 здесь приветствуются.
pj_dns_resolver* m_pDnsResolver = NULL;
::pj_dns_resolver_create(
&( m_cachingPool.Get( ).factory ), // pf (pool factory)
NULL, // name
0, // options - must be 0
NULL, // timer - unused
NULL, // ioqueue - unused
&m_pDnsResolver ) ); // p_resolver
// Set the name server to be used ( nameServer is 8.8.8.8 )
const std::string localNameServer = nameServer;
pj_str_t servers[] = { ::pj_str( const_cast< char* >( localNameServer.c_str( ) ) ) };
::pj_dns_resolver_set_ns(
m_pDnsResolver,
1, // count
servers,
NULL ) ); // ports
// Resolver start query method ( DomainName cannot be mentioned here. SRV resolution works fine in IPV4 network )
void StartQuery( const std::string& domainName )
{
PJString name( domainName );
::pj_dns_resolver_start_query(
m_pDnsResolver, // resolver
&( name.Get( ) ), // name
PJ_DNS_TYPE_SRV, // type
0, // options - must be 0
&ResolverCallback,
this, // user_data
&m_pAsyncQuery )
}
1 ответ
Я работаю над тем же.
Apple попросила всех разработчиков iOS протестировать свои приложения, используя сетевой ресурс Mac. Этот сетевой ресурс использует NAT64:
Основанный на нескольких потоках и собственной документации PJSIP, IPv6 еще не поддерживается PJSIP в среде NAT.
Ref1.: https://trac.pjsip.org/repos/wiki/IPv6
Поддержка IPv6 в pjnath (STUN и ICE)
Быть готовым.
Работа по добавлению поддержки IPv6 в pjnath документирована в билете #422.
Ссылка 2: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2016-February/018965.html февраль/018965.html
29 января 2016 года в 04:49 Риза Сулистйо написала:
Привет ник,
У нас есть открытый билет для ipv6 в (#419) и (#422). Мы думаем о повышении приоритета одного из тикетов до 2,6, однако пока это не решено.
+
Привет ник,
К сожалению, поддержка DNS (ipv6) в настоящее время отсутствует в нашей дорожной карте, поскольку у нас есть обходной путь. Однако, если вы заинтересованы в его реализации, мы открыты для патча.
+
Но, похоже, для этого есть обходной путь:
Спасибо, Риза,
Разрешив IPv6-адрес сервера и указав его в качестве прокси, я смог заставить pjsip подключаться через ipv6.
Я пытаюсь использовать точно такую же версию библиотеки PJSIP (2.4.5), но я сталкиваюсь с утверждением, когда пытаюсь подключиться к своему серверу таким образом.
Вы можете подключиться таким образом?
Спасибо!