1 | изначальная версия редактировать | |
Возможное решение (если я правильно понял - то что вам нужно):
в extensions.conf:
menu => menu,1, Background(menu-choice-enter-5-for-callback&silence/4)
menu => menu,n, Hangup()
menu => 5,1, Set(result=${SHELL(/bin/sh /usr/local/bin/callback.sh "${CALLERID(num)}" "${UNIQUEID}")})
menu => 5,n, ExecIf(${result}!=0?Playback(tech-error-contact-admin))
menu => 5,n, Wait(1)
menu => 5,n, Hangup()
operatorspool => docall, 1, Verbose(звоним операторам)
operatorspool => docall, n, Wait(2)
operatorspool => docall, n, Queue(tech-queue)
bnumleg => docall, 1, Verbose(звоним абоненту B)
bnumleg => docall, n, Dial(SIP/trunk/${BNUM})
bnumleg => docall, n, Hangup()
в /usr/local/bin/callback.sh
!#/bin/sh
# /usr/local/bin/callback.sh
echo <<EOF
Channel: Local/docall@operatorspool
Context: docall
Extension: bnumleg
Set: BNUM=$1
EOF >/tmp/$1_$2.call
mv /tmp/$1_$2.call /var/spool/asterisk/outgoing
Не проверял - могут быть мелкие ошибки...
2 | No.2 Revision редактировать |
Возможное решение (если я правильно понял - то что вам нужно):
в extensions.conf:
menu => menu,1, Background(menu-choice-enter-5-for-callback&silence/4)
menu => menu,n, Hangup()
menu => 5,1, Set(result=${SHELL(/bin/sh /usr/local/bin/callback.sh "${CALLERID(num)}" "${CALLERID(num)}"
"${UNIQUEID}")})
menu => 5,n, ExecIf(${result}!=0?Playback(tech-error-contact-admin))
menu => 5,n, Wait(1)
menu => 5,n, Hangup()
Hangup()
operatorspool => docall, 1, Verbose(звоним операторам)
operatorspool => docall, n, Wait(2)
operatorspool => docall, n, Queue(tech-queue)
bnumleg => docall, 1, Verbose(звоним абоненту B)
bnumleg => docall, n, Dial(SIP/trunk/${BNUM})
bnumleg => docall, n, Hangup()
в /usr/local/bin/callback.sh
!#/bin/sh
# /usr/local/bin/callback.sh
echo <<EOF
Channel: Local/docall@operatorspool
Context: docall
Extension: bnumleg
Set: BNUM=$1
EOF >/tmp/$1_$2.call
mv /tmp/$1_$2.call /var/spool/asterisk/outgoing
Не проверял - могут быть мелкие ошибки...
3 | No.3 Revision редактировать |
Возможное решение (если я правильно понял - то что вам нужно):
в extensions.conf:
menu => menu,1, Background(menu-choice-enter-5-for-callback&silence/4)
menu => menu,n, Hangup()
menu => 5,1, Set(result=${SHELL(/bin/sh /usr/local/bin/callback.sh "${CALLERID(num)}"
"${CALLERID(num)}"
в /usr/local/bin/callback.sh
!#/bin/sh
# /usr/local/bin/callback.sh
echo <<EOF
Channel: Local/docall@operatorspool
Context: docall
Extension: bnumleg
Set: BNUM=$1
EOF >/tmp/$1_$2.call
mv /tmp/$1_$2.call /var/spool/asterisk/outgoing
Не проверял - могут быть мелкие ошибки...
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.