Например:
exten => _X., 1, Dial(SIP/sipserv/${EXTEN},60,L(2100000))
Если сервер ответил что свободных каналов нет, то звонок идет на другой сервер(анализируется dialstatus).
А вот если сервер выключен(упал)... астериск пытается дозвониться до него 60 сек. Как сделать так, чтобы в этом случае 60 сек не ждать, а сразу пойти дальше по диалплану и послать этот звонок через другой сервер.
вот что сейчас в диалплене:
exten => s,n,ChanIsAvail(SIP/sipserv)
exten => s,n,GotoIf($["${AVAILCHAN}"=""]?noop)
exten => s,n,Dial(SIP/sipserv/${MACRO_EXTEN:${ARG1}},60,L(3000000))
exten => s,n(noop),NoOp()
ChanIsAvail против ситуации, что я описал так не помогает(
_________________
ubuntu-server*CLI> core show channels count
30 active channels
30 of 200 max active calls ( 15.0% of capacity)
3073645 calls processed
ubuntu-server*CLI> core show uptime
System uptime: 1 year, 6 weeks, 18 hours, 14 minutes, 22 seconds
[macro-stat-out-allcall]
exten => s,1,ChanIsAvail(SIP/2009XXX-1&SIP/2009XXX-2&SIP/2009XXX-3,as)
exten => s,n,NoOp(Availchan is ${AVAILCHAN}) ; будет выведено какой канал доступен
exten => s,n,NoOp(Availstatus is ${AVAILSTATUS}) ; будет указан статус канала
exten => s,n,Dial(${CUT(AVAILCHAN,,1&2)}/${ARG1})
exten => s,n,Hangup()
Функция ChanIsAvail - проверяет статус линии и на выходе выдает варианты:
1-зарегестрирован, не звонит
2-зарегестрирован и используется (если call-limit = 1 не установлен)
3-зарегестрирован и используется (call-limit = 1)
5-не зарегестрирован
6-зарегестрирован и звонит
Узнаем статус линии - если статус 1 или 2 то звоним по ней.
Поставил qualify и все ок.