вторник, 30 сентября 2025 г.

📞 Настройка Fanvil X303G с Asterisk или оператором UISCOM

 IP-телефон Fanvil X303G — это доступная и удобная модель для офисов и домашних пользователей. В этой статье рассмотрим пошаговую настройку телефона для двух сценариев:

  • работа через локальную IP-АТС Asterisk

  • регистрация напрямую у оператора UISCOM


Пример настроек для UIS


🔹 1. Первоначальная настройка телефона

  1. Подключите телефон к сети (PoE или блок питания).

  2. Определите его IP-адрес:

    • Нажмите Menu → Status → Network,

    • либо смотрите на экране после загрузки.

  3. Откройте веб-браузер на ПК и введите этот IP.

    • Логин/пароль по умолчанию:

      Username: admin Password: admin

🔹 2. Подготовка аккаунта

В Asterisk

В sip.conf или pjsip.conf создаём учётную запись (пример для chan_sip):

[1001] type=friend secret=StrongPass123 host=dynamic context=internal nat=yes qualify=yes

Перезапускаем Asterisk:

asterisk -rx "sip reload"

В UISCOM

Оператор предоставляет:

  • SIP-логин (обычно номер, например 0291235)

  • Пароль

  • Адрес сервера (например sip.uiscom.ru)

  • Порт (обычно 5060 UDP)


🔹 3. Настройка SIP-аккаунта в Fanvil X303G

Заходим в веб-интерфейс телефона → Line → SIP.
Заполняем поля:

ПолеДля AsteriskДля UISCOM
Server AddressIP АТС (например 192.168.0.10)sip.uiscom.ru
Server Port50605060
User Name10010291235
Authentication Name10010291235
PasswordStrongPass123пароль от UIS
Display Name10010291235
Transport ProtocolUDPUDP
Expires36003600

Сохраняем настройки (Apply / Save).


🔹 4. Проверка регистрации

Зайдите в Status → Line Status.

  • Если всё верно, статус будет Registered.

  • Если 403 Forbidden → ошибка пароля или логина.

  • Если 408 Timeout → проблема с DNS или портами.

  • Если 404 Not Found → неправильный номер или логин.


🔹 5. Дополнительные функции

Do Not Disturb (DND)

  • На передней панели есть кнопка DND (⛔).

  • Повторное нажатие отключает режим.

  • Также доступно в меню: Features → DND → Off.

NAT и Keep Alive

Если телефон за роутером:

  • Включите Keep Alive (30 секунд).

  • При проблемах с вызовами у UISCOM можно включить STUN: stun.l.google.com:19302.

Жёсткий сброс

Если забыли пароль:

  1. Выключите питание.

  2. Зажмите # и подайте питание.

  3. Держите до появления сообщения о сбросе.


🔹 6. Возможные ошибки

  • Телефон шлёт REGISTER на номер вместо домена
    → В поле Server Address всегда указывайте адрес сервера (sip.uiscom.ru), а не номер!

  • Нет звонков снаружи
    → Проверьте проброс портов или включите SIP ALG на роутере.

  • Неправильное время/дата
    → Задайте NTP сервер (например pool.ntp.org) в настройках.


✅ Итог

  • Для Asterisk указываем IP АТС и учётные данные, созданные в конфигурации.

  • Для UISCOM используем данные провайдера: сервер sip.uiscom.ru, номер в качестве логина и пароль.

  • При правильной настройке телефон регистрируется и готов к звонкам.


📌 Совет: всегда сначала проверяйте SIP-данные у оператора на софтфоне (например PhonerLite), а потом переносите их в Fanvil.


четверг, 21 августа 2025 г.

VitalPBX: Подключение к оператору Novofon, настройка транка и маршрутизации входящих и исходящих вызовов

Настройка SIP-транка и маршрутов во VitalPBX (на примере Novofon)


VitalPBX — мощная и удобная платформа на базе Asterisk, позволяющая подключать различных VoIP-операторов для входящей и исходящей телефонии. В этой статье разберём настройку SIP-транка с Novofon, организацию маршрутов и диагностику типичных проблем.


1. Подготовка данных от провайдера

Для подключения к SIP-провайдеру необходимо иметь:

  • Логин (обычно совпадает с номером транка или аккаунта);

  • Пароль;

  • SIP-сервер провайдера (например: sip.novofon.com);

  • Номера (DID), на которые будут поступать входящие вызовы.


2. Создание SIP-транка в VitalPBX

Перейдите в веб-интерфейсе:
PBX → External → Trunks → Create

Укажите:

  • Name: Novofon

  • Technology: PJSIP

  • Username: ваш логин (например 215348)

  • Password: пароль

  • SIP Server: sip.novofon.com

  • Transport: UDP

Сохраните и примените изменения (Apply Config).


3. Настройка исходящих маршрутов (Outbound Routes)

Чтобы звонки из вашей АТС шли через Novofon:

  1. Перейдите: PBX → External → Outbound Routes → Create

  2. Укажите:

    • Name: novofon-out

    • Pattern: X. (или конкретные шаблоны номеров: 7XXXXXXXXXX)

    • Trunk: выберите Novofon

  3. Сохраните.

Теперь исходящие звонки будут уходить через оператора.


4. Настройка входящих маршрутов (Inbound Routes)

Чтобы принимать звонки, нужно задать правило для DID:

  1. Перейдите: PBX → External → Inbound Routes → Create

  2. Укажите:

    • DID Number: номер, который передаёт провайдер (например 79697774444)

    • Destination: куда направлять вызов (Extension, Ring Group, IVR и т.д.)

  3. Сохраните и примените.

💡 Если провайдер может присылать несколько номеров — можно создать универсальный маршрут:

  • В поле DID Number поставить . (точка = любое значение).

  • Тогда все входящие будут направляться, например, в IVR.


5. Включение дебага для диагностики

При проблемах полезно включить SIP-логирование:

asterisk -rvvv pjsip set logger on

В консоли будут видны все SIP-пакеты (INVITE, 200 OK и пр.). Это помогает определить:

  • Какой DID реально приходит от оператора;

  • Почему вызов попадает в invalid-dest.


6. Типичные проблемы и их решение

6.1. Исходящие звонки не работают

Причина:

  • Ошибки в логине/пароле;

  • Неверный SIP-сервер;

  • Неправильный шаблон номеров в Outbound Route.

Решение:

  • Проверить данные авторизации;

  • Убедиться, что Outbound Route соответствует набираемому номеру;

  • Посмотреть SIP-логи.


6.2. Входящие звонки попадают в invalid-dest

Причина:
Для DID не настроен inbound-маршрут.

Решение:

  • Снять реальный номер из SIP-лога (P-Called-Party-ID или To:).

  • Создать inbound-route на этот DID.


6.3. Нет звука или односторонняя связь

Причина:

  • Проблемы с NAT или блокировкой RTP-портов.

Решение:

  • Прописать в настройках VitalPBX правильный External Address и Local Networks;

  • Открыть RTP-порты (обычно 10000–20000/UDP) в firewall.


6.4. Вызов сбрасывается сразу после набора

Причина:
Оператор требует регистрацию, но её нет.

Решение:
Проверить статус транка в PBX → External → Trunks и убедиться, что он в состоянии Registered.


Итог

Настройка SIP-транка в VitalPBX сводится к трём шагам:

  1. Создать транк и зарегистрировать его у провайдера.

  2. Настроить исходящие маршруты для звонков через оператора.

  3. Настроить inbound-маршруты для обработки входящих номеров (DID).

При проблемах всегда используйте pjsip set logger on, чтобы увидеть, какой номер приходит и почему вызов не маршрутизируется.

вторник, 19 августа 2025 г.

Тренды 2024–2025 в колл-центрах (и что это значит для Asterisk)

 


Современный колл-центр на Asterisk: тренды и практика для российского бизнеса

В последние годы колл-центры в России перестали быть просто «телефонными комнатами». Компании ждут от них больше: интеграции с CRM, прозрачной аналитики, поддержки удалённых сотрудников и применения искусственного интеллекта. При этом ключевой технологией остаётся Asterisk — надёжная платформа с открытым исходным кодом, которая позволяет строить контакт-центры любого масштаба.


Тренды российского рынка в 2025 году

1. Гибрид «оператор + ИИ»

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

2. Подсказки для операторов в реальном времени

ИИ-ассистенты подсказывают фразы, ведут протокол звонка и формируют краткое резюме для CRM. В российских колл-центрах это становится особенно востребованным в сферах с жёстким скриптовым подходом — банки, страховые, ритейл.

3. Качество голоса и «чистая линия»

Клиенты в России всё меньше терпят плохую слышимость. Технологии шумоподавления и оптимизации голоса позволяют держать уровень сервиса на высоте даже при работе операторов из дома.

4. WebRTC для удалённых сотрудников

Работа из браузера без установки софтфона удобна и для операторов, и для администраторов. Для российского рынка, где распространён аутсорсинг и гибридные команды, это стало настоящим стандартом.

5. ARI как центр бизнес-логики

Сегодня диалплан в extensions.conf — это «прошлый век». Современные проекты строят логику на Asterisk REST Interface (ARI), а сами сценарии реализуют во внешних приложениях (на Python, Node.js, Go).

6. Законодательные требования

В России к колл-центрам предъявляются всё более строгие требования:

  • 54-ФЗ — запись и хранение звонков, особенно для финансовых организаций;

  • ФЗ о персональных данных — защита информации клиентов;

  • Антиспам-закон — запрет «холодного» обзвона без согласия.
    Кроме того, операторы обязаны предоставлять возможность отказа от звонков и хранить подтверждённые согласия на коммуникации.


Архитектура колл-центра на базе Asterisk

Базовый набор:

  • Asterisk 20/21 — ядро телефонии;

  • PJSIP — современный SIP-движок;

  • WebRTC — звонки прямо из браузера;

  • ARI-приложение — маршрутизация, IVR, логика кампаний;

  • PostgreSQL/Redis — хранение и кэш данных;

  • Prometheus + Grafana — мониторинг и аналитика.

Защита и масштабирование:

  • Kamailio/OpenSIPS + RTPengine — пограничный SIP-сервер и медиапрокси;

  • TLS/SRTP — шифрование голосового трафика;

  • Кластеризация Asterisk + контейнеризация сервисов (Docker, Kubernetes) для высокой доступности.


Сценарии, востребованные в России

  • Входящие звонки: IVR (многоуровневое меню) → очередь → оператор → автопротоколирование разговора.

  • Исходящие кампании: обзвон по «белым спискам», прогрессивный и предиктивный дозвон с контролем времени звонков (законодательно — только в разрешённые часы).

  • Коллбек: клиент оставил номер — система сама перезванивает.

  • Омниканал: интеграция телефона, мессенджеров (Telegram, WhatsApp), чата на сайте и email в единую CRM-карточку.


Интеграции

  • CRM: 1С-CRM, amoCRM, Bitrix24 — самые востребованные в России;

  • ASR/Транскрибация: «Яндекс SpeechKit» или «СберЗвук» для автоматических расшифровок;

  • WFM/QA: российские решения для планирования смен и контроля качества (например, Noda WFM, Contact Center QA).


План внедрения

  1. Запуск Asterisk и настройка SIP-транков у российского оператора;

  2. Создание очередей и дашбордов с ключевыми метриками (SLA, AHT, Abandon Rate);

  3. Внедрение WebRTC для операторов на удалёнке;

  4. Перенос логики в ARI-приложение;

  5. Подключение ИИ — транскрибация, подсказки, авто-резюме;

  6. Соблюдение законодательства — хранение звонков, защита данных, согласия на коммуникации.


Что особенно важно в российских реалиях

  • Соблюдать «чистоту» базы для обзвона: звонки без согласия клиента грозят штрафами;

  • Хранить записи звонков минимум 6 месяцев (для финансовых организаций — дольше);

  • Учесть российские мессенджеры (Telegram, VK) при построении омниканального контакта;

  • Не перегружать диалплан — бизнес-логику вынести в ARI-приложения;

  • Поддерживать SLA: российские заказчики всё чаще оценивают подрядчиков именно по этим метрикам.


Вывод

Для российского бизнеса Asterisk остаётся одной из самых надёжных платформ для построения колл-центров. Современный контакт-центр в 2025 году — это:

  • звонки через WebRTC,

  • гибкая логика на ARI,

  • интеграция с CRM и мессенджерами,

  • помощь искусственного интеллекта,

  • и строгое соблюдение российских законов о связи и персональных данных.

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

вторник, 5 августа 2025 г.

Как выбрать IP-АТС для колл-центра в России

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


1. Определите задачи и масштаб

Перед покупкой важно понять, для чего именно будет использоваться IP-АТС.

  • Небольшой колл-центр — достаточно облачного решения с базовым набором функций.

  • Средний и крупный колл-центр — лучше рассмотреть аппаратные или гибридные системы с расширенными возможностями интеграции.

2. Выберите тип IP-АТС

В России популярны три варианта:

  • Облачная IP-АТС — аренда у провайдера, быстрое подключение, нет затрат на оборудование, но ежемесячная абонплата.

  • Аппаратная IP-АТС — собственное устройство на базе Asterisk, FreePBX, 3CX и др., полный контроль, но выше стартовые расходы.

  • Гибридная IP-АТС — сочетает возможности облака и локального сервера, подходит для компаний с филиалами.

3. Обратите внимание на функционал

Минимальный набор функций для колл-центра:

  • распределение звонков (ACD);

  • интерактивное голосовое меню (IVR);

  • запись и хранение разговоров;

  • интеграция с CRM;

  • статистика и отчётность в реальном времени;

  • поддержка удалённых операторов.

4. Совместимость и интеграции

Важно, чтобы IP-АТС работала с вашей CRM-системой (Битрикс24, amoCRM, Мегаплан и др.), а также поддерживала популярные SIP-телефоны и софтфоны (Zoiper, Linphone).

5. Надёжность и безопасность

Убедитесь, что выбранная система:

  • защищена от SIP-атак и несанкционированного доступа;

  • имеет резервное копирование;

  • способна работать без сбоев при высоких нагрузках.

6. Выбор провайдера и поддержка

При работе с облачными решениями в РФ выбирайте проверенных операторов связи, которые обеспечивают:

  • выделенный канал или приоритет трафика для голоса;

  • техническую поддержку 24/7;

  • размещение серверов в России (для соблюдения закона о персональных данных).


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

вторник, 22 июля 2025 г.

Как сократить расходы на звонки в Колл-центре: эффективные решения для России

 Узнайте, как снизить стоимость входящих и исходящих звонков в колл-центре с помощью SIP, GSM-шлюзов, виртуальных АТС и других решений. Практические способы экономии для бизнеса в России.

Чтобы сэкономить на стоимости звонков в колл-центре или контакт-центре в России, можно использовать несколько стратегий, технических решений и оптимизаций. Вот ключевые способы:


📞 1. Использование IP-телефонии (VoIP)

  • Подключите SIP-транки вместо обычных телефонных линий. Это дешевле и более гибко.

  • Провайдеры SIP в России: Mango Office, Zadarma, Telfin, Ростелеком, МТТ и др.

  • Выбирайте провайдеров с низкими ставками на исходящие звонки (особенно на мобильные).


☎️ 2. Использование виртуальных АТС (облачных АТС)

  • Такие системы, как Mango Office, UIS, Zadarma, Билайн Бизнес, Телфин, позволяют:

    • маршрутизировать звонки эффективно (экономия на распределении нагрузки);

    • использовать локальные номера (снижение междугородных затрат);

    • сокращать стоимость обслуживания и внедрения.


🏢 3. Переход на местные номера и номера 8-800

  • Региональные номера дешевле, чем звонки на московские или мобильные.

  • Номера 8-800 оплачиваются компанией, но могут быть дешевле в сравнении с входящими на мобильные номера — особенно в крупном объеме и при правильных тарифах от провайдера.


🧠 4. Интеллектуальная маршрутизация и IVR

  • IVR-меню (голосовое меню) снижает количество разговоров с операторами (экономия на трафике и времени).

  • Используйте коллбэки (callback) вместо исходящих: клиент оставляет заявку — система сама перезванивает с дешёвого канала.


🤖 5. Автоматизация и голосовые боты

  • Используйте AI-ботов для обработки типовых запросов (например, расписание, статус заказа, доставка).

  • Пример: встроить робота на основе Yandex SpeechKit, Tinkoff VoiceKit или ChatGPT API.


📊 6. Аналитика и контроль

  • Следите за метриками: средняя длительность разговора, количество вызовов, каналы, по которым приходят звонки.

  • Отключайте неэффективные направления, регионы или рекламные каналы.


👨‍💻 7. Работа через интернет (web-calls, виджеты)

  • Добавьте на сайт кнопку “Позвонить” через браузер (WebRTC).

  • Стоимость звонка = 0 рублей, если клиент звонит через интернет.


📃 8. Тарифный аудит

  • Периодически пересматривайте тарифы операторов связи, проверяйте конкурентов.

  • Объединяйте мобильную и офисную связь в корпоративные пакеты у одного оператора (можно получить скидку).


💡 Пример экономии:

  • Вместо: 10 000 входящих/исходящих звонков по мобильной сети → 3 руб/мин → 300 000 руб

  • С SIP-транком: те же 10 000 звонков → 0.5 руб/мин → всего 50 000 руб

  • Экономия — 250 000 руб в месяц


Если расскажете о конкретной инфраструктуре или масштабах колл-центра (кол-во агентов, регионы, VoIP уже есть или нет), могу предложить точечные решения.

вторник, 22 апреля 2025 г.

Можно ли принимать звонки Telegram и Whatsapp в Asterisk?

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

Вот краткий обзор текущей ситуации:


Telegram 

  • Официально: Нет поддержки звонков через SIP или Asterisk.

  • Альтернативы:

    • Есть проекты, использующие MTProto API Telegram, но они позволяют отправку сообщений, ботов, но не голосовые звонки.

    • Звонки в Telegram используют отдельный, закрытый протокол, недоступный для интеграции с Asterisk.

    • Некоторые энтузиасты экспериментировали с виртуальными аудио-устройствами, чтобы «перехватывать» звонки на десктоп-клиенте, но это крайне нестабильно и не подходит для продакшена.


WhatsApp

  • Официально: Тоже нет поддержки звонков через SIP или другие открытые протоколы.

  • WhatsApp Business API: Не поддерживает звонки — только текстовые сообщения и шаблоны сообщений.

  • Варианты:

    • Некоторые коммерческие продукты, например Dialogflow, Twilio, или сторонние шлюзы, предлагают "интеграции", но чаще всего они:

      • Используют эмуляцию Android (через эмуляторы типа Bluestacks и перехват аудио)

      • Или работают только с текстом

    • Существуют WhatsApp SIP-шлюзы, например WhatsApp Gateway от SignalWire (экспериментальные/частные решения), но их работа нестабильна, нарушает правила WhatsApp и чревата баном номера.


🔁 Альтернатива

Если тебе критично принимать звонки из Telegram или WhatsApp в Asterisk, вот несколько альтернативных подходов:

1. 📱Переадресация звонков

  • Настроить переадресацию звонков с мессенджеров на обычный номер телефона, подключенный к Asterisk.

  • Но WhatsApp и Telegram не поддерживают переадресацию голосовых вызовов.

2. 🤖 Бот с кнопкой «Позвонить»

  • Создать бота в Telegram, который по команде «позвонить» предложит номер SIP, на который пользователь может сам позвонить через IP-телефонию.

  • Это не автоматическая интеграция, но позволяет «связать» системы.

3. 📟 Веб-RTC

  • Предложить пользователям звонить через WebRTC-страницу, подключенную к Asterisk (например, через SIP.js). Ссылку можно отправлять в Telegram или WhatsApp вручную или ботом.


Вывод

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

Если нужна надежная интеграция мессенджеров с телефонией — можно рассмотреть другие мессенджеры с SIP-поддержкой (например, SignalWire, Jitsi, Matrix + SIP Bridge).

вторник, 8 апреля 2025 г.

Максимальная нагрузка Asterisk: сколько одновременных звонков может выдержать сервер?

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


Зависимость производительности от аппаратной платформы

1. Сервер базового уровня:

  • CPU: 4 ядра (Intel Core i5)

  • RAM: 8 ГБ

  • Сетевой адаптер: 1 Гбит/с

  • Кодек: G.711 (без транскодирования)

  • Максимум: до 270 одновременных вызовов

  • Загрузка CPU: ~65%

2. Сервер среднего класса:

  • CPU: 8 потоков (Intel Xeon)

  • RAM: 16 ГБ

  • Сетевой адаптер: 1 Гбит/с

  • Кодек: G.729 (с транскодированием)

  • Максимум: до 430 одновременных вызовов

  • Загрузка CPU: ~80%

3. Высокопроизводительный сервер:

  • CPU: 32 потока (Intel Xeon Gold)

  • RAM: 64 ГБ

  • Сетевой адаптер: 10 Гбит/с

  • Кодек: G.711 + IVR + запись вызовов

  • Максимум: до 2100 вызовов (входящие + внутренние + очередь)

  • Загрузка CPU: ~70%, IO диска: высокая


Сравнительная таблица по нагрузке Asterisk

Конфигурация сервера Кодек Запись звонков Доп. нагрузка (IVR, очередь) Макс. звонков Загрузка CPU
Базовая (Core i5, 8ГБ) G.711 Нет Нет ~270 65%
Средняя (Xeon, 16ГБ) G.729 Нет Нет ~430 80%
Высокая (Xeon Gold, 64ГБ) G.711 + G.729 Да Да ~2100 70%


Факторы, влияющие на производительность

  1. Кодеки:

    • G.711 (независит от CPU, но требует больше трафика)

    • G.729 (уменьшает нагрузку на сеть, но увеличивает потребление CPU из-за транскодирования)

  2. Функции записи и IVR:

    • Одновременная запись более 500 разговоров вызывает пиковые нагрузки на диск

    • Генерация аудио (MOH, IVR) требует ресурсов CPU

  3. Очереди вызовов и конференции:

    • При 100 звонках в очереди создаётся 100 аудиопотоков, влияющих на обработку

  4. Сетевая нагрузка:

    • При 1000 вызовах в кодеке G.711 необходим трафик около 85 Мбит/с

  5. Тип хранилища:

    • SSD значительно увеличивает стабильность при записи звонков по сравнению с HDD


Рекомендации по оптимизации Asterisk

  • Используйте Direct Media, чтобы аудио шло напрямую между SIP-устройствами

  • Разделите нагрузку: голосовой поток, база данных и веб-интерфейс на разные серверы

  • Минимизируйте транскодирование, используя одинаковые кодеки

  • При большой нагрузке используйте Asterisk в связке с Kamailio или FreeSWITCH для балансировки

  • Выключите ненужные модули в Asterisk для снижения потребления ресурсов


Вывод

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

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

Почему Asterisk не регистрируется на SIP-транке: причины, диагностика и руководство по устранению проблем

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

Вы узнаете:

  • все возможные причины сбоев при регистрации на SIP-провайдере;

  • как использовать sip.conf и pjsip.conf — с готовыми шаблонами и пояснениями;

  • как выявить ошибки с помощью встроенных инструментов Asterisk и сетевых утилит;

  • как обнаружить проблемы NAT, обрывов звонков и потери аудио;

  • как проверить правильность маршрутизации и настройки портов;

  • и как воспользоваться автоматическим bash-скриптом для диагностики SIP/NAT.

Подходит как для начинающих, так и для системных администраторов, кто хочет быстро локализовать и устранить проблемы с VoIP-инфраструктурой на базе Asterisk.

📌 Возможные причины, почему Asterisk не регистрируется на SIP-транке:

  1. Неверные учетные данные SIP:

    • Ошибка в username, secret, authuser.

    • Логин не совпадает с идентификатором регистрации (fromuser, fromdomain).

  2. Неправильный адрес или порт SIP-сервера:

    • Ошибка в host или порт, отличный от стандартного 5060.

    • Ошибка в DNS (неразрешаемое имя).

  3. Блокировка трафика на фаерволе/маршрутизаторе:

    • Не открыты порты 5060 (UDP), 5061 (TLS), 10000–20000 (RTP).

    • NAT не настроен или настроен некорректно.

  4. Неправильная конфигурация NAT:

    • Отсутствуют nat=force_rport,comedia, externip, localnet, externaddr.

    • Внутренний IP пробрасывается без преобразования.

  5. Проблемы на стороне провайдера:

    • Провайдер заблокировал IP.

    • Временные технические работы.

    • Ограничение по количеству регистраций или времени.

  6. Ошибки в конфигурации sip.conf или pjsip.conf:

    • Несовместимые параметры.

    • Конфликт между SIP и PJSIP (одновременно активны два стека).

  7. Asterisk не может инициировать регистрацию:

    • Служба Asterisk не запущена.

    • Ошибка загрузки модуля chan_sip.so или chan_pjsip.so.

    • SIP-транк не включён или неактивен.

  8. Отсутствие DNS-серверов на сервере Asterisk:

    • Отсутствует доступ к интернету или к DNS.

    • Используется доменное имя, но неразрешается.

  9. Неверное время на сервере:

    • Проблемы с регистрацией по TLS из-за некорректного времени.

    • Истёкший сертификат.


🔍 Диагностика (способы проверки)

  1. Проверка состояния регистрации:

    • sip show registry (для chan_sip)

    • pjsip show registrations (для chan_pjsip)

  2. Просмотр логов:

    • Включить отладку: core set verbose 10, sip set debug on, pjsip set logger on

    • Смотреть /var/log/asterisk/full

  3. Проверка соединения с провайдером:

    • ping, traceroute, telnet host 5060

    • Проверить резолвинг имени: nslookup или dig

  4. Проверка правил iptables и fail2ban:

    • iptables -L -n

    • fail2ban-client status

  5. Проверка правильности конфигурации:

    • Убедиться, что type=registration указан (в PJSIP)

    • Проверить правильность секций [general], [trunk_name], [endpoint], [auth], [aor]

  6. Проверка сетевых интерфейсов:

    • ifconfig или ip a — правильный внешний IP

    • Проверка настроек NAT


🛠️ Траблшутинг (пошаговое устранение)

  1. Убедитесь, что Asterisk запущен и модули загружены:

    asterisk -rvvv module show like sip module show like pjsip
  2. Проверьте логин и пароль SIP:

    • Попросите провайдера перепроверить данные.

  3. Используйте IP вместо доменного имени на время отладки.

  4. Проверьте, нет ли двойного NAT (CGNAT). Если да — настройте STUN или перенесите сервер.

  5. Проверьте корректность externip, localnet, nat в sip.conf или pjsip.conf.

  6. Проверьте, не блокирует ли ваш сервер обратные подключения.

  7. Убедитесь, что вы не используете одновременно SIP и PJSIP с одним и тем же адресом.

  8. Временно выключите firewall и fail2ban для теста.

  9. Используйте пакетный сниффер (tcpdump, Wireshark):

    tcpdump -i eth0 udp port 5060 -vvv


Вот подробный шаблон конфигурации для SIP и PJSIP, с пояснениями к каждому параметру, а затем разберём, как диагностировать проблемы с NAT и таймаутами, которые очень часто мешают корректной регистрации и работе звонков.


📄 Шаблон для sip.conf (chan_sip)

[general]
register => логин:пароль@провайдер:порт/логин
bindport=5060
bindaddr=0.0.0.0
externip=ВАШ_ВНЕШНИЙ_IP
localnet=192.168.0.0/255.255.255.0
nat=force_rport,comedia
context=from-trunk
disallow=all
allow=alaw
allow=ulaw

[mytrunk]
type=peer
host=провайдер
port=5060
username=логин
secret=пароль
fromuser=логин
fromdomain=провайдер
insecure=invite,port
nat=force_rport,comedia
qualify=yes
canreinvite=no
context=from-trunk

🔹 externip — ваш внешний IP-адрес (можно настроить externhost + stun если IP динамический)
🔹 nat=force_rport,comedia — обязательно при NAT.
🔹 qualify=yes — проверка доступности провайдера (отправка OPTIONS).
🔹 canreinvite=no — запрет реинвайтов, иначе RTP может идти напрямую, мимо NAT.


📄 Шаблон для pjsip.conf (chan_pjsip)

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

[provider_auth]
type=auth
auth_type=userpass
username=логин
password=пароль

[provider_aor]
type=aor
contact=sip:провайдер:5060

[provider_endpoint]
type=endpoint
transport=transport-udp
aor=provider_aor
auth=provider_auth
context=from-trunk
disallow=all
allow=alaw,ulaw
outbound_auth=provider_auth
from_user=логин
from_domain=провайдер
force_rport=yes
rtp_symmetric=yes
rewrite_contact=yes

[provider_registration]
type=registration
outbound_auth=provider_auth
server_uri=sip:провайдер
client_uri=sip:логин@провайдер
contact_user=логин
retry_interval=60
forbidden_retry_interval=300
expiration=3600
transport=transport-udp

🔹 rewrite_contact=yes — важен при NAT, чтобы Asterisk регистрировался с корректным IP.
🔹 rtp_symmetric — нужен при NAT для корректного получения RTP.
🔹 force_rport — аналог nat=force_rport из sip.conf.


🔍 Как диагностировать NAT-проблемы и таймауты

1. Проблемы регистрации (REGISTRATION)

  • Симптомы:

    • Регистрация проходит, но через некоторое время исчезает.

    • Повторная регистрация не работает без перезапуска Asterisk.

  • Диагностика:

    • Включите лог:

      pjsip set logger on core set verbose 10
    • Смотрите, отправляются ли REGISTER-запросы и получаете ли 200 OK.

    • Запустите:

      pjsip show registrations
    • Если статус Rejected или No Response, то, возможно, ответ не доходит до сервера Asterisk из-за NAT.

2. Проблемы со звуком (RTP)

  • Симптомы:

    • Звонок проходит, но нет звука в одну или обе стороны.

    • Иногда после 30 секунд звонок обрывается.

  • Возможные причины:

    • RTP (аудио) не доходит до Asterisk из-за NAT.

    • Сервер не получает RTP, думает что сессия "мертва" и обрывает её.

  • Диагностика:

    • Проверка портов RTP: по умолчанию 10000–20000 UDP.

    • Проверьте лог:

      rtp set debug on
    • Если вы не видите "Got RTP packet from...", значит RTP не доходит.

    • Проверьте iptables и NAT-маршрутизацию на внешнем роутере/файрволе.

  • Решения:

    • Убедитесь, что в sip.conf / pjsip.conf указаны externip, localnet.

    • Пропишите rtp_symmetric, rewrite_contact, force_rport.

    • Откройте UDP 5060 и 10000–20000 на фаерволе и роутере.

3. Сессии обрываются через 30-60 секунд

  • Это типичный симптом, если Asterisk не получил ACK или RTP.

  • Проверьте:

    • Настроены ли SIP KeepAlive: qualify=yes (sip.conf), qualify_frequency (pjsip.conf).

    • Открыты ли порты и правильно ли работает NAT.


Хочешь, могу сделать bash-скрипт для автоматической диагностики сетевых проблем с SIP на сервере

Вот скрипт на Bash, который поможет диагностировать сетевые проблемы SIP/NAT/портов на сервере с Asterisk. Он проверяет:

  • статус Asterisk и его модули SIP/PJSIP,

  • наличие открытых SIP/RTP портов,

  • внешний IP,

  • разрешение DNS,

  • доступность SIP-сервера провайдера,

  • наличие правил iptables,

  • проблемы с fail2ban.


🛠️ sip_diag.sh — скрипт для диагностики SIP/NAT в Asterisk

#!/bin/bash

# === Настройки пользователя ===
SIP_PROVIDER_HOST="sip.provider.com"   # Замените на ваш SIP-сервер
RTP_PORT_RANGE_START=10000
RTP_PORT_RANGE_END=20000
EXTERNAL_PORT=5060

# === Вывод цвета ===
GREEN="\e[32m"
RED="\e[31m"
YELLOW="\e[33m"
RESET="\e[0m"

log_ok()    { echo -e "${GREEN}[OK]${RESET} $1"; }
log_warn()  { echo -e "${YELLOW}[WARN]${RESET} $1"; }
log_err()   { echo -e "${RED}[ERROR]${RESET} $1"; }

echo "=== Диагностика SIP/NAT Asterisk ==="

# 1. Проверка, запущен ли Asterisk
if pgrep -x "asterisk" > /dev/null; then
    log_ok "Asterisk работает"
else
    log_err "Asterisk не запущен"
fi

# 2. Проверка модулей SIP и PJSIP
asterisk -rx "module show like sip" | grep -q "chan_sip" && log_ok "Модуль chan_sip загружен" || log_warn "chan_sip не загружен"
asterisk -rx "module show like pjsip" | grep -q "chan_pjsip" && log_ok "Модуль chan_pjsip загружен" || log_warn "chan_pjsip не загружен"

# 3. Внешний IP
EXT_IP=$(curl -s https://api.ipify.org)
[[ -n "$EXT_IP" ]] && log_ok "Внешний IP: $EXT_IP" || log_warn "Не удалось определить внешний IP"

# 4. Проверка DNS резолвинга SIP-провайдера
if getent hosts "$SIP_PROVIDER_HOST" > /dev/null; then
    log_ok "SIP-провайдер $SIP_PROVIDER_HOST успешно резолвится"
else
    log_err "DNS не может разрешить $SIP_PROVIDER_HOST"
fi

# 5. Проверка доступности SIP-порта провайдера
nc -z -u -w2 "$SIP_PROVIDER_HOST" $EXTERNAL_PORT && log_ok "Порт $EXTERNAL_PORT UDP на $SIP_PROVIDER_HOST доступен" || log_warn "Порт $EXTERNAL_PORT UDP на $SIP_PROVIDER_HOST не отвечает"

# 6. Проверка открытых портов на сервере
if ss -u -l | grep -q ":$EXTERNAL_PORT"; then
    log_ok "UDP порт $EXTERNAL_PORT (SIP) открыт на сервере"
else
    log_warn "UDP порт $EXTERNAL_PORT (SIP) не прослушивается"
fi

# 7. Проверка RTP портов (10000-20000)
OPEN_RTP=$(ss -u -l | grep -E ":1[0-9]{4}|:20000" | wc -l)
[[ "$OPEN_RTP" -gt 0 ]] && log_ok "RTP порты (10000–20000) активны" || log_warn "RTP порты (10000–20000) не прослушиваются"

# 8. Проверка iptables
if command -v iptables &>/dev/null; then
    IPTABLES_DROP=$(iptables -L -n | grep -c DROP)
    [[ $IPTABLES_DROP -gt 0 ]] && log_warn "iptables содержит DROP-правила, проверьте вручную" || log_ok "iptables не содержит явных блокировок"
else
    log_warn "iptables не установлен"
fi

# 9. Проверка Fail2ban
if systemctl is-active --quiet fail2ban; then
    JAILS=$(fail2ban-client status | grep Jail | cut -d: -f2)
    log_ok "Fail2Ban активен. Проверка забаненных IP..."
    fail2ban-client status asterisk 2>/dev/null | grep -q "Banned IP list:" && log_warn "Есть забаненные IP в jail 'asterisk'"
else
    log_ok "Fail2Ban не активен"
fi

# 10. Тест на NAT-интерфейсы
PRIVATE_IP=$(ip a | grep 'inet 192\|inet 10\|inet 172' | grep -v '127.0.0.1' | awk '{print $2}' | head -n1)
if [[ -n "$PRIVATE_IP" ]]; then
    log_warn "Обнаружен NAT-интерфейс ($PRIVATE_IP). Убедитесь, что настроен externip/localnet в sip/pjsip"
else
    log_ok "NAT-интерфейс не обнаружен"
fi

echo -e "\n${YELLOW}Проверка завершена. Проверьте вышеуказанные рекомендации.${RESET}"


📦 Как использовать:

  1. Скопируй скрипт в файл, например sip_diag.sh.

  2. Дай права на исполнение:

    chmod +x sip_diag.sh
  3. Запусти от root или пользователя с правами на asterisk и iptables:

    ./sip_diag.sh