<span class="gmail_quote"></span>Hi,<br><br>I have a problem with chan_ss7 &amp; Asterisk.<br><br>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.&nbsp; 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).
<br><br>IP phone calls PSTN -&gt; IP side releases call -&gt; Temporary failure<br>IP phone calls PSTN -&gt; PSTN side releases call -&gt; Normal Call Clearing<br>PSTN calls IP phone -&gt; IP side releases call -&gt; Normal Call Clearing
<br>PSTN calls IP phone -&gt; PSTN side releases call -&gt; Normal Call Clearing<br><br>I tried with:<br>Asterisk 1.2.10 &amp; chan_ss7 0.8.4<br>Asterisk 1.2.10 &amp; chan_ss7 0.9<br>Asterisk 1.2.13 &amp; chan_ss7 0.9<br>

<br>Based on chan_ss7 0.9 l4isup.c, I guess the developers are aware of this poblem:<br>static void initiate_release_circuit(struct ss7_chan* pvt, int cause)<br>{<br>&nbsp; pvt-&gt;hangupcause = cause; /* Remember for REL retransmit */
<br>&nbsp; /* We sometimes get hangupcause=0 (seen when no match in dialplan, not<br>&nbsp;&nbsp;&nbsp;&nbsp; even invalid handler). This doesn't work too well, for example<br>&nbsp;&nbsp;&nbsp;&nbsp; ast_softhangup() doesn't actually hang up when hangupcause=0. */
<br>
&nbsp; if(pvt-&gt;hangupcause == 0) {<br>&nbsp;&nbsp;&nbsp; pvt-&gt;hangupcause = AST_CAUSE_NORMAL_TEMPORARY_FAILURE;<br>&nbsp; }<br>&nbsp; isup_send_rel(pvt, pvt-&gt;hangupcause);<br>&nbsp; pvt-&gt;state = ST_SENT_REL;<br>&nbsp; /* Set up timer T1 and T5 waiting for RLC. */
<br>&nbsp; t1_start(pvt);<br>&nbsp; t5_start(pvt);<br>}<br><br>Anybody knows a way to correct this?&nbsp; Preferably within Asterisk.&nbsp; As a temporal solution I modified l4isup.c, but I think it's not the correct place to do it.<br><br>
Regards,
<br><span class="sg">Peter<br>

</span>