Дмитрий Рашевский
04.02.2020
7995

Отладка неисправностей соединения телефонных аппаратов с Asterisk

Введение Внутренний номер не регистрируется. Введение Многие из вас сталкивались с трудностями, которые возникали при работе с астериском. Начиная от подключения внутреннего номера, заканчивая непонятными ошибками в консоли астериска. Обычно в таких ситуациях системные администраторы лезут в гугл, копают тонны информации, в поиске ответа и находят решение собирая по крупицам собранные сведения с разных источников. […]

  1. Введение
  2. Внутренний номер не регистрируется.

Введение

Многие из вас сталкивались с трудностями, которые возникали при работе с астериском. Начиная от подключения внутреннего номера, заканчивая непонятными ошибками в консоли астериска. Обычно в таких ситуациях системные администраторы лезут в гугл, копают тонны информации, в поиске ответа и находят решение собирая по крупицам собранные сведения с разных источников. Поэтому была написана статья, в которой будет описаны основные проблемы и подводные камни, а также как обойти их и наладить работу.

Внутренний номер не регистрируется.

Первой темой, которую мы рассмотрим — это будет подключение внутреннего номера. Условно, можно её можно разделить на несколько пунктов:

  • Регистрация внутренних номеров
  • Доступность внутреннего номера

Начнем с рассмотрения самой распространенной проблемы, а именно с регистрации. Отсутствие регистрации вызвано:

  1. NAT
  2. Firewall
  3. Не верный пароль
  4. Не верные пермиты
  5. Не верный транспорт
  6. Fail2ban

Диагностика  NAT: самое простое — это если между регистрируемым устройством и астериском у вас находится NAT устройство. В таком случае на АТС не будут приходить пакеты с запросом регистрации. Чтобы проверить приходят пакеты от устройства или нет, воспользуемся утилитой tcpdump.

# tcpdump -i any -s0 host 192.168.5.104 and port 5060 -nn
Астериск находится в сети 10.17.0.0/24, а регистрируемый аппарат в сети 192.168.5.0/24
Диагностика регистрации телефонного аппарата с помощью tcpdump
Диагностика регистрации телефонного аппарата с помощью tcpdump

Отладка: проверить настроен ли проброс SIP порта из сети аппарата в сторону сервера телефонии.

Проверить какой SIP порт использует астериск, можно проверить командой asterisk -rx “sip show settings”. Раздел Global Settings.
SIP порт
SIP порт

Диагностика Firewall: когда в указанном пункте выше все настроено верно и при запущенном tcpdump вы видите приходящие пакеты REGISTER на порт 5060, но нет ответа на них, как на изображении ниже, то необходимо проверить настроенные привила iptables.

пакеты REGISTER
пакеты REGISTER

Проверить правила можно командой iptables —L —nv. Что здесь может быть:

  1. Нет правила для порта 5060 UDP/TCP
  2. Нет разрешающего правила для подсети, откуда происходит регистрация
  3. Указано запрещающее правило для конкретного IP, как на изображении ниже.
iptables REJECT
iptables REJECT

Отладка: добавить разрешающее правило для подключаемого IP адреса или добавить разрешающее правило для порта 5060, с ограничением по подключаемых сетей. В нашем примере, смотрим правила цепочки INPUT командой iptables —L —nv —line-numbers. Далее находим строку, где указано запрещающее правило для нашего ip 192.168.170.105, это 3 строка, теперь удалим эту строку командой iptables —D INPUT 3.

# iptables -L -nv –line-numbers
#  iptables -D INPUT 3

Диагностика пароля, пермитов и транспорта: после того, как вы поправили правила в iptables, и АТС в ответе на REGISTER направляет 401 Unauthorized, то правила iptables настроены верно, и при этом нет регистрации, т.е. весь «диалог» с АТС заканчивается SIP сообщением 403 Forbidden, значит опять какая-то ошибка. Для этого заходим в консоль астериска командой asterisk -rvvv и при попытке регистрации телефона ожидаем вывод сообщений в консоль. В данном случае мы можем увидеть следующие сообщения:

Не верный пароль

# NOTICE[26204]: chan_sip.c:28691 handle_request_register: Registration from '"737" <sip:737@192.168.170.157>' failed for '192.168.170.105:5060' - Wrong password
Wrong Password
Wrong Password

Не верные пермиты

# NOTICE[18474]: acl.c:750 ast_apply_acl: SIP Peer ACL: Rejecting '192.168.170.105' due to a failure to pass ACL '(BASELINE)'
# NOTICE[18474]: chan_sip.c:28691 handle_request_register: Registration from '"737" <sip:737@192.168.170.157>' failed for '192.168.170.105:59217' - Device does not match ACL
Wrong permits
Wrong permits

Не верный транспорт

# ERROR[18580]: chan_sip.c:17801 register_verify: 'TCP' is not a valid transport for '737'. we only use 'UDP'! ending call.
# NOTICE[18580]: chan_sip.c:28691 handle_request_register: Registration from '"737" <sip:737@192.168.170.157>' failed for '192.168.170.105:44067' - Device not configured to use this transport type
Wrong transport
Wrong transport

Отладка: для исправления ошибок необходимо указать корректный пароль в настройках аппарата или указать правильную подсеть с которой регистрируется аппарат в поле permit в настройках sip.conf, или указать в настройках правильный транспорт используемый для соединения. Транспорт можно посмотреть в настройках sip.conf в параметре transport.

Некоторые модели телефонов и софтфонов не поддерживают пароли длиннее 10-12 символов (К примеру, некоторые модели телефонов granstream страдают от этого), учитывайте этот момент при регистрации нового телефона. Делайте пароль не длиннее 10-12 символов и учитывайте, что случайный пробел так же может быть воспринят системой как символ.

Диагностика Fail2Ban: В случае, если у вас на АТС приходят пакеты REGISTER, но АТС не отвечает, как при проблеме с iptables, а вы уверены, что всё верно, значит ip регистрируемого аппарата попал в БАН. В нашем дистрибутиве надо посмотреть список бана следующей командой — ipset —L. Там есть несколько цепочек, отвечающих за список бана.

  • f2b-asterisk-auth — список ip адресов пытавшихся авторизоваться на астериск
  • f2b-sshd-auth — список ip адресов пытавшихся авторизоваться по SSH
  • f2b-httpd-auth — список ip адресов пытавшихся авторизоваться через Web (включая FreePBX)
Цепочки бана
Цепочки бана

Отладка: Если вы нашли свой IP адрес в бане на АТС, в одной из цепочек, разбаньте его командой

# fail2ban-client unban ip 192.168.170.105
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

Остались вопросы?

Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.