На Asterisk была такая функция как sip show peer
Если в настройках пира в sip.conf прописать qualify=yes, то при вызове sip show peer в поле Status можно было увидеть состояние пира, соответственно либо
ОК(30)
с указанием в скобках прошедшего времени с момента последней проверки qualify, либо
UNREACHABLE.
Соответственно, можно было запросить статус пира в диалплане и направлять вызов через второго поставщика, если у первого слетела регистрация.
Код:
exten => _8X.,1,Set(AVAILS=${SIPPEER(sip1,status)})
exten => _8X.,2,Set(AVAILS=${AVAILS:0:2})
exten => _8X.,3,GotoIf($["${AVAILS}" = "OK"]?4:6)
exten => _8X.,4,Dial(SIP/sip1/7${EXTEN:1},,mtT)
exten => _8X.,5,Hangup()
exten => _8X.,6,Dial(SIP/sip2/7${EXTEN:1},,mtT)
exten => _8X.,7,Hangup()
Есть ли на FS возможность по таймауту проверять доступность регистрации пользователя, пира?
Куда копать?