И снова здравствуйте, мои дорогие напыщенные мастера солдатского юмора и поклонники творчества Евгения Вагановича.
Opzione numero due:
Почему вы не поведали мне о волшебных свойствах переменной SIP_CAUSE? и вынудили нагенерить несколько страниц изысканий? Забыли, не знали, аль "кабута спицальна"? Но, опять-таки,
мир не без добрых забугорных людей
Ладно, в конечном итоге наиболее приемлемым для меня способом проблема, обозначенная в топике решается так:
1.Копируется макрос [macro-dialout-trunk] из файла extensions_additional.conf в файл extensions_override_freepbx.conf
2. После строчки exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS})
втыкаем наше
exten => s,n,NoOp(SIP return code : ${HASH(SIP_CAUSE,${CDR(dstchannel)})})
;"SIP 603 Out of capacity"
exten => s,n,GotoIf($["${HASH(SIP_CAUSE,${CDR(dstchannel)})}" = "SIP 603 Out of capacity"]?continue,1)
, где 603 Out of capacity - ошибка, возвращаемая провайдером в моем случае.
3. Делается dialplan reload из CLI asterisk.
Справедливости ради, отмечу, что идею обрабатывать ошибку подал-таки
ded, за что ему большой респект, несмотря на мерзкие его манеры.
Фсем чмоке в этом чяте. ЛаФфКи, СиМпЫ и уСиПусЕчки по желанию.