Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

ответил 2013-07-13 00:08:38 +0400

octopas Gravatar octopas

Возможное решение (если я правильно понял - то что вам нужно):

в 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

Не проверял - могут быть мелкие ошибки...

Возможное решение (если я правильно понял - то что вам нужно):

в 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

Не проверял - могут быть мелкие ошибки...

Возможное решение (если я правильно понял - то что вам нужно):

в 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

Не проверял - могут быть мелкие ошибки...

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.