В данной небольшой заметке рассмотрим, как подключить к IP-PBX Elastix набор эхо-тестов, о котором я писал ранее применительно к IP-PBX Asterisk в чистом виде: http://uzlec.ru/echo-test-dlya-asterisk.html
Создаем файл "/etc/asterisk/ext_echo.conf" с внутренними extension’ами:
[echo-mask-dial]
exten => _8XX,1,Macro(record-enable,${CALLERID(number)},OUT)
exten => _8XX,n,Dial(Local/${EXTEN}@echo-peers,60,${DIAL_OPTIONS})
exten => _8XX,n,Hangup[echo-peers]
exten => 801,1,Playback(demo-echotest)
exten => 801,2,Echo
exten => 801,3,Playback(demo-echodone)exten => 802,1,Ringing()
exten => 802,n,Wait(3)
exten => 802,n,Answer()
exten => 802,n,Playback(dir-multi3)
exten => 802,n,Wait(1)
exten => 802,n,agi(googletts.agi,${CALLERID(num)},ru)
exten => 802,n,Wait(1)
exten => 802,n,agi(googletts.agi,"Канал.",ru)
exten => 802,n,Wait(1)
exten => 802,n,agi(googletts.agi,${CHANNEL},en)
exten => 802,n,Wait(1)
exten => 802,n,Set(encryption="Этот канал зашифрован.")
exten => 802,n,GotoIF($["${CHANNEL(secure_signaling)}" != "1"]?insecure)
exten => 802,n,GotoIF($["${CHANNEL(secure_media)}" != "1"]?insecure)
exten => 802,n(playencryption),agi(googletts.agi,${encryption},ru)
exten => 802,n,Wait(1)
exten => 802,n,agi(googletts.agi,"Вы переключаетесь в режим эхо-теста. Произнесите контрольную фразу и нажмите любую цифровую клавишу.",ru)
exten => 802,n,Record(/tmp/802-${UNIQUEID}.wav,0,30,y)
exten => 802,n,agi(googletts.agi,"Прослушайте свою контрольную фразу.",ru)
exten => 802,n,Playback(/tmp/802-${UNIQUEID})
exten => 802,n,System(rm /tmp/802-${UNIQUEID}.wav)
exten => 802,n,Wait(1)
exten => 802,n,Playback(demo-echodone)
exten => 802,n,Hangup()
exten => 802,n(insecure),Set(encryption="Этот канал незашифрован.")
exten => 802,n,Goto(playencryption)exten => 803,1,Answer
exten => 803,n,MusicOnHold()
exten => 803,n,Hangup()exten => 804,1,agi(googletts.agi,"Ждите звонка.",ru)
exten => 804,n,System(/etc/asterisk/scripts/echo-callback.sh ${CALLERID(num)} &)
exten => 804,n,Hangup()[echo-test]
include => echo-mask-dial
Скрипт "/etc/asterisk/scripts/echo-callback.sh" обратного звонка абоненту для эхо-теста 804:
#!/bin/sh
NUMBER=$1sleep 10
echo "Channel: Local/${NUMBER}@from-internal
CallerID: Echo test <802>
MaxRetries: 1
RetryTime: 10
WaitTime: 30
Account: 802
Context: echo-test
Extension: 802
Priority: 1
AlwaysDelete: Yes" >/var/spool/asterisk/tmp/${NUMBER}mv /var/spool/asterisk/tmp/${NUMBER} /var/spool/asterisk/outgoing/${NUMBER}
exit 0
Включим сервисные extension’ы в план нумерации Elastix в файле "/etc/asterisk/extensions_custom.conf":
#include ext_echo.conf
[from-internal-custom]
include => echo-test
Теперь внутренние абоненты могут проверить качество связи с помощью предложенного набора эхо-тестов.
0 Комментарии。