Добрый день.
Суть проблемы. Не работает retry, когда datacard устройство занято. Например, если запущено сразу 2 call файла отработает только один, второй выпадает с ошибкой и больше не пытается набирать номер:
[Nov 25 12:47:35] NOTICE[5801] pbx_spool.c: Call failed to go through, reason (0) Call Failure (not BUSY, and not NO_ANSWER, maybe
Circuit busy or down?)
Вот как это выглядит в логе во времени:
12:47:27 [74c414f9-b5b9-4c83-9ebd-79c7e417ca79]:{Type:1,Number:0038050xxxxxxx,Secret:xxx,Service:1}
12:47:35 [27a262f5-70dc-42bf-b023-0878712ac6cb]:{Type:1,Number:0038050yyyyyyy,Secret:xxx,Service:1}
12:47:49 [74c414f9-b5b9-4c83-9ebd-79c7e417ca79]: Call to +38050xxxxxxx ended with status OK.
Call файл:
#! /usr/bin/bash
CALL_SPOOL_DIR="/var/spool/asterisk/outgoing/"
CALL="/var/spool/asterisk/tmp/alarm-iax.call"
echo "Channel: Datacard/datacard0/$1">$CALL
echo "CallerId: 666">>$CALL
echo "MaxRetries: 10" >>$CALL
echo "RetryTime: 45">>$CALL
echo "WaitTime: 30">>$CALL
echo "Context: monitoring-alarm">>$CALL
echo "Extension: s">>$CALL
echo "Priority: 1">>$CALL
echo "Setvar: STATUS=$2">>$CALL
echo "Setvar: SERVICE=$3">>$CALL
echo "Setvar: NUM=$1">>$CALL
echo "Setvar: UID=$4">>$CALL
mv $CALL $CALL_SPOOL_DIR
Экстеншн:
[monitoring-alarm]
exten = s,1,Wait(0.5)
exten = s,2,Set(VOLUME(TX)=-5)
exten = s,3,Playback(${STATUS})
exten = s,4,Playback(ru_service)
exten = s,5,Playback(${SERVICE})
exten = s,6,Hangup
exten = h,1,System(echo ${STRFTIME(${EPOCH},"GMT-2","%a, %d %b %Y %H:%M:%S %z")}[${UID}]: Call to ${NUM} ended with status OK. >>
/var/log/informer.log)
так я вам уже ответил на stackoverflow.
и вообще, прочитайте какуюто книжку по *
Задан: 2013-11-25 17:31:12 +0400
Просмотрен: 151 раз
Обновлен: Nov 26 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Почитайте книжку - это не ответ на мой вопрос. На stackoverflow я вам пишу, что понял, что нужно описать условие при котором будет происходить redial. Но вот беда - таким условием должен являться ${DIALSTATUS} == CHANUNAVAIL, а у меня в дебаге ${DIALSTATUS} всегда пустой. Потому можно читать книжку, можно её съесть. Пользы не будет.
gera_b ( 2013-11-26 17:38:13 +0400 )редактировать