Asterisk изменение CallerId через agi

Asterisk изменение CallerId через agi, может потребоваться для плавного перехода с аналога на sip. Допустим есть такая схема, как в нашей прошлой статье, Asterisk+Freepbx+Cisco2801. Где пересекаются номера 2 АТС, аналоговой Panasonic kx-tda200 и Asterisk. Напомним, что в данном примере настройки мы связали asterisk(freepbx). Через voip шлюз cisco 2801, с аналоговой АТС panasonic. Так же имеется еще одна АТС на базе Asterisk(freepbx). Требуется реализовать сквозные звонки со всех трех АТС. Как будто по факту мы имеем, всего дону АТС.

Дано:

  1. AТС на базе Asterisk(FreePBX) с пулом номеров 100-299.
  2. AТС на базе Asterisk(FreePBX) с пулом номеров 300-599
  3. Аналоговая АТС Panasonic KX-TDA2 с пулом номеров 100-299.

Сейчас мы расскажем как реализовать данную схему. Сспользуя при этом custom context, а так же php-agi, для связи с базой данных MySQl. В глубокой перспективе есть расчет на то что, будет отказ от аналоговой АТС. Все номера пользователям будут назначены с АТС2 из пула 300-599. Но так как пока это глубокая перспектива, и не известно когда это будет. Сделаем ряд действий, для того чтобы пользователи могли постепенно привыкать к новым номерам.

Начало

Первое что нам необходимо сделать, на начальном этапе, это завести будущие номера на АТС2. После добавления требуемого количества внутренних номеров, добавим им FM/FM(FindMe/FollowMe). Допустим АТС2 имеет внутренний номер 333, предназначенный для пользователя аналоговой АТС. На аналоговой АТС он имеет номер 155. Заходим в web интерфейс, нажимаем приложения, затем внутренние номера. Далее выбираем для редактирования, наш внутренний номер 333, на вкладке Find Me/ Follow Me. Включаем данную опцию. Ниже в поле под названием Follow-Me List вписываем наш аналоговый номер 155#. Решетку ставить обязательно, так мы указываем что номер за пределами asterisk. Звонок будет расценен как во вне. Отправится в нужный транк, по совпадению правил исходящей маршрутизации. В данной схеме абонент с АТС1 наберет номер 333, попадет на АТС2, далее АТС2 отправит звонок в транк, через который подключен наш voip шлюз. Все прекрасно будет работать. Но если абонент с аналоговой атс позвонит на какую либо из АТС то у него будет callerid, присвоенный аналоговой АТС. Но как мы помним, мы хотим облегчить отказ от аналоговой связи с сторону voip.

Создание скрипта php-agi

Создаем файл php, в директории /var/lib/asterisk/agi-bin, допустим с названием ex-callerid.php. Помещаем в него следующий код:

Ранее, на вкладке Find Me/Follow Me мы указывали номер. Данный скрипт получает callerid звонка. Сверяет его с таблицей в базе данных. Находит там значение равное callerid, заменяет callerid при нахождении соответствия.

Custom context

Следующий шаг, создание custom context, для включения нашего скрипта в dialplan. Откроем файл с настройкой custom context. Для FreePBX он будет под названием extensions_custom.conf. Расположен данный файл по следующему пути /etc/asterisk/.

Добавим в него контекст под название from-pstn-panasonic.

Затем зайдем в настройки транка и поменяем входящий контекст на только что созданный. Далее применяем настройки, проверяем что все работает. Для совершения звонков с аналоговой АТС на АТС1 , в исходящей маршрутизации был добавлен префикс.

На этом мы заканчиваем данную статью.

Вам также может понравиться

About the Author: Администратор

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *