FreeSWITCH overrides/dose no accept hangup cause
Hi All, I have 2 FS boxes that communicates each other. First originates call to second and on second FS perl scrips process a call. On some errors during processing I hangup call with specific hangup cause and everything is OK. For example: SIP/2.0 503 Service Unavailable Via: SIP/2.0/UDP 10.10.1.101;rport=5060;branch=z9hG4bK77698B1e1BZ3j From: "11111111111" <sip:11111111111@10.10.1.101<sip%3A11111111111@10.10.1.101>
;tag=X628H5HUDy86S To: <sip:999999999999@10.10.1.110:7060>;tag=Ztg1r5S60rQFF Call-ID: cca7076d-4b12-122e-44b6-7fd0651f7bfe CSeq: 2802191 INVITE User-Agent: FreeSWITCH-mod_sofia/1.0.6-svn-exported Accept: application/sdp Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, NOTIFY Supported: timer, precondition, path, replaces Allow-Events: talk, refer *Reason: Q.850;cause=38;text="NETWORK_OUT_OF_ORDER"* Content-Length: 0 Remote-Party-ID: "999999999999" <sip:999999999999@10.10.1.110<sip%3A999999999999@10.10.1.110> ;party=calling;privacy=off;screen=no
As you can see Q.850 cause is 38 - NETWORK OUT OF ORDER but on first FS application info says: variable_proto_specific_hangup_cause: [sip:503] variable_sip_hangup_phrase: [Service Unavailable] variable_originate_disposition: [NORMAL_TEMPORARY_FAILURE] SIP Cause of both NORMAL_TEMPORARY_FAILURE and NETWORK_OUT_OF_ORDER is 503 and is the same but Q.850 cause is different. Is it normal behavior for 1.0.6 ? Is it also possible first FS to respect Q.850 cause ? Thanks
Everyone running 1.0.6 should be running git head right now it will be 1.0.7 any day now. Stop living in the past! ;) /b On Oct 5, 2010, at 7:14 AM, ivdreg ivdreg wrote:
SIP Cause of both NORMAL_TEMPORARY_FAILURE and NETWORK_OUT_OF_ORDER is 503 and is the same but Q.850 cause is different. Is it normal behavior for 1.0.6 ? Is it also possible first FS to respect Q.850 cause ?
Thanks
Hi Brian, Correct me if I'm wrong but I thing this is a bug in 1.0.6 that exist also in 1.0.7. In src/mod/endpoints/mod_sofia/sofia.c: void sofia_handle_sip_i_bye(switch_core_session_t *session, int status .... ..... ..... if (sip->sip_reason && sip->sip_reason->re_protocol && (!strcasecmp(sip->sip_reason->re_protocol, "Q.850") || !strcasecmp(sip->sip_reason->re_protocol, "FreeSWITCH") || !strcasecmp(sip->sip_reason->re_protocol, profile->username)) && sip->sip_reason->re_cause) { tech_pvt->q850_cause = atoi(sip->sip_reason->re_cause); cause = tech_pvt->q850_cause; } else { cause = sofia_glue_sip_cause_to_freeswitch(status); } ...... If this if is false default cause for 503 ( returned by sofia_glue_sip_cause_to_freeswitch ) is NORMAL_TEMPORARY_FAILURE. Regards 2010/10/5 Brian West <brian@freeswitch.org>
Everyone running 1.0.6 should be running git head right now it will be 1.0.7 any day now. Stop living in the past! ;)
/b
On Oct 5, 2010, at 7:14 AM, ivdreg ivdreg wrote:
SIP Cause of both NORMAL_TEMPORARY_FAILURE and NETWORK_OUT_OF_ORDER is 503 and is the same but Q.850 cause is different. Is it normal behavior for 1.0.6 ? Is it also possible first FS to respect Q.850 cause ?
Thanks
_______________________________________________ FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
participants (2)
-
Brian West
-
ivdreg ivdreg