Доброго времени всем!
задача вроде бы простая, но мозг уже сломал :( необходимо что бы клиент дозвонившись по номеру мог выбрать в меню обратный звонок и повесить трубку, после чего у оператора начинается вызов а затем уже идет соединение с заказавшим звонок клиентом. обычная реализация callback не подходит, ибо asterisk соединяет сначала с заказавшим звонок а уже потом с оператором
поменяйте местами "ноги" обратного отзвона и все будет работать как вам надо.
Возможное решение (если я правильно понял - то что вам нужно):
в 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
Не проверял - могут быть мелкие ошибки...
Задан: 2013-07-12 15:17:26 +0400
Просмотрен: 553 раз
Обновлен: Jul 13 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
что значит поменять "ноги" ? как и где их поменять ? в какую сторону копать то ?
anatoly ( 2013-07-12 16:23:15 +0400 )редактироватьну он сначала звонит в channel потом в application. вам надо сделать чтоб channel было на оператора. например channel: Local/111@internal
meral ( 2013-07-13 03:51:49 +0400 )редактировать