[asterisk-ss7] Release cause problem
Anton
anton.vazir at gmail.com
Wed Nov 22 04:18:08 MST 2006
Hangup(${DISCONNECTCAUSE}) or made a conditional
Hangup(CAUSECODE) if returned causecodes are non-standard
On 22 November 2006 15:49, Peter Demeter wrote:
> Hi,
>
> I have a problem with chan_ss7 & Asterisk.
>
> If an IP Phone (SIP) calls a PSTN number and the call is
> terminated by the calling party chan_ss7 won't (?)
> recieve a release cause from Asterisk. In my case this
> means that the release cause will be 41 (Temporary
> Failure) in the connecting EWSD switch instead of 16
> (Normal Call Clearing).
>
> IP phone calls PSTN -> IP side releases call -> Temporary
> failure IP phone calls PSTN -> PSTN side releases call ->
> Normal Call Clearing PSTN calls IP phone -> IP side
> releases call -> Normal Call Clearing PSTN calls IP phone
> -> PSTN side releases call -> Normal Call Clearing
>
> I tried with:
> Asterisk 1.2.10 & chan_ss7 0.8.4
> Asterisk 1.2.10 & chan_ss7 0.9
> Asterisk 1.2.13 & chan_ss7 0.9
>
> Based on chan_ss7 0.9 l4isup.c, I guess the developers
> are aware of this poblem:
> static void initiate_release_circuit(struct ss7_chan*
> pvt, int cause) {
> pvt->hangupcause = cause; /* Remember for REL
> retransmit */ /* We sometimes get hangupcause=0 (seen
> when no match in dialplan, not even invalid handler).
> This doesn't work too well, for example ast_softhangup()
> doesn't actually hang up when hangupcause=0. */
> if(pvt->hangupcause == 0) {
> pvt->hangupcause =
> AST_CAUSE_NORMAL_TEMPORARY_FAILURE; }
> isup_send_rel(pvt, pvt->hangupcause);
> pvt->state = ST_SENT_REL;
> /* Set up timer T1 and T5 waiting for RLC. */
> t1_start(pvt);
> t5_start(pvt);
> }
>
> Anybody knows a way to correct this? Preferably within
> Asterisk. As a temporal solution I modified l4isup.c,
> but I think it's not the correct place to do it.
>
> Regards,
> Peter
More information about the asterisk-ss7
mailing list