Asterisk Trixbox автодозвон до абонента если он занят.

Aug 02, 2013 15:56


Всем знакома ситуация: пытаешься дозвониться до сотрудника а у него все занято и занято... и сидеть набирать его снова и снова не хочется... Для этих целей напишем скрипт. Представим что наш номер 114, а номер нужного нам сотрудника 101.
Скрипт работает по следующему принципу:
с номера 114 набираем комбинацию 99101 слышим в ответ asterisk "Activated" кладем трубку и ждем.
В этот момент астериск пытается с интервалом в 10 секунд дозвониться до абонента 101 в течение 15 минут, все время можно настроить под свои нужды. Как только абонент 101 освободился тут же происходит набор двух абонентов 101 и 114.

По данной статье создаем новый custom extension http://albertxyc.livejournal.com/10517.html

[custom-autocall]
exten => _99X.,1,Answer()
exten => _99X.,n,System(/home/asterisk/autodial.sh ${CALLERID(num)} ${EXTEN:2})
exten => _99X.,n,Playback(activated)
exten => _99X.,n,Hangup()

Объяснение некоторых элементов

_99X.

- номер начинающийся с префикса 99 и имеющий любое количество цифр в номере

System(/home/asterisk/autodial.sh ${CALLERID(num)} ${EXTEN:2})

- вызов скрипта с двумя параметрами

${CALLERID(num)}

- номер вызывающего

${EXTEN:2}

- набранный номер без первых двух цифр (без 99) то есть набрав номер 99101 в скрипт передается 101.

Ну и сам скрипт  /home/asterisk/autodial.sh

#!/bin/sh
CALLERNUM=$1
DIALNUM=$2
FILENAME=$CALLERNUM.call
CALLERINFO="Call to $CALLERNUM <$CALLERNUM>";

echo "Action: originate" >> /home/asterisk/$FILENAME
echo "Channel: SIP/$DIALNUM" > /home/asterisk/$FILENAME
echo "MaxRetries: 90" >> /home/asterisk/$FILENAME
echo "WaitTime: 8" >> /home/asterisk/$FILENAME
echo "RetryTime: 10" >> /home/asterisk/$FILENAME
echo "CallerID: $CALLERINFO" >> /home/asterisk/$FILENAME
echo "Extension: $CALLERNUM" >> /home/asterisk/$FILENAME
echo "Set: REALCALLERIDNUM=$DIALNUM" >> /home/asterisk/$FILENAME
echo "Async: yes" >> /home/asterisk/$FILENAME
echo "Priority: 1" >> /home/asterisk/$FILENAME

chown asterisk:asterisk /home/asterisk/$FILENAME
mv /home/asterisk/$FILENAME /var/spool/asterisk/outgoing/

Previous post Next post
Up