..
Всем привет. В этой публикации будем настраивать переадресацию вызовов. Это очень полезная и широко используемая функция, которая позволяет перенаправлять входящие вызовы как на другой внутренний номер так и на внешние номера, например, на мобильные.
Asterisk PBX это современная безплатная программная телефонная станция с открытым исходным кодом малой и средней ёмкости, ориентированная на использование в офисе и в абонентском доступе на периферии. "Asterisk - будущее телефонии". Asterisk PBX устанавливается как служба в Linux в т.ч. Linux Ubuntu и при наличии соответствующего оборудования позволяет организовывать связь как внутри учреждения так и входящую-исходящую связь с "внешним миром", как посредством традиционных двухпроводных абонентских линий и цифровых ISDN линий так и через IP сеть т.е. через интернет.
Большинство настроек подходят под все версии Asterisk PBX. Например, публикуемые здесь настройки и конфигурации подходят как к Asterisk PBX версий 1.6/1.8 так и для всех версий вплоть до 18й, которую я использую, скорее всего подойдёт и для 20й.
В Asterisk PBX их есть два вида переадресации, слепая и назначенная. Первая проще. Для того чтобы выполнить слепую переадресацию набираем комбинацию клавиш для её активации и номер назначения переадресации, после этого тот кто переадресовал вызов разъединиться, а вызов с противоположной стороны будет завёрнут на переадресованный номер.
Назначенная переадресация сложнее, вначале тот кто переадресовывает вызов соединяется с номером куда будет переадресован его собеседник и говорит что-то вроде "сейчас я тебя соединю с тем то и тем то и т.п.". Эту переадресацию сейчас рассматривать не будем.
..
НАСТРОЙКА ДИАЛПЛАНА
..
Для того чтобы добавить возможно переадресаций нужно в приложениях вызова "Dial" добавить две опции "t" и "T", это включает эту возможность.
Итак, для переадресации во внутренней связи, как это было изложено в публикации Linux Ubuntu. Установка Asterisk PBX, в локальном (внутреннем) контексте в приложение "Dial" добавляем эти опции следующим образом:
[loc]
exten => _1XX,1,Dial(SIP/${EXTEN},60,tTL(3600000))
exten => _1XX,n,PlayTones(busy)
exten => _1XX,n,Wait(60)
exten => _1XX,n,Hangup()
Для того чтобы после переадресации на слух было понятно что вызов переадресован после приложения "Dial" я добавил приложения "PlayTones" и "Wait", - так будет воспроизводится сигнал занято. Также, нужно незабыть в файле "indications.conf" указать "country=ru", чтобы слушать российский сигнал занято, а не американский, они отличаются, если не ошибаюсь.
Переадресовывать вызовы можно на любой физический или виртуальный номер. Например, в этой публикации Asterisk PBX. Настройка голосового меню я добавил внутренний номер "777" в контекст "loc" для теста подключения IP телефонов или софтфонов по SIP'у к Asterisk PBX. Если позвонить на этот номер, то будет воспроизводится музыка. Получилось так.
[loc]
exten => _1XX,1,Dial(SIP/${EXTEN},60,tTL(3600000))
exten => _1XX,n,PlayTones(busy)
exten => _1XX,n,Wait(60)
exten => _1XX,n,Hangup()
;
exten => 777,1,Answer()
exten => 777,n,Playback(/var/lib/asterisk/sounds/en/mmq_nfg)
exten => 777,n,Hangup()
Кстати, можно переадресовывать нежелательных абонентов на этот внутренний номер "затычку" чтобы они слушали музыку до безконечности и чтобы думали что их соединяют.
Для добавления возможности переадресации для исходящих вызовов в настройках исходящих вызовов на 8ку, как указано в публикации Asterisk PBX. Поиск исходящего канала, непосредственно в приложении "Dial" добавляем эти опции "t" и "T", должно получиться так (полный конфиг см. в указанной публикации).
..
exten => _8XXXXXXXXXX,n,Dial(SIP/T1/${EXTEN},60,tTL(1800000))
..
..
НАСТРОЙКА ОПЦИЙ
..
Настройки переадресаций, парковок вызовов и аналогичных опций находятся в файле "/etc/asterisk/features.conf". Находим в нём раздел "[featuremap]" и указываем следующее
[featuremap]
blindxfer => *
disconnect => #0
automon => #1
atxfer => #2
parkcall => #3
automixmon => #4
Получится как на скриншоте ниже.
Здесь я указал комбинации кнопок для активации той или иной опции с клавиатуры телефона. Поскольку переадресация используется чаще всего, то я указал чтобы она активировалась одной кнопкой звёздочки "*". Все остальные опции будут выполняться через кнопку решётки "#" плюс одна из цифр.
Также хотел упомянуть один важный параметр, на который стоит обратить внимание, это "transferdigittimeout". Это таймаут, число секунд. По этому таймауту ненабора очередной цифры номера переадресации она будет выполнена автоматически, больше никакие кнопки нажимать не надо. По умолчанию 3 секунды. Т.е. если в течение 3х секунд нет новой цифры, то выполняется переадресация на то что набрано, поэтому номер переадресации нужно набирать быстро. Для удобства можно увеличить этот таймаут до 4-6 секунд. Этот параметр находится в разделе "[general]" в самом верху вышеуказанного файла конфигурации.
..
НАСТРОЙКА SIP
..
Также нужно сделать некоторые корректировки в файл "/etc/asterisk/sip.conf". В разделы с конфигурациями SIP пользователей, которые были указаны в публикации Linux Ubuntu. Установка Asterisk PBX в разделе минимальная настройка, добавляем следующее
dtmfmode=inband
allowtransfer=yes
Должно получиться так.
[101]
type=friend
host=dynamic
secret=<пароль пользователя>
callerid="101" <101>
dtmfmode=inband
qualify=yes
qualifyfreq=60
allowtransfer=yes
context=loc
disallow=all
allow=all
Это приведена конфигурация для пользователя с именем "101" и соответственно для внутреннего номера "101". Для других пользователей и внутренних номеров делаем то же самое, только меняем везде "101" на "102", "103" и т.д.
Также, в настройках IP телефонов и софтфонов проверяем чтобы режим передачи DTMF был "inband", внутри голосового канала или что то вроде этого.
..
ПЕРЕАДРЕСАЦИЯ
..
Итак, всё настроили и подправили. Переадресовываем. После того как вызов был отвечен и включен голосовой канал между обоими сторонами выполнить переадресацию может любая из сторон, вызывающий или вызываемый абонент, разницы нет никакой абсолютно.
Я буду использовать два софтфона с номерами "101" и "102". Звоним с первого на второй и отвечаем на вызов.
На кейпаде набираем комбинацию кнопок для активации переадресации, в моём случаем это одна кнопка "*", и номер переадресации, любой, как внутренний так и внешний. По таймауту ненабора очередной цифры в 3 секунды (это по умолчанию) переадресация будет выполнена автоматически, больше никакие кнопки нажимать не надо. Т.е. если в течение 3х секунд нет новой цифры, то выполняется переадресация на то что набрано, поэтому номер переадресации нужно набирать быстро.
В консоли Asterisk PBX мы видим что после набора звёздочки была воспроизведена на английском фраза "transfer" и после набора номера переадресации "777" вызов был направлен на него.
На данном внутреннем номере у меня воспроизводится музыка в канал. Но это может быть какой-нибудь внутренний или виртуальный номер, голосовое меню, например.
Такая вот переадресация реализована в Asterisk PBX, программно, если разобраться ничего сложного. Необязательно брать дорогой IP телефон, настраивать аналоговый шлюз или делать что то ещё. Можно взять недорогое оборудование, а необходимые опции, такие как переадресация настроить программно, а если ещё грамотно всё это сделать, то с такой конфигурацией Asterisk PBX обойдёт любой навороченный секретарский IP телефон или видеотелефон.