SuMiSc писал(а):С обновлением сложно, проще с этой бедой смириться.
Насчет неподключенной пиры да, так и есть, SIPPEER одинаково одвечает если пира неподключена, или ее нет вообще.
Иные способы есть?
За код не ручаюсь, игрался давно
Код: Выделить всё
[intra-pbx]
exten => _1XX,1,Verbose(3, *** Making the call to to <${EXTEN}> extension *** )
same => n,Set(ARRAY(Device,Technology)=${DB(device/endpoint/${EXTEN})},${DB(device/technology/${EXTEN})})
same => n,Set(CALLERID(name)=${DB(cidname/${Device})})
same => n(first_check),GotoIf($[${ISNULL(${Technology})} | ${ISNULL(${Device})}]?error,1)
same => n,Set(added_to_conf=${SIPPEER(${device},status)})
same => n(second_check),GotoIf($[${ISNULL(${added_to_conf})}]?not_yet_added,1)
same => n,ChanIsAvail(${technology}/${device},s)
same => n,NoOp(AVAILSTATUS : ${AVAILSTATUS}, AVAILORIGCHAN : ${AVAILORIGCHAN})
same => n,GotoIf($["${AVAILSTATUS}" = "0" | "${AVAILSTATUS}" = "5"]?error,1)
same => n(dial),Dial(${Technology}/${Device},${timeout},t)
same => n,Playback(silence/1&tt-allbusy&silence/1)
same => n,Hangup()
exten => error,1,Verbose(2, *** Unable to lookup device or technology for extension ***)
same => n,Playback(silence/1&ss-noservice&silence/1)
same => n,Hangup()
exten => not_yet_added,1,NoOp(We definitely forgot to add credentials to sip.conf!)
same => n,Congestion()