Установил asterisk 1.6.2+chan_ss7-1.4.3+sangoma. Вроде всё работает, только правильный cause 19 не могу отдать провайдеру, отдаётся 38. Когда звонят со стороны провайдера, то установка cause по команде hangup(cause) - работает. Когда делается звонок со стороны астериска на провадера, по timeout, отдать правильный cause не получается. Такое впечатление, что при обработке команды 1,Dial(ss7/tel/${EXTEN},90) chan_ss7 берёт cause где-то у себя, отрабатывает его, ложит канал, а потом выполняется 2,Hangup(19) в extensions.conf. Help!!!
*CLI> == Using SIP RTP CoS mark 5 -- Executing [342219@from-sip:1] Dial("SIP/264002-00000008", "ss7/tel/342219,90") in new stack -- Sent IAM CIC=30 ANI=7187264002 DNI=342219 RNI= -- Called tel/342219 -- SS7/tel/30 is ringing [Sep 6 17:14:46] NOTICE[3440]: l4isup.c:1217 t9_timeout: T9 timeout (waiting for ANM). -- SS7 hangup 'SS7/tel/30' CIC=30 Cause=38 (state=4) == Everyone is busy/congested at this time (1:0/0/1) -- Auto fallthrough, channel 'SIP/264002-00000008' status is 'CHANUNAVAIL' -- Executing [h@from-sip:1] Hangup("SIP/264002-00000008", "19") in new stack
== Spawn extension (from-sip, h, 1) exited non-zero on 'SIP/264002-00000008'
У датчан видение обработки "T9 timeout" такое. Если хочешь 19 cause - придется поправить код в chan_ss7: l4isup.c, 1218 request_hangup(chan, AST_CAUSE_NETWORK_OUT_OF_ORDER); -> request_hangup(chan, AST_CAUSE_NO_ANSWER);
Убедись, что после внесенных изменений chan_ss7.so скомпилировался проинсталлировался корректно - можешь просто вручную скопировать его в директорю модулей Астера.