VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Не срабатывает команда System();

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

steap
Сообщения: 26
Зарегистрирован: 10 ноя 2015, 11:51
Откуда: Новосибирск

Не срабатывает команда System();

Сообщение steap »

Здравствуйте.
Настроил отправку факса с предварительным дозвоном. Работает так:
Звоним и просим принять факс. Там соглашаются. Переводим звонок на номер 444 и с этого номера идёт отправка предварительно заготовленного файла fax.tif. Проблема в том, что хотелось бы после этого удалить файл и сообщить статус отправки. Но команды не срабатывают, если их поставить после SendFAX(). Если до (или закомментировать строчку отправки), то всё работает. В чём может быть причина?

Диалплан:

Код: Выделить всё

[fax-internal]
exten => 444,1,NoOp(-------------------Call from ${CALLERID(number)} to ${EXTEN}------------------)
 same => n,Set(FAXFILENAME=${EXTEN})
 same => n,Goto(fax-tx,send,1)

[fax-tx]
exten => send,1,NoOp(------------------- FAX from ${CALLERID(number)} ------------------)
 same => n,Set(DT=${TIMESTAMP}-${CALLERIDNUM}-${UNIQUEID})
 same => n,Set(FAXOPT(headerinfo)=Received by ${CALLERID(number)} ${STRFTIME(${EPOCH},,%Y-%m-%d %H-%M)})
 same => n,Set(FAXOPT(localstationid)=Name)
 same => n,Set(FAXOPT(maxrate)=14400)
 same => n,Set(FAXOPT(minrate)=9600)
 same => n,SendFAX(/fax/${FAXFILENAME}/fax.tif)
 same => n,System(/bin/echo -e 'Отправка факса\nСтатус:${FAXSTATUS}' | /usr/bin/sendxmpp -u robot -p pass -j 192.168.0.17:5222 admin@192.168.0.17)
 same => n,System(/bin/rm /fax/${FAXFILENAME}/fax.tif)
 same => n,HangUp
P.S. В логах по этому поводу ничего.
Последний раз редактировалось steap 23 ноя 2015, 12:19, всего редактировалось 1 раз.
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

Re: Не срабатывает команда System();

Сообщение Glukinho »

Потому что трубка кладется, канал умирает и дальнейшие команды не выполняются. Засуньте их в екстеншен h.
steap
Сообщения: 26
Зарегистрирован: 10 ноя 2015, 11:51
Откуда: Новосибирск

Re: Не срабатывает команда System();

Сообщение steap »

Хм. Возможно. То есть HangUp() в конце бесполезен?
Я правильно понимаю, что нужно привести к следующему виду?

Код: Выделить всё

[fax-internal]
exten => 444,1,NoOp(-------------------Call from ${CALLERID(number)} to ${EXTEN}------------------)
same => n,Set(FAXFILENAME=${EXTEN})
same => n,Goto(fax-tx,send,1)

[fax-tx]
exten => send,1,NoOp(------------------- FAX from ${CALLERID(number)} ------------------)
same => n,Set(DT=${TIMESTAMP}-${CALLERIDNUM}-${UNIQUEID})
same => n,Set(FAXOPT(headerinfo)=Received by ${CALLERID(number)} ${STRFTIME(${EPOCH},,%Y-%m-%d %H-%M)})
same => n,Set(FAXOPT(localstationid)=Name)
same => n,Set(FAXOPT(maxrate)=14400)
same => n,Set(FAXOPT(minrate)=9600)
same => n,SendFAX(/fax/${FAXFILENAME}/fax.tif)
exten => h,1,System(/bin/echo -e 'Отправка факса\nСтатус:${FAXSTATUS}' | /usr/bin/sendxmpp -u robot -p pass -j 192.168.0.17:5222 admin@192.168.0.17)
same => n,System(/bin/rm /fax/${FAXFILENAME}/fax.tif)
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

Re: Не срабатывает команда System();

Сообщение Glukinho »

Да.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Не срабатывает команда System();

Сообщение ded »

А в чём смысл перехода по Goto? Всё укладывается в один контекст (не напутали там с /fax/${FAXFILENAME}/fax.tif?)

Код: Выделить всё

[fax-internal]
exten => 444,1,NoOp(-------------------Call from ${CALLERID(number)} to ${EXTEN}------------------)
same => n,Set(FAXFILENAME=${EXTEN})
same => n,NoOp(------------------- FAX from ${CALLERID(number)} ------------------)
same => n,Set(DT=${TIMESTAMP}-${CALLERIDNUM}-${UNIQUEID})
same => n,Set(FAXOPT(headerinfo)=Received by ${CALLERID(number)} ${STRFTIME(${EPOCH},,%Y-%m-%d %H-%M)})
same => n,Set(FAXOPT(localstationid)=Name)
same => n,Set(FAXOPT(maxrate)=14400)
same => n,Set(FAXOPT(minrate)=9600)
same => n,SendFAX(/fax/${FAXFILENAME}/fax.tif)
steap
Сообщения: 26
Зарегистрирован: 10 ноя 2015, 11:51
Откуда: Новосибирск

Re: Не срабатывает команда System();

Сообщение steap »

Glukinho писал(а):Да.
К сожалению не помогло. Так же System не срабатывают.
ded писал(а):А в чём смысл перехода по Goto? Всё укладывается в один контекст (не напутали там с /fax/${FAXFILENAME}/fax.tif?)
Там в последствии будет больше номеров. Так что GoTo нужен будет. С "/fax/${FAXFILENAME}/fax.tif" всё нормально. Факсы уходят. Проблема лишь с командами после отправки.
steap
Сообщения: 26
Зарегистрирован: 10 ноя 2015, 11:51
Откуда: Новосибирск

Re: Не срабатывает команда System();

Сообщение steap »

В общем всем спасибо. Проблема решена:

Код: Выделить всё

[fax-internal]
exten => 444,1,NoOp(-------------------Call from ${CALLERID(number)} to ${EXTEN}------------------)
same => n,Set(FAXFILENAME=${EXTEN})
same => n,Goto(fax-tx,send,1)

[fax-tx]
exten => send,1,NoOp(------------------- FAX from ${CALLERID(number)} ------------------)
same => n,Set(DT=${TIMESTAMP}-${CALLERIDNUM}-${UNIQUEID})
same => n,Set(FAXOPT(headerinfo)=Received by ${CALLERID(number)} ${STRFTIME(${EPOCH},,%Y-%m-%d %H-%M)})
same => n,Set(FAXOPT(localstationid)=Name)
same => n,Set(FAXOPT(maxrate)=14400)
same => n,Set(FAXOPT(minrate)=9600)
same => n,SendFAX(/fax/${FAXFILENAME}/fax.tif)
same => n,Hangup
exten => h,1,System(/bin/echo -e 'Отправка факса\nСтатус:${FAXSTATUS}' | /usr/bin/sendxmpp -u robot -p pass -j 192.168.0.17:5222 admin@192.168.0.17)
same => n,System(/bin/rm /fax/${FAXFILENAME}/fax.tif)
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Не срабатывает команда System();

Сообщение ded »

steap писал(а):Там в последствии будет больше номеров. Так что GoTo нужен будет.
Тогда грамотней было бы через макрос или Gosub
Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: Не срабатывает команда System();

Сообщение Obi Van »

У меня после SendFax исполняется ещё куча команд, среди которой

Код: Выделить всё

exten => s,n,GotoIf($["${FAXSTATUS}" = "SUCCESS"]?:endsend)
. Всё для того, чтобы в веб-морде получить статус доставки. Вовсе не хэнгапится канал после отправки. 8-)
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: Не срабатывает команда System();

Сообщение Wapo »

Obi Van писал(а): Всё для того, чтобы в веб-морде получить статус доставки. Вовсе не хэнгапится канал после отправки. 8-)
Не совсем и не всегда: аппараты типа Panasonic еще держат канал после приема, а например Brothers бросает сразу даже не возвращая инфу.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH