Удалить файл вызова Asterisk до достижения максимального количества попыток

Я создал файл вызова Asterisk с Maxretries = 3 и RetryTime. = 300. Иногда мне нужно удалить файл вызова после 2 попыток. Как я могу остановить Asterisk, делающую третью попытку звонка?


person P Bear    schedule 05.10.2011    source источник
comment
Какова причина или условие того, что иногда требуется только 2 попытки?   -  person John Volkya    schedule 11.10.2011
comment
Я получаю сигнал тревоги. Я создаю файл вызова с 3 максимальными попытками, который длится более часа. Иногда этот сигнал сбрасывается через 30 минут, и мне больше не нужно уведомлять пользователя.   -  person P Bear    schedule 12.10.2011


Ответы (1)


В настоящее время нет способа сделать это, не удаляя файл вызова из вашего каталога спулинга (обычно: /var/spool/asterisk/outgoing).

Что вам нужно сделать (если вам нужно убить повторные попытки):

rm /var/spool/asterisk/outgoing/<callfilename>

Другой способ справиться с этим - прагматически, через обратные вызовы вашего диалплана. Например:

Допустим, ваш файл вызова выглядит следующим образом:

Channel: SIP/flowroute/18002223333
Context: my_code
Extension: s
Priority: 1
MaxRetries: 3

И вы хотите, чтобы ваш файл вызова повторял вызов два раза (максимум). Вы можете написать код диалплана (для реализации my_code) следующим образом:

[my_code]

exten => s,1,ExecIf($[ !${DB_EXISTS(call/tries)} ]?Set(DB(call/tries)=0))
exten => s,n,Set(DB(call/tries)=${MATH(${DB(call/tries)}+1,i)})
exten => s,n,NoOp(your code here...)
exten => s,n,GotoIf($[ ${DB(call/tries)} > 1 ]?end,1)

exten => end,1,DBDel(call/tries)
exten => end,n,System(rm /var/spool/asterisk/outgoing/<name>)
exten => end,n,Hangup()

Это сохранит состояние файла вызова в базе данных Asterisk и проведет некоторый ручной подсчет, чтобы убедиться, что попытка вызова была предпринята ‹ 3 раза (если нет, то произойдет зависание).

Этот метод, очевидно, не оптимален (поскольку гораздо проще контролировать такое поведение из написанного вами приложения, которое фактически подкачивает файл вызова), но он будет работать.

Надеюсь, это поможет!

person rdegges    schedule 11.10.2011