Previous Entry Share Next Entry
Asterisk Trixbox автодозвон до абонента если он занят.
albertxyc

Всем знакома ситуация: пытаешься дозвониться до сотрудника а у него все занято и занято... и сидеть набирать его снова и снова не хочется... Для этих целей напишем скрипт. Представим что наш номер 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/




  • 1
Немного переделал под себя и сделал автодозвон на сотовые и городские телефоны:

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

echo "Action: originate" >> /etc/asterisk/scripts/$FILENAME
echo "Channel: Local/$DIALNUM@dozvon" > /etc/asterisk/scripts/$FILENAME
echo "MaxRetries: 30" >> /etc/asterisk/scripts/$FILENAME
echo "WaitTime: 20" >> /etc/asterisk/scripts/$FILENAME
echo "RetryTime: 10" >> /etc/asterisk/scripts/$FILENAME
echo "CallerID: $CALLERINFO" >> /etc/asterisk/scripts/$FILENAME
echo "Extension: $CALLERNUM" >> /etc/asterisk/scripts/$FILENAME
echo "Set: REALCALLERIDNUM=$DIALNUM" >> /etc/asterisk/scripts/$FILENAME
echo "Priority: 1" >> /etc/asterisk/scripts/$FILENAME

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


extenstions.conf

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

[dozvon]
exten => _X.,1,Dial(SIP/${EXTEN}&SIP/sipnet/${EXTEN}&dahdi/g1/${EXTEN}&dahdi/g1/8${EXTEN:1})

Рад что пригодилось)

  • 1
?

Войти

Нет аккаунта? Зарегистрироваться

LJ Magazine

Recommend this entry Has been recommended Surprise me