Asterisk — полезные фичи
Возможности сервера IP-PBX / Asterisk не ограничиваются лишь обслуживанием звонков клиентов, в зависимости от характера деятельности организации, в которой будет использоваться Asterisk, могут понадобиться и некоторые другие его возможности. С некоторыми и будем сегодня разбираться.
- Парковка вызова
Парковка вызова (Call parking) это одно из несомненных удобств предоставляемых Asterisk. Работает это так. Ты поднимаешь трубку и в процессе разговора понимаешь, что разбираться с проблемой должен другой сотрудник, либо для выяснения всех обстоятельств необходимо перейти на другое рабочее место. Вместо того, чтобы просить абонента перезвонить по другому телефону, ты просто набирая комбинацию клавиш помещаешь вызов во временный слот, а перейдя на новое место, набрав номер этого слота продолжаешь разговор. Параметры парковки и комбинация для передачи вызова определяются в файле features.conf. После установки сервера в нем активированы следующие параметры:
$ sudo mcedit /etc/asterisk/features.conf [general] parkext => 700 ; экстешн для парковки parkpos => 701-720 ; слоты для парковки context => parkedcalls ; контекст для парковки parkingtime => 45 ; время парковки (в секундах), после которого будет произведен вызов по первому номеру transferdigittimeout => 3 ; время набора цифры при передаче вызова ; оповещения courtesytone = beep xfersound = beep xferfailsound = beeperr adsipark = yes ; отсылка информации на экраны ADSI телефонов [featuremap] blindxfer => # ; комбинация активации передачи звонка (# — по умолчанию) disconnect => * ; разъединение (* — по умолчанию)
- И в диалплане тех пользователей, которым разрешена парковка, подключаем экстешн parkedcalls:
include => parkedcalls
Теперь если во время разговора нажать клавишу #, а затем номер указанный в parkext то есть в наем примере 700, ты услышишь номер слота, к которому будет подключен абонент. Только набирать нужно быстро, иначе получишь сообщение о неудачной операции. Набрав на другом телефоне полученный номер слота, ты сможешь продолжить разговор. Теперь несколько другая ситуация, также не редкая в любом офисе. Сотрудник находящийся рядом, по не которым причинам не может ответить на телефонный звонок, можно подойти к звонящему телефону, а можно просто набрать определенную комбинацию плюс номер звонящего телефона и перехватить вызов (Call Pickup). Это можно реализовать несколькими способами. Самый простой добавить в описание каждого аккаунта параметры callgroup и pickupgroup, в этом случае нажатием “*8”можно перехватить звонок на любой номер в пределах группы. Комбинация цифр для перехвата определена в переменной “pickupexten” в файле features.conf. В остальных случаях следует использовать функцию Pickup:
Pickup(extension[@context][&extension2@context…]). [xxxxxx] exten => *8,1,Pickup(1111@xxxxxx) exten => 1111,1,Dial(1111,60,rtT)
Следует помнить, что перехват вызова работает только в пределах технологии SIP, IAX, Zapata и так далее. То есть, например SIP телефон – SIP телефон, работать будет, а перехватить входящий звонок с обычной телефонной линии с помощью SIP телефона не получится.
- Конференции
Не менее полезной функцией Asterisk является возможность создания виртуальных комнат для конференций, в которых могут одновременно общаться все абоненты имеющие доступ. Комнаты конференции описываются в файле meetme.conf. Причем обнаруживая вызов meetme() сервер перечитывает этот файл, поэтому при внесении в него изменений сервер перезапускать не нужно.
$ sudo mcedit /etc/asterisk/meetme.conf [rooms] ; описание конференции в виде ; conf => conf№[,pin][,adminpin] conf => 1234 conf => 2345,9938,0123
Как видите здесь все просто. Например в комнату 1234, может зайти каждый абонент в чей контекст она включена при помощи конструкции “MeetMe(confno, [options])”. Для доступа к 2345 потребуется ввести PIN 9938, пин администратора 0123. Теперь в нужный контекст добавляем строку:
exten => 500,1,MeetMe(2345|p)
Необязательный параметр “p” позволяет абоненту отключаться от конференции нажатием “#”. Описание остальных параметров найдешь, например по адресу www.asteriskguru.com/tutorials/meetme_conf.html.
- Работа с голосовой почтой
В первой статье я применил в одном из экстешн команду VoiceMail, но работу с головой почтой мы не настраивали. Естественно, что такой полезной возможностью пренебрегать не следует. Настройки голосовых ящиков производятся в файле voicemail.conf, параметров в нем много, большинство из них касается настройки почтового уведомления сообщающего пользователю о наличии нового сообщения.
$ sudo mcedit /etc/asterisk/voicemail.conf [general] ; формат файла для записи сообщения format=wav49|gsm|wav ; адрес для поля From e-mail serveremail=Asterisk ; разрешение прикреплять voicemail к письму attach=yes ; команда для отправки e-mail mailcmd=/usr/sbin/sendmail –t ; mailcmd=/usr/exim/bin/exim -t ; timezone tz=moscow ; и далее описываем контекст(ы) для голосовых ящиков ; некоторые параметры секции general здесь можно переопределить ; как для всей секции, так и индивидуально [default] 1234 => 4242,Test Mailbox,grinder@localhost 4444 => 0855,Master,master@localhost,grinder@ua.fm,attach=yes|serveremail=asterisk@grinder.com|tz=kiev [office] 101=>2345,VoiceMail,,, 102=>2345,Vasja Pupkin,vasja@localhost
Пример, думаю, ясен, без лишних комментариев. Определено два контекста для голосовой почты: default и office. Первым идет почтовый ящик 1234, с паролем для доступа 4242, имя пользователя “Test Mailbox” и почтовым адресом grinder@localhost. В ящике 4444 показано как можно переопределить глобальные настройки для конкретной записи. В ящике 101 не указан почтовый адрес, это означает, что e-mail о наличии нового сообщения отправляться не будет. Не забываем в записи абонента использовать параметр “mailbox=102@office” и в extensions.conf в соответствующие диалпланы добавляем:
$ sudo mcedit /etc/asterisk/extensions.conf include => voicemail … [office] ; записываем голосовое сообщение, если пользователь не снимает трубку exten => 1234,1,Dial(SIP/1234,20) exten => 1234,2,Voicemail(1234@default) … ; циркулярный голосовой ящик для 101 и 102 exten => 100,1,VoiceMail(u101&102) ; проверка наличия сообщений в 101 ; флаг s означает, что пароль при проверке сообщений вводить не нужно exten => 111,1,VoiceMailMain(s101@office) ; если несколько почтовых ящиков в диапазоне 100-199 можно разрешить ; оставлять в них сообщения напрямую, после набора * и номера расширения ; флаг u – Unavailable сообщение exten => _*1XX,1,VoiceMail(u${EXTEN:1}) exten => _*1XX,2,Hangup
Кстати по адресу лежит таблица перевода сообщений голосового ящика для Asterisk 1.4.*.
ИСТОЧНИКИ: