понедельник, 7 апреля 2025 г.

Почему не проходят входящие звонки на Asterisk: Гайд по диагностике и устранению ошибок

Asterisk входящие звонки не работают — как найти и устранить причину

🧰 Шаг 1. Проверка базовых условий

✅ Убедитесь, что Asterisk запущен

sudo systemctl status asterisk
  • Если не запущен: sudo systemctl start asterisk

✅ Проверка логов Asterisk в реальном времени

sudo asterisk -rvvvvvv
  • Либо запустить отдельно лог:

tail -f /var/log/asterisk/full

📞 Шаг 2. Проверка подключения к провайдеру (SIP-транк)

🛠 Проверка регистрации SIP (если требуется)

В консоли Asterisk:

sip show registry # для chan_sip pjsip show registrations # для PJSIP

Ожидаемый результат: статус Registered.

📋 Проверьте настройки sip.conf или pjsip.conf:

  • IP/домен сервера

  • Правильность логина и пароля

  • Использование правильного порта (обычно 5060)

  • Используется ли NAT


🔁 Шаг 3. Проверка входящих маршрутов (Dialplan)

Проверьте extensions.conf (или extensions.ael/extensions.lua)

  • Есть ли контекст для входящих звонков?

  • Соответствует ли номер/паттерн (_X., _+X., точный номер) тому, что приходит от провайдера?

Пример:

[from-trunk] exten => _X.,1,NoOp(Incoming call from ${CALLERID(num)}) same => n,Answer() same => n,Dial(SIP/101) same => n,Hangup()

🕵️‍♂️ Шаг 4. Проверка что звонки вообще доходят до сервера

Используйте tcpdump:

sudo tcpdump -i eth0 -n port 5060
  • Если вообще нет INVITE-запросов — звонки даже не доходят.

  • Если приходят, но не обрабатываются — проблема в конфигурации Asterisk.


🌐 Шаг 5. Проблемы с NAT / внешним IP

Asterisk часто неправильно работает за NAT, если не указать:

Для sip.conf:

[general] externip=ВАШ_ВНЕШНИЙ_IP localnet=192.168.1.0/255.255.255.0 nat=force_rport,comedia

Для pjsip.conf:

[transport-udp] type=transport protocol=udp bind=0.0.0.0 external_media_address=ВАШ_ВНЕШНИЙ_IP external_signaling_address=ВАШ_ВНЕШНИЙ_IP local_net=192.168.1.0/24

🔐 Шаг 6. Проверка блокировки firewall / fail2ban

  • Проверьте iptables / firewalld / ufw:

sudo iptables -L -n sudo ufw status
  • Проверка, не заблокировал ли IP провайдера fail2ban:

sudo fail2ban-client status asterisk

Если IP заблокирован:

sudo fail2ban-client set asterisk unbanip XXX.XXX.XXX.XXX

📱 Шаг 7. Проверка правильности DID

  • Провайдер может отправлять вызов на номер, который не соответствует вашему exten в extensions.conf.

  • Посмотрите в логах asterisk -rvvv строку вида:

Received incoming SIP INVITE to extension: 74951234567
  • Убедитесь, что у вас есть обработка exten => 74951234567,...

Если приходит в формате с +: +74951234567, а у вас 7495..., то просто не совпадает.


🧪 Шаг 8. Протестируйте звонок вручную

В консоли Asterisk:

dialplan show from-trunk

или

dialplan show 74951234567@from-trunk
  • Убедитесь, что существует такой маршрут.


🧱 Шаг 9. Проверьте SIP-перенаправления и Context

Для sip.conf:

[from-sip-provider] context=from-trunk

Для pjsip.conf:

[provider] type=endpoint context=from-trunk ...

🔔 Шаг 10. Проверка на ошибку CODEC’ов

  • Некоторые провайдеры требуют конкретные кодеки: ulaw, alaw, g729 и т.д.

  • Убедитесь, что у вас в sip.conf или pjsip.conf включены необходимые кодеки:

disallow=all allow=alaw allow=ulaw

🧭 Шаг 11. Проверка failover/балансировки

Если звонок отправляется через внешний SBC (Session Border Controller) или балансировщик — возможно, он режет SIP-трафик или неверно маршрутизирует его.


🔊 Шаг 12. Проверьте голосовые сообщения и воспроизведение

Иногда вызов доходит, но Asterisk не может проиграть приветствие (проблемы с файлами или форматами).


💡 Дополнительно: что ещё стоит проверить

  • Включить полный лог дебага SIP:

sip set debug on # для chan_sip pjsip set logger on # для pjsip
  • Проверить наличие двух Asterisk-процессов:

ps aux | grep asterisk
  • Обновить Asterisk до последней стабильной версии.


🤔 Часто встречающиеся ошибки

Ошибка / ПоведениеПричина
INVITE rejected: 404 Not FoundНеверный exten, нет маршрута
No matching peer foundIP звонящего не распознан
No audioПроблема с NAT / кодеки
Asterisk не реагирует на входящий звонокТрафик не доходит / порт закрыт

Комментариев нет:

Отправить комментарий