Появилась сегодня заявка: не работает тестовый звонок в Lync с 2016 года.
В Lync/S4B есть тестовый звонок?
Посмотрел – действительно есть:
И действительно не работает: выдает ошибку, что звонок не выполнен.
Гугл предложил проверить статус службы RTCATS (*** Audio Test Service) и то, что она слушает порт 5076 (netstat -ano | find “5076”).
Всё OK: служба работает, порт слушается и принимает на себя соединения через Telnet.
Собрал журналы через ClsLogger и запустил Snooper для их анализа.
В момент совершения тестового звонка увидел ошибку:
“SIP/2.0 405 Method Not Allowed”.
После этого модифицированный запрос гугла привел меня к результату.
Оказывается, для совершения тестовых звонков существуют специальные объекты “Application Contacts”.
Получить список контактов, требуемых для работы Audio Test Service можно с помощью командлета: Get-CsAudioTestServiceApplication.
Для каждого сервера создается свой контакт. В полученном списке контактов у меня и автора статьи можно увидеть корень проблемы: мы изменили SIP-домен, используемый по умолчанию, а старый удалили. Следовательно, вызов этих контактов стал невозможен.
Для того чтобы исправить эту ситуацию, необходимо:
1. Запустить AdsiEdit и открыть путь
1 |
<strong>CN=Application Contacts,CN=RTC Service,CN=Services,CN=Configuration,DC=contoso,DC=local</strong> |
2. В указанном пути открыть объект, чье название совпадает с идентификатором из нашего командлета.
3. Изменить атрибут msRTCSIP-PrimaryUserAddress, указав там корректный SIP-домен.
4. И перезапустить службу Lync/SkypeforBusiness Audio Test Service. Если серверов несколько, то можно использовать утилиту SC:
1 |
sc \\lync stop RTCATS |
Убеждаемся, что служба остановилась
1 |
sc \\lync query RTCATS |
SERVICE_NAME: RTCATS
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
И запускаем ее обратно
1 |
sc \\lync start RTCATS |
Обратите внимание, что там 100500 контактов, используемых другими службами Lync/S4B. Так что – все только начинается…