Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Великобритания — руководство по использованию UniFi Talk с A&A (Andrews and Arnold) — включая несколько багов UniFi, UniFi Talk
 
Привет! Решил поделиться инструкцией по использованию UniFi Talk с провайдером A&A (Andrews & Arnold) в Великобритании, так как знаю, что это популярный VoIP-провайдер для тех, кто уходит с обычных домашних телефонных линий.

Во-первых, следуя этому руководству, вы получите правильные поля и инструкции по настройке, теперь редактировать sip_from_uri не нужно, можно этот пункт игнорировать: https://support.aa.net.uk/VoIP_Phones_-_UDM-Pro

Следующая загвоздка — если при создании провайдера в UniFi Talk вы используете амперсанд (&) в названии провайдера (как это естественно для A&A), UniFi приложение примет это без проблем. Но UniFi Talk при этом никогда не регистрируется у провайдера. Проверяя логи, я обнаружил, что вся конфигурация игнорировалась базовым приложением FreeSWITCH, которое работает с Talk, из-за некорректного имени. Удаление амперсанда из названия решило проблему.

Теперь вы должны принимать входящие звонки. Но, возможно, не сможете исходящие. Проверка sip-логов показала, что A&A возвращает ошибку "415 unsupported media type" при попытке звонка. В SDP сообщении, отправляемом для установления вызова, включалась строка:

m=audio 12345 RTP/AVP 0 101 13

Это согласование кодеков, и цифры "0 101 13" обозначают кодеки, которые UniFi Talk заявляет как поддерживаемые. 101 и 13 к нашему вопросу не относятся, а вот 0 означает поддержку только кодека "PCMU". A&A поддерживает только "PCMA", поэтому звонок отклоняется. Другими словами, UniFi Talk говорит: «Я хочу позвонить, и поддерживаю только PCMU», а A&A отвечает: «Нет, спасибо».

Для сравнения, вот аналогичная строка из более совместимого телефона:

m=audio 12345 RTP/AVP 9 0 8 3 99 112 18 101

Здесь гораздо больше цифр, что значит — телефон сообщает провайдеру поддержку многих кодеков, в том числе 8, то есть кодека PCMA, который нужен A&A.

FreeSWITCH, который использует UniFi Talk, на самом деле поддерживает PCMA, и эта опция включена (чем и объясняется прием вызовов). Но в файле /usr/share/unifi-talk/app/server.js несколько строк с кодеками жестко зашиты. Я не смог понять, какую конкретно строку UniFi использует для исходящих звонков, поэтому заменил все вхождения "PCMU" на "PCMA" в /usr/share/unifi-talk/app/server.js. В каждой такой строке есть и другие кодеки, но если вы используете только A&A, можно заменить содержимое каждой строки только на PCMA — так я и сделал. Не понимаю, почему UniFi так ограничивает список кодеков для провайдера при исходящих вызовах — это явно источник проблем.

Теперь сохраняете файл, перезапускаете провайдера и сможете совершать звонки :)

——Дополнительные заметки:

* Если через пару минут после настройки вы перестанете принимать звонки, добавьте кастомные поля:
expire-seconds 120
nat-options-ping true

(Это не баг, а просто параметр, который заставляет приложение Talk поддерживать соединение активным, чтобы фаервол не закрывал входящие вызовы). Мне не пришлось открывать порты, включать статический порт сигнализации или что-то подобное.

* Все описанные баги я находил, используя CLI freeswitch. Для этого зайдите по SSH на устройство с Talk (инструкции по включению SSH есть на сайте UniFi), затем выполните команду “fs_cli”. Она будет выводить отладочную информацию. Чтобы увидеть сами SIP-сообщения (как я выявил проблему с кодеками), включите SIP-трейс командой из fs_cli:
sofia global siptrace on
sofia loglevel all 9
 
Сейчас я застрял: могу совершать звонки, но не могу принимать. Мой SIP-провайдер не уверен, в чём дело, но думает, что мой UDMP блокирует звонки. Я не знаю, что и как проверить, чтобы сдвинуться с места!
 
Обновился сегодня до 3.2.3, и похоже, что тот же процесс всё ещё работает и всё так же нужен *(вздох)*.
 
@UI-Glenn, есть новости по этому поводу? Кодек должен быть настраиваемым.
 
Обновился сегодня до talk 3.2.2, добавил кастомное поле from-domain со значением "voiceless.aa.net.uk", заменил PCMU на PCMA в шести (примерно) местах, сохранил, остановил и запустил talk — всё работает отлично.
 
@stopdragon, только что проверил sip trace — ты, похоже, прав, что в поле from всё ещё добавляется @talk.com. Значит, можно предположить, что это изменение со стороны A&A, который теперь либо разрешает, либо игнорирует это. Жалко, если так, ведь если бы эту проблему устранили, это показало бы, что Ubiquiti действительно заинтересован в исправлении этих давних багов.
 
Похоже, unifi так и не изменил sip_from_uri. Проблемы у меня всё ещё остаются.
 
Позитивное обновление по этому поводу — теперь, похоже, больше не нужно редактировать sip_from_uri, этот баг, кажется, исправили в последних версиях. Я не видел этого в примечаниях к релизам, но, должно быть, это где-то появилось — так что спасибо Ubiquiti за это (если, конечно, обновления не касались стороны A&A!). К сожалению, всё ещё нужно менять значения кодека на PCMA. Я обновил исходный пост и убрал лишние моменты.
 
@oglesbyj, не за что, рад, что помогло. Что касается поддержки, то лучший ответ, который я получил по проблеме с кодеком, был вот такой: Это было месяц назад, что, учитывая рождественские праздники, не так уж и долго, поэтому я всё ещё надеюсь, что проблему исправят.

Проблему sip_from_uri испытывают многие уже годами, так что тут я менее оптимистичен. Просто расстраивает, что стандартный ответ Ubiquiti на запросы в поддержку в таких случаях — «мы не помогаем с настройкой сторонних sip-провайдеров» — при этом с разблокированных телефонов они берут больше денег. А проблемы со сторонними провайдерами чаще всего возникают из-за плохой совместимости или багов на стороне unifi. Чтобы получить этот более содержательный ответ, мне пришлось их немного подтолкнуть, приведя доказательства из этого поста.

Телефон snom, который стоит в разы дешевле, отлично работает без всяких проблем.
 
@Tomthorpe, большое спасибо, ты помог нам снова настроить переадресацию на мобильные, когда мы не у компьютера! Я продвинулся немного благодаря обширным поискам в гугле, но уперся в ошибку 415 unsupported media type. По поводу официальной поддержки Unifi Talk: я уже отправил 5 запросов с проблемами работы AA SIP, но поддержка Unifi была очень жесткой и вообще не хотела помогать (хотя с сетевой частью Unifi у меня был хороший опыт). Учитывая, что я купил разблокированный phone max, официальная поддержка Unifi просто обязана уметь его поддерживать.
Страницы: 1
Читают тему (гостей: 1)