DevOps

Настройка маршрутизации входящих звонков в FreePBX

Пошаговое руководство по настройке маршрутизации входящих звонков из разных SIP-транков в соответствующие экстеншены в FreePBX.

3 ответа 1 просмотр

Как настроить маршрутизацию входящих звонков из определенных транков в определенные экстеншены в FreePBX? У меня есть 4 SIP-транка, каждый связан с отдельной SIM-картой GSM-шлюза, но все входящие вызовы приходят на один экстеншен ‘S’ вместо того, чтобы маршрутизироваться в соответствующие экстеншены.

Правильная настройка маршрутизации входящих звонков из разных SIP-транков в соответствующие экстеншены в FreePBX требует тщательной конфигурации транков, экстеншенов и правил маршрутизации. Для решения вашей проблемы с 4 SIP-транками, которые все маршрутизируются в один экстеншен ‘S’, необходимо проверить настройки каждого транка, создать индивидуальные экстеншены и настроить правила входящей маршрутизации для каждого транка отдельно. Это позволит обеспечить правильное распределение вызовов от каждой SIM-карты GSM-шлюза на соответствующие внутренние номера.


Архитектура FreePBX с маршрутизацией звонков

Содержание


Основы FreePBX и маршрутизации звонков

FreePBX — это мощная система управления Asterisk, которая предоставляет удобный веб-интерфейс для настройки IP-телефонии без необходимости прямого редактирования конфигурационных файлов. Вместо сложного программирования Asterisk, FreePBX предлагает предустановленные функции через дружелюбный интерфейс, что позволяет быстро развернуть полноценную АТС. Система поддерживает различные возможности: голосовую почту, функцию “Follow Me”, группы звонков, конференции, paging, intercom, музыку на удержании и очереди звонков. Все это работает на стеке LAMPA (Linux, Apache, MySQL, PHP и Asterisk) и является модульной системой с возможностью установки плагинов из онлайн-репозитория.

Маршрутизация вызовов в FreePBX — это ключевой механизм, определяющий, куда будет направлен входящий вызов. Когда звонок поступает, система анализирует различные параметры: источник вызова (транк), номер звонящего, время суток, нагрузку на систему и другие факторы. На основе этих параметров FreePBX применяет правила маршрутизации для определения конечного экстеншена. Проблема, с которой вы столкнулись, когда все вызовы идут в один экстеншен ‘S’, типична для неправильной настройки именно этих правил маршрутизации.

Для решения вашей проблемы с 4 SIP-транками, каждый из которых должен маршрутизироваться в свой экстеншен, необходимо понять, как FreePBX обрабатывает входящие вызовы. Каждый транк должен иметь уникальную идентификацию, а система должна знать, какой экстеншен отвечает за какой транк. Это достигается через настройку входящей маршрутизации, которая связывает каждый транк с соответствующим экстеншеном через контексты и правила.


Настройка SIP-транков в FreePBX

Правильная настройка SIP-транков — это первый и самый важный шаг для решения вашей проблемы с маршрутизацией. Каждый из 4 SIP-транков, связанных с SIM-картами GSM-шлюза, должен быть настроен с уникальными параметрами, чтобы FreePBX могла их различать и правильно маршрутизировать вызовы. Давайте рассмотрим пошаговую инструкцию по настройке каждого транка.

Настройка первого транка

  1. Войдите в веб-интерфейс FreePBX и перейдите в раздел “Connectivity” → “Trunks”
  2. Нажмите “Add Trunk”
  3. Выберите тип “SIP Trunk”
  4. В поле “Trunk Name” укажите уникальное имя для первого транка, например “GSM-Trunk-1”
  5. В поле “PEER Details” введите параметры, предоставленные вашим провайдером или GSM-шлюзом. Обычно это выглядит так:
host=your-gateway-ip
username=your-username
secret=your-password
type=friend
disallow=all
allow=alaw
allow=ulaw
context=from-trunk
insecure=very
  1. В поле “User Context” оставьте значение по умолчанию
  2. В поле “Outbound Caller ID” можно указать номер телефона, который будет отображаться при исходящих звонках
  3. Сохраните настройки

Повторите этот процесс для каждого из 4 транков, используя уникальные имена: “GSM-Trunk-1”, “GSM-Trunk-2”, “GSM-Trunk-3”, “GSM-Trunk-4”. Убедитесь, что для каждого транка указаны корректные параметры подключения: хост, имя пользователя, пароль и другие специфичные для вашего GSM-шлюза настройки.

Важные параметры для настройки

  • Trunk Name: Должно быть уникальным для каждого транка
  • PEER Details: Содержит параметры аутентификации и подключения
  • Context: Определяет, куда будут направляться входящие вызовы. Обычно используется “from-trunk”
  • Type: Обычно “friend” для двусторонней связи
  • Codecs: Убедитесь, что для всех транков используются одинаковые кодеки (alaw, ulaw)

После настройки всех 4 транков, перейдите в раздел “Status” → “Trunks” и проверьте их статус. Все транки должны быть в состоянии “Registered”, что означает успешное подключение к GSM-шлюзу. Если какие-то транки не регистрируются, проверьте сетевые настройки и параметры аутентификации.


Создание и настройка экстеншенов

После настройки SIP-транков следующим шагом является создание соответствующих экстеншенов для каждого транка. Экстеншен — это внутренний номер в вашей IP-АТС, на который будут поступать звонки. Для решения вашей проблемы необходимо создать 4 отдельных экстеншена, каждый из которых будет принимать звонки только от соответствующего транка.

Создание экстеншенов

  1. В веб-интерфейсе FreePBX перейдите в раздел “Applications” → “Extensions”
  2. Нажмите “Add Extension”
  3. Заполните поля для первого экстеншена:
  • Extension: Введите внутренний номер, например “100”
  • Display Name: Имя сотрудника или отдела
  • User: Имя пользователя (обычно совпадает с экстеншеном)
  • Secret: Пароль для SIP-регистрации
  • Trunk: Укажите транк, который будет использоваться для исходящих звонков (необязательно для входящих)
  • Voicemail: Включите голосовую почту при необходимости
  1. Сохраните настройки

Повторите этот процесс для каждого экстеншена, используя уникальные номера: 100, 101, 102, 103. Каждый экстеншен должен быть связан с одним из 4 транков через правила входящей маршрутизации.

Важные параметры для экстеншенов

  • Extension: Уникальный внутренний номер
  • Display Name: Имя для отображения в интерфейсе
  • Secret: Пароль для SIP-регистрации
  • Voicemail: Настройки голосовой почты
  • User Context: Контекст пользователя (обычно “default”)
  • CID Options: Опции Caller ID

После создания всех экстеншенов, перейдите в раздел “Status” → “Extensions” и проверьте, что все экстеншены успешно зарегистрированы. Теперь у вас есть 4 внутренних номера, каждый из которых готов принимать звонки от соответствующего транка.


Маршрутизация входящих звонков по транкам

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

Настройка входящей маршрутизации

  1. В веб-интерфейсе FreePBX перейдите в раздел “Connectivity” → “Inbound Routes”
  2. Нажмите “Add Inbound Route”
  3. Заполните поля для первого маршрута:
  • Description: Описание маршрута, например “GSM-Trunk-1 to Extension 100”
  • Trunk: Выберите первый транк (“GSM-Trunk-1”)
  • ** DID Number**: Если у вас есть DID номер для этого транка, введите его. Если нет, оставьте пустым
  • Route to: Выберите “Extension” и введите номер первого экстеншена (100)
  1. Сохраните настройки

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

Альтернативный метод: использование контекстов

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

  1. Подключитесь к командной строке Asterisk
  2. Откройте файл /etc/asterisk/extensions_custom.conf
  3. Добавьте следующие строки для каждого транка:
[from-trunk-custom]
exten => s,1,NoOp(Incoming call from trunk ${TRUNKNAME})
exten => s,n,GotoIf(${TRUNKNAME}=GSM-Trunk-1?ext-100)
exten => s,n,GotoIf(${TRUNKNAME}=GSM-Trunk-2?ext-101)
exten => s,n,GotoIf(${TRUNKNAME}=GSM-Trunk-3?ext-102)
exten => s,n,GotoIf(${TRUNKNAME}GSM-Trunk-4?ext-103)
exten => s,n,Goto(ext-100)

exten => ext-100,1,Dial(SIP/100)
exten => ext-101,1,Dial(SIP/101)
exten => ext-102,1,Dial(SIP/102)
exten => ext-103,1,Dial(SIP/103)
  1. Перезагрузите конфигурацию Asterisk командой dialplan reload

Проверка маршрутизации

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

  1. Перезагрузите конфигурацию FreePBX через веб-интерфейс: “Tools” → “Apply Config”
  2. Проверьте логи Asterisk на предмет ошибок: “Reports” → “Asterisk Logfiles”
  3. Попробуйте направить тестовый вызов на каждый транк и убедитесь, что он приходит на правильный экстеншен
  4. Если вызовы все еще приходят на экстеншен ‘S’, проверьте настройки контекста и убедитесь, что нет глобальных правил, которые переопределяют вашу конфигурацию

Решение проблем с маршрутизацией

Если после настройки входящей маршрутизации звонки все еще приходят на один экстеншен ‘S’, необходимо провести диагностику и устранить возможные проблемы. Вот наиболее распространенные причины и способы их решения:

Проблема: Все вызовы идут в экстеншен ‘S’

Это происходит, когда система не может определить, какой именно транк отправил вызов, и использует стандартный экстеншен ‘S’. Возможные причины и решения:

  1. Неправильная настройка контекста транка:
  • Проверьте поле “Context” в настройках транка. Должно быть “from-trunk”
  • Если контекст указан неправильно, измените его и перезагрузите конфигурацию
  1. Отсутствие уникальной идентификации транка:
  • Убедитесь, что для каждого транка указано уникальное имя в поле “Trunk Name”
  • Проверьте параметры PEER Details, особенно поле “host”
  1. Глобальные правила маршрутизации:
  • Проверьте раздел “Inbound Routes” на наличие глобальных правил, которые могут переопределять вашу конфигурацию
  • Убедитесь, что у каждого маршрута есть уникальное описание и привязка к конкретному транку

Проблема: Транки не регистрируются

Если транки не регистрируются в системе, вызовы не могут быть правильно маршрутизированы:

  1. Неправильные сетевые параметры:
  • Проверьте IP-адрес GSM-шлюза в поле “host”
  • Убедитесь, что порты (обычно 5060) открыты на файрволе
  1. Неправильные учетные данные:
  • Проверьте поля “username” и “secret” в настройках PEER Details
  • Убедитесь, что пароль корректен и содержит специальные символы
  1. Конфликт с другими настройками:
  • Проверьте, нет ли конфликтов с другими настройками SIP
  • Убедитесь, что контекст не используется другими компонентами системы

Проблема: Экстеншены не принимают звонки

Если экстеншены зарегистрированы, но не принимают звонки:

  1. Неправильная настройка экстеншенов:
  • Проверьте, что экстеншены созданы правильно и имеют уникальные номера
  • Убедитесь, что пароль в поле “Secret” корректен
  1. Проблемы с контекстом:
  • Проверьте, что контекст экстеншена совпадает с контекстом транка
  • Убедитесь, что нет конфликтов между контекстами
  1. Проблемы с маршрутизацией:
  • Проверьте настройки входящей маршрутизации
  • Убедитесь, что каждый транк привязан к правильному экстеншену

Диагностические команды

Для диагностики проблем с маршрутизацией можно использовать следующие команды Asterisk:

  1. Просмотр текущих вызовов:
asterisk -vvvr
> core show channels
  1. Просмотр конфигурации транков:
> sip show peers
  1. Просмотр конфигурации экстеншенов:
> dialplan show
  1. Просмотр логов:
> core set verbose 5
> sip set debug on

Используйте эти команды для поиска проблем в реальном времени во время тестовых звонков.


Оптимизация и дополнительные настройки

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

Настройка очередей звонков

Если вы ожидаете высокий объем звонков на определенные экстеншены, настройте очереди:

  1. Перейдите в раздел “Applications” → “Queues”
  2. Создайте новую очередь для каждого экстеншена или группы экстеншенов
  3. Настройте параметры очереди: максимальное количество звонков, время ожидания, стратегию распределения
  4. Привяжите экстеншены к очереди

Настройка группы вызовов

Для распределения звонков между несколькими сотрудниками:

  1. Перейдите в раздел “Applications” → “Ring Groups”
  2. Создайте новую группу вызовов
  3. Добавьте в группу экстеншены, которые должны совместно отвечать на звонки
  4. Настройте стратегию распределения: последовательная, одновременная, круговая и т.д.

Настройка музыкальных файлов на удержании

Улучшите пользовательский опыт, добавив музыку на удержании:

  1. Перейдите в раздел “Applications” → “Music on Hold”
  2. Загрузите музыкальные файлы или используйте предустановленные
  3. Настройте параметры воспроизведения: цикличность, громкость
  4. Привяжите музыку к очередям и группам вызовов

Настройка голосовой почты

Настройте голосовую почту для каждого экстеншена:

  1. Перейдите в раздел “Applications” → “Voicemail”
  2. Настройте параметры голосовой почты: приветствие, пароль, опции
  3. Настройте уведомления о новых сообщениях (email, SMS)

Мониторинг и статистика

Для отслеживания эффективности работы системы:

  1. Настройте систему логирования: “Reports” → “Asterisk Logfiles”
  2. Настройте статистику вызовов: “Reports” → “Call Detail Records”
  3. Используйте графики и отчеты для анализа производительности

Резервирование и отказоустойчивость

Для повышения надежности системы:

  1. Настройте резервирование транков: если один транк недоступен, вызовы перенаправляются на другой
  2. Настройте распределение нагрузки между транками
  3. Настройте мониторинг состояния транков и экстеншенов

Источники

  1. VoIP-Info Wiki — Справочник по FreePBX и настройке IP-телефонии: https://www.voip-info.org/wiki/view/FreePBX
  2. FreePBX Community Forums — Обсуждение проблем маршрутизации входящих звонков: https://community.freepbx.org
  3. Asterisk Documentation — Официальная документация по настройке контекстов и маршрутизации: https://wiki.asterisk.org/wiki/display/AST/Asterisk+Documentation
  4. FreePBX Official Documentation — Руководство по настройке транков и экстеншенов: https://docs.freepbx.org
  5. VoIP-Info SIP Trunking Guide — Подробное руководство по настройке SIP-транков: https://www.voip-info.org/wiki/view/SIP+Trunking

Заключение

Правильная настройка маршрутизации входящих звонков из разных транков в разные экстеншены в FreePBX решает проблему, когда все вызовы приходят на один стандартный экстеншен ‘S’. Ключевые шаги включают настройку каждого SIP-транка с уникальными параметрами, создание соответствующих экстеншенов и настройку правил входящей маршрутизации для каждой пары транк-экстеншен.

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

VoIP Info / Разработчик контента

FreePBX — это веб-приложение, которое значительно упрощает настройку Asterisk через интуитивно понятный веб-интерфейс. Вместо того чтобы вручную редактировать конфигурационные файлы и писать дайлпланы, FreePBX предоставляет предварительно запрограммированные функции, доступные через дружелюбный веб-интерфейс. Это позволяет получить полностью функциональную АТС практически сразу без необходимости программирования. Система поддерживает неограниченное количество голосовых почтовых ящиков, функции “Follow Me”, группы звонков с подтверждением, конференции, paging, intercom, музыку на удержании и очереди звонков. FreePBX работает на стеке LAMPA (Linux, Apache, MySQL, PHP и Asterisk) и является модульной системой с возможностью установки плагинов из онлайн-репозитория модулей.

L

Для правильной маршрутизации входящих звонков из разных SIP-транков в разные экстеншены в FreePBX необходимо выполнить несколько ключевых шагов. Во-первых, убедитесь, что каждый SIP-транк правильно настроен с уникальным идентификатором. Во-вторых, создайте отдельный экстеншен для каждого транка. В-третьих, настройте входящую маршрутизацию, сопоставляя каждый транк с соответствующим экстеншеном через настройки маршрутизации входящих вызовов в интерфейсе FreePBX. Также важно проверить настройки контекста (context) и убедиться, что транки используют правильные параметры аутентификации. Если звонки все еще приходят на один экстеншен ‘S’, проверьте настройки маршрутизации и убедитесь, что нет глобальных правил, которые переопределяют вашу конфигурацию.

Авторы
VoIP Info / Разработчик контента
Разработчик контента
L
Вице-президент по поддержке
B
Специалист по Asterisk
@blazestudios / Разработчик VoIP
Разработчик VoIP
C
Разработчик
david55 / Специалист по сетям
Специалист по сетям
P
Инженер VoIP
thepossum / Системный администратор
Системный администратор
A
Активный участник сообщества
@bogazki / Активный участник сообщества
Активный участник сообщества
P
Активный участник сообщества
@peo / Пользователь FreePBX
Пользователь FreePBX
@stewart1 / Активный участник сообщества
Активный участник сообщества
Источники
VoIP-Info / Справочник по VoIP
Справочник по VoIP
FreePBX Community Forums / Форум сообщества FreePBX
Форум сообщества FreePBX
Проверено модерацией
НейроОтветы
Модерация