Здравствуйте. Передо мной стоит задача, реализовать callback следующего вида. При входящем звонке, астериск должен обрывать соединение и перезванивать. Определение номера идет в диалплане следующим образом.
[tr389xxxx]
exten => 389xxxx,1,Answer()
same => n,GotoIf($["${CALLERID(num)}" = "98263xxxx"]?callback)
same => n,Goto(normal)
same => n(callback),System(/etc/asterisk/scripts/callback 8${CALLERID(num)} &)
same => n,Hangup()
same => n(normal),WaitExten(10)
same => n,Hangup()
вот так выглядит контекст local
[local]
exten => _89X.,1,Dial(SIP/389****/${EXTEN},30)
same => n,Hangup()
exten => 8888,1,Answer()
same => n,Dial(SIP/8888,30)
same => n,Hangup()
трубка сбрасывается, номер сотового определяется, дальше должен сработать скрипт, который вызовет .call файл
#!/bin/sh
sleep 5
NUMBER=$1
echo "Channel: Local/$NUMBER@local
MaxRetries: 1
RetryTime: 10
WaitTime: 20
Context: local
Extension: 8888
Priority: 1
AlwaysDelete: Yes" >/var/spool/asterisk/tmp/$NUMBER
mv /var/spool/asterisk/tmp/$NUMBER /var/spool/asterisk/outgoing/$NUMBER
Дальше я так понимаю вызов должен идти через этот .call файл, но он даже не создается, во всяком случае он не появляется ни в одной директории.
Вот все что пишет астериск при звонке на него
== Using SIP RTP CoS mark 5
-- Executing [389****@tr389****:1] Answer("SIP/389****-00000012", "") in new stack
-- Executing [389****@tr389****:2] GotoIf("SIP/389****-00000012", "1?callback") in new stack
-- Goto (tr389****,389****,4)
-- Executing [389****@tr389****:4] System("SIP/389****-00000012", "/etc/asterisk/scripts/callback 8982637**** &") in new stack
-- Executing [389****@tr389****:5] Hangup("SIP/389****-00000012", "") in new stack
== Spawn extension (tr389****, 389****, 5) exited non-zero on 'SIP/389****-00000012'
Подскажите, в чем может быть проблема? Или может есть более простые пути реализации?
скорее всего у вас чтото с правами доступа.
http://asterisk-support.ru/question/38386/kak-poniat-chto-proiskhodit-na-asteriske/
более простые есть. в 1.6+ есть команда диалплана originate
Задан: 2012-10-14 22:33:32 +0400
Просмотрен: 710 раз
Обновлен: Oct 14 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.