Настройка модуля ChanSpy Asterisk
- 27 апреля 2016
Команда ChanSpy позволяет подслушивать разговор или подсказывать сотруднику, который совершает или принимает входящий вызов. Данный функционал будет полезен для работы в Call-центрах. ChanSpy позволяет быстро научить молодого сотрудника правильно вести деловые беседы.
ChanSpy позволяет прослушать любой вызов, по любому каналу Zapata, SIP, IAX.
Общий синтаксис команды:
Chanspy([][,<оptions>]) Chanspy([
][|<оptions>]) - для Asterisk 1.4
В chanprefix подставляется SIP канал или агент, примеры рассмотрим ниже.
Доступные опции(options):
q: тихий режим, не анонсировать на канале свое присутствие звуковым сигналом, и т.д.
b: шпионить за каналами, которые имеют два и более абонента. Работает на каналах bridged
v( [-4..4] ): настройка начального уровня звука. (отрицательное значение делает звук тише)
g(grp): заставляет использовать группу. Читает ${SPYGROUP} и сканирует вызовы только из этой группы
r([basename]): запись сеанса в разговора в каталог аудиозаписей Asterisk. Имя файла указывать необязательно
w: режим шепота, вы слышите обоих участников, вас слышит только один (указывается в параметрах)
W: частный шепот, "шпион" не слышит разговор, но может “прошептать” информацию, тем самым помочь своему сотруднику
d: режим ручного переключения между прослушиванием: 4 — прослушивание, 5 — шепот, 6 — оба канала
o: позволяет прослушивать аудио с канала
Все остальные функции ChanSpy можно изучить после ввода команды "core show application ChanSpy" в CLI Asterisk:
*CLI > core show application ChanSpy
Во время подслушивания, можно выполнить следующие действия:
Набор: # циклически изменяет уровень звукового сигнала.
Набор: * останавливает контроль за одним абонентом и ищет другой подходящий канал для контроля.
Набор последовательности цифр, завершенный нажатием кнопки #, создает имя канала, которое будет добавлено к параметру (например, выполните Chanspy(Agent) и наберите 1234#, в процессе контроля, тогда вы перейдете на канал Agent/1234)
С теорией закончили, теперь перейдем к примерам.
Все настройки делаются в файле /etc/asterisk/extensions.conf - это подходит для "голого" Asterisk.
Если вам необходимо прослушивать конкретного пользователя (например 1001), то в настраиваемый контекст необходимо внести следующую строчку.
exten => 9991001,1,ChanSpy(SIP/1001,wqdv(-1))
Т.е. при наборе номера 9991001 мы подключимся к прослушиванию внутреннего номера 1001, ключи мы рассматривали выше. Набираемый номер 9991001 может быть любым.
Чтобы не положить много строк для прослушивания пользователей, можем создать общую строку, для всех пользователей.
exten => _999.,n,ChanSpy(SIP/${EXTEN:3},wqdv(-1))такой план набора подойдет для трехзначного номерного плана АТС. Если вы используете 4-х или 5-ти значный номера, то строка будет выглядеть следующим образом:
exten => _999.,n,ChanSpy(SIP/${EXTEN:4},wqdv(-1)) - для 4-х значного номерного планаexten => _999.,n,ChanSpy(SIP/${EXTEN:5},wqdv(-1)) - для 5-ти значного номерного плана
Чтобы разрешить пользоваться функцией ChanSpy только c определенных номеров, необходимо прописать следующую строку:
exten => _999./_200X,n,ChanSpy(SIP/${EXTEN:4},wqdv(-1))- в данном примере мы даем возможность пользоваться функционалом ChanSpy для номеров 2000-2009.
Так же мы можем перечислить конкретные номера, которым разрешено пользоваться функцией ChanSpy:
exten => _999./_200[123],n,ChanSpy(SIP/${EXTEN:4},wqdv(-1))- в данном примере мы даем возможность пользоваться функционалом ChanSpy для номеров 2001,2002,2003.
Теперь напишем контекст, который позволяет подключаться к ChanSpy по паролю:
[context-chanspy]
exten => _999.,1,Authenticate(123456789)
exten => _999.,n,Answer
exten => _999.,n,NoCDR
exten => _999.,n,Wait(1)
exten => _999.,n,ChanSpy(SIP/${EXTEN:4},wqdv(-1))
exten => _999.,n,Hangup
Т.е. только после ввода пароля "123456789", будет доступен ChanSpy.
Теперь поговорим о FreePBX и Elastix.
Функция ChanSpy, по умолчанию, доступна при наборе номера 555, изменить номер или отключить ChanSpy можно в меню Feature Codes.
В файле /etc/asterisk/extensions_additional.conf штатный контекст выглядит следующим образом:
[app-chanspy]
include => app-chanspy-custom
exten => 555,1,Set(COS_DEST=chanspy)
exten => 555,n,Set(COS_TYPE=FC)
exten => 555,n,Macro(user-callerid,)
exten => 555,n,Answer
exten => 555,n,Wait(1)
exten => 555,n,ChanSpy()
exten => 555,n,Hangup
;--== end of [app-chanspy] ==--;
Если вы хотите изменить штатный контекст, то необходимо внести изменения в файл /etc/asterisk/extensions_override_freepbx.conf.
Например, для авторизации пользователей по паролю, можно прописать:
[app-chanspy]
exten => 555,1,Macro(user-callerid)
exten => 555,2,Authenticate(123456789)
exten => 555,3,Read(SPYNUM,agent-newlocation)
exten => 555,4,ChanSpy(SIP/${SPYNUM},wqv(-1))
;--== end of [app-chanspy] ==--;
Если вы хотите дополнить контекст ChanSpy, то необходимо внести изменения в файл /etc/asterisk/extensions_custom.conf и создать там контекст app-chanspy-custom.
На разные функции можно назначить разные коды, например:
[app-custom-chanspy]
;простое прослушивание
exten => _556.,1,Macro(user-callerid,)
exten => _556.,n,Answer
exten => _556.,n,NoCDR
exten => _556.,n,Wait(1)
exten => _556.,n,ChanSpy(SIP/${EXTEN:3},qv(-1)
exten => _556.,n,Hangup
;шепот
exten => _557.,1,Macro(user-callerid,)
exten => _557.,n,Answer
exten => _557.,n,NoCDR
exten => _557.,n,Wait(1)
exten => _557.,n,ChanSpy(SIP/${EXTEN:3},wqv(-1)
exten => _557.,n,Hangup
;оба канала
exten => _558.,1,Macro(user-callerid,)
exten => _558.,n,Answer
exten => _558.,n,NoCDR
exten => _558.,n,Wait(1)
exten => _558.,n,ChanSpy(SIP/${EXTEN:3},qBv(-1)
exten => _558.,n,Hangup
;ручной выбор режимов
exten => _559.,1,Macro(user-callerid,)
exten => _559.,n,Answer
exten => _559.,n,NoCDR
exten => _559.,n,Wait(1)
exten => _559.,n,ChanSpy(SIP/${EXTEN:3},qdv(-1)
exten => _559.,n,Hangup
На этом все. Если будут проблемы, то звоните к нам в офис, мы поможем.