Re: [OpenSIPS-Users] topology hiding not accepting BYE before 200 OK
Hi it was legacy application logic for legacy phones causing the issue Topology hiding on 2.1 working well now ( we have jumped from opensips 1.6 .3 - just with mods to our own custom module) thanks guys Stuart > On 5 Oct 2015, at 22:22, users-requ...@lists.opensips.org wrote: > > Send Users mailing list submissions to > users@lists.opensips.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > or, via email, send a message with subject or body 'help' to > users-requ...@lists.opensips.org > > You can reach the person managing the list at > users-ow...@lists.opensips.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Users digest..." > > > Today's Topics: > > 1. Re: Message Compression Feedback (Ionut Ionita) > 2. Re: topology hiding not accepting BYE before 200 OK > (Stuart Marsden) > 3. 500 command 'dr_gw_status' failed (Aqs Younas) > 4. Does someone has embedded OpenSIPS 2.2 in an ARM system? > (Rodrigo Pimenta Carvalho) > > > -- > > Message: 1 > Date: Mon, 05 Oct 2015 16:39:54 +0300 > From: Ionut Ionita <ionution...@opensips.org> > Subject: Re: [OpenSIPS-Users] Message Compression Feedback > To: sevpal <sev...@aol.com>, OpenSIPS users mailling list > <users@lists.opensips.org> > Message-ID: <56127daa.8060...@opensips.org> > Content-Type: text/plain; charset=windows-1252; format=flowed > > > Hi sevpal, > > First of all, thank you for your feedback. Tried to solve the > issues with [0]. In the future, > please open an issue on [1] for issues like this one. > > Regards, > Ionut Ionita > > [0] > https://github.com/OpenSIPS/opensips/commit/db25690d3b810bba9ecb1174a6a1ec4af7b9651f > [1] https://github.com/opensips/opensips/issues > > On 02.10.2015 18:14, sevpal wrote: >> Hi, in testing the compression module, these below messages appear in >> the log when using mc_compress(?1?,bhs,). However, it works >> (compress/decompress) when the second param is ?bhe?. >> ERROR:compression:check_zlib_rc: not enough room in output buffer >> ERROR:compression:mc_compress_cb: Compression failed >> ERROR:compression:wrap_tm_func: compression failed >> ERROR:compression:check_zlib_rc: not enough room in output buffer >> ERROR:compression:mc_compress_cb: Compression failed >> ERROR:compression:wrap_msg_func: compression failed. Probably not >> requested message >> ERROR:core:run_raw_processing_cb: failed to run callback >> When using mc_compress(?0?,bhs,) there is no error message, but on the >> receiving proxy this error is displayed. >> ERROR:compression:check_zlib_rc: input data incomplete or corrupted >> ERROR:compression:mc_decompress: decompression failed >> >> >> _______ >> Users mailing list >> Users@lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > > -- > > Message: 2 > Date: Mon, 5 Oct 2015 17:50:11 +0100 > From: Stuart Marsden <stu...@myphones.com> > Subject: Re: [OpenSIPS-Users] topology hiding not accepting BYE before > 200 OK > To: users@lists.opensips.org > Message-ID: <3fd56467-eebc-4170-904b-c0173ed5a...@myphones.com> > Content-Type: text/plain; charset=utf-8 > > >> On 5 Oct 2015, at 17:47, Stuart Marsden <drsmars...@me.com> wrote: >> >> Our actual case is >> >> phone A-> opensips -> our soft switch -> same opensips -> phone B >> >> INVITE ?> >> > 200 ??? > >> > >> >> > BYE 483 >> 200 ??? > >> >> this only happens when both phones send a BYE at the same time >> >> Opensips cannot process the 2nd BYE the 2nd time it sees it >> >> so has been impossible to reproduce in the lab >> >> wireshark sent via email >> >> thanks >> >> Stuart >> >> >> >>> On 5 Oct 2015, at 13:46, users-requ...@lists.opensips.org wrote: >>> >>> Send Users mailing list submissions to >>> users@lists.opensips.org >>> >>> To subscribe or unsubscribe via the World Wide Web, visit >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> or, via email, send a message with subject or
[OpenSIPS-Users] topology hiding not accepting BYE before 200 OK
Hi we are experimenting with topology hiding on 2.1 I think we see the same issue once a call is set up if UAC and UAS both send BYE at “the same time” we cannot reproduce at will because of the small timing window required to receive the 2 BYEs Stuart ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] topology hiding not accepting BYE before 200 OK
Hello Stuard, What is the full SIP scenario for this ? The callee cannot send a BYE before the 200OK is sent ( from SIP point of view ). Can you please post a SIP trace for this ? A full debug OpenSIPS log would also help. Regards, Vlad Paiu OpenSIPS Developer On 05.10.2015 11:46, Stuart Marsden wrote: Hi we are experimenting with topology hiding on 2.1 I think we see the same issue once a call is set up if UAC and UAS both send BYE at “the same time” we cannot reproduce at will because of the small timing window required to receive the 2 BYEs Stuart ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] topology hiding not accepting BYE before 200 OK
> On 5 Oct 2015, at 17:47, Stuart Marsden <drsmars...@me.com> wrote: > > Our actual case is > > phone A-> opensips -> our soft switch -> same opensips -> phone B > > INVITE —> > <—RINGING > 200 ——— > > <— ACK > > > <— BYE > BYE 483 > 200 ——— > > > this only happens when both phones send a BYE at the same time > > Opensips cannot process the 2nd BYE the 2nd time it sees it > > so has been impossible to reproduce in the lab > > wireshark sent via email > > thanks > > Stuart > > > >> On 5 Oct 2015, at 13:46, users-requ...@lists.opensips.org wrote: >> >> Send Users mailing list submissions to >> users@lists.opensips.org >> >> To subscribe or unsubscribe via the World Wide Web, visit >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> or, via email, send a message with subject or body 'help' to >> users-requ...@lists.opensips.org >> >> You can reach the person managing the list at >> users-ow...@lists.opensips.org >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of Users digest..." >> >> >> Today's Topics: >> >> 1. Re: topology hiding not accepting BYE before 200 OK (Vlad Paiu) >> 2. Regarding chachedb_mongdb use . (Sasmita Panda) >> 3. Re: Regarding chachedb_mongdb use . (Vlad Paiu) >> 4. Re: Regarding chachedb_mongdb use . (Sasmita Panda) >> >> >> -- >> >> Message: 1 >> Date: Mon, 05 Oct 2015 14:51:47 +0300 >> From: Vlad Paiu <vladp...@opensips.org> >> Subject: Re: [OpenSIPS-Users] topology hiding not accepting BYE before >> 200 OK >> To: users@lists.opensips.org >> Message-ID: <56126453.2050...@opensips.org> >> Content-Type: text/plain; charset=utf-8; format=flowed >> >> Hello Stuard, >> >> What is the full SIP scenario for this ? The callee cannot send a BYE >> before the 200OK is sent ( from SIP point of view ). Can you please post >> a SIP trace for this ? A full debug OpenSIPS log would also help. >> >> Regards, >> >> Vlad Paiu >> OpenSIPS Developer >> >> On 05.10.2015 11:46, Stuart Marsden wrote: >>> Hi >>> >>> we are experimenting with topology hiding on 2.1 >>> >>> I think we see the same issue once a call is set up if UAC and UAS both >>> send BYE at ?the same time? >>> >>> we cannot reproduce at will because of the small timing window required to >>> receive the 2 BYEs >>> >>> Stuart >>> ___ >>> Users mailing list >>> Users@lists.opensips.org >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >> >> >> >> >> -- >> >> Message: 2 >> Date: Mon, 5 Oct 2015 17:28:51 +0530 >> From: Sasmita Panda <spa...@3clogic.com> >> Subject: [OpenSIPS-Users] Regarding chachedb_mongdb use . >> To: OpenSIPS users mailling list <users@lists.opensips.org> >> Message-ID: >>
Re: [OpenSIPS-Users] topology hiding not accepting BYE before 200 OK
Hi Anyone have any ideas on the below issue? On 23/07/2015 17:12, Trevor Steyn wrote: Hi Guys, I seem to be having some trouble with the new topology_hiding module in opensips 2.1 here is the call scenario UAC -- Opensips -- UAS UAC Sends Invite to UAS with topology hiding module UAS sends 180 with to-tag UAC sends BYE When the Bye is sent opensips loops the call till max forwards is reached from what i can see from the debugs the Bye from UAC is accepted and matches the topology_hiding_match function but does not rewrite the destination IP so when the message passes t_relay() its sending the Bye to Itself from Itself. I have tried this without topology hiding and the BYE is relayed as it should . My route looks as follows route{ script_trace( 3, $rm from $si, ruri=$ru, me); if (!mf_process_maxfwd_header(10)) { sl_send_reply(483,Too Many Hops); exit; } if ( check_source_address(1,$avp(trunk_attrs)) ) { # request comes from trunks setflag(IS_TRUNK); } else if ( is_from_gw() ) { # request comes from GWs } else { #send_reply(403,Forbidden); xlog(Message is not from Trunk or GW $si); #exit; } if (has_totag()) { # sequential request withing a dialog should # take the path determined by record-routing #if (loose_route()) { if(topology_hiding_match()) { # validate the sequential request against dialog if ( $DLG_status!=NULL !validate_dialog() ) { xlog(In-Dialog $rm from $si (callid=$ci) is not valid according to dialog\n); ## exit; } if (is_method(BYE)) { setflag(ACC_DO); # do accounting ... setflag(ACC_FAILED); # ... even if the transaction fails } else if (is_method(INVITE)) { # even if in most of the cases is useless, do RR for # re-INVITEs alos, as some buggy clients do change route set # during the dialog. record_route(); } # lets handle re-invites and offer proxy if (has_body(application/sdp)) { # Begin rtp session update gyrations if (method == INVITE) { # INVITE w/ SDP, so early neg # This is offer, reply is answer rtpproxy_offer(iewlz20); t_on_reply(1); } else if (method == ACK) { # ACK w/ SDP, so late neg (done now) # This is answer rtpproxy_answer(iewlz20); } } # route it out to whatever destination was set by loose_route() # in $du (destination URI). route(RELAY); } else { if ( is_method(ACK) ) { if ( t_check_trans() ) { # non loose-route, but stateful ACK; must be an ACK after # a 487 or e.g. 404 from upstream server t_relay(); exit; } else { # ACK without matching transaction - # ignore and discard exit; } } sl_send_reply(404,Not here); } exit; } INITIAL REQUESTS if ( !isflagset(IS_TRUNK) ) { ## accept new calls only from trunks send_reply(403,Not from trunk); exit; } # CANCEL processing if (is_method(CANCEL)) { if (t_check_trans()) t_relay(); exit; } else if (!is_method(INVITE)) { send_reply(405,Method Not Allowed); exit; } if ($rU==NULL) { # request with no Username in RURI sl_send_reply(484,Address Incomplete); exit; } t_check_trans(); # preloaded route checking if (loose_route()) { xlog(L_ERR, Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]); if (!is_method(ACK)) sl_send_reply(403,Preload Route denied); exit; } # record routing record_route(); setflag(ACC_DO); # do accounting # create dialog with timeout if ( !create_dialog(B) ) { send_reply(500,Internal Server Error); exit; } if (is_avp_set($avp(trunk_attrs)) $avp(trunk_attrs)=~^[0-9]+$) { get_profile_size(trunkCalls,$si,$var(size)); if ( $(var(size){s.int}) = $(avp(trunk_attrs){s.int}) ) { send_reply(486,Busy Here); exit; } } set_dlg_profile(trunkCalls,$si); # apply transformations from dialplan table dp_translate(0,$rU/$rU); # route calls based on prefix if ( !do_routing(1) ) {
[OpenSIPS-Users] topology hiding not accepting BYE before 200 OK
Hi Guys, I seem to be having some trouble with the new topology_hiding module in opensips 2.1 here is the call scenario UAC -- Opensips -- UAS UAC Sends Invite to UAS with topology hiding module UAS sends 180 with to-tag UAC sends BYE When the Bye is sent opensips loops the call till max forwards is reached from what i can see from the debugs the Bye from UAC is accepted and matches the topology_hiding_match function but does not rewrite the destination IP so when the message passes t_relay() its sending the Bye to Itself from Itself. I have tried this without topology hiding and the BYE is relayed as it should . My route looks as follows route{ script_trace( 3, $rm from $si, ruri=$ru, me); if (!mf_process_maxfwd_header(10)) { sl_send_reply(483,Too Many Hops); exit; } if ( check_source_address(1,$avp(trunk_attrs)) ) { # request comes from trunks setflag(IS_TRUNK); } else if ( is_from_gw() ) { # request comes from GWs } else { #send_reply(403,Forbidden); xlog(Message is not from Trunk or GW $si); #exit; } if (has_totag()) { # sequential request withing a dialog should # take the path determined by record-routing #if (loose_route()) { if(topology_hiding_match()) { # validate the sequential request against dialog if ( $DLG_status!=NULL !validate_dialog() ) { xlog(In-Dialog $rm from $si (callid=$ci) is not valid according to dialog\n); ## exit; } if (is_method(BYE)) { setflag(ACC_DO); # do accounting ... setflag(ACC_FAILED); # ... even if the transaction fails } else if (is_method(INVITE)) { # even if in most of the cases is useless, do RR for # re-INVITEs alos, as some buggy clients do change route set # during the dialog. record_route(); } # lets handle re-invites and offer proxy if (has_body(application/sdp)) { # Begin rtp session update gyrations if (method == INVITE) { # INVITE w/ SDP, so early neg # This is offer, reply is answer rtpproxy_offer(iewlz20); t_on_reply(1); } else if (method == ACK) { # ACK w/ SDP, so late neg (done now) # This is answer rtpproxy_answer(iewlz20); } } # route it out to whatever destination was set by loose_route() # in $du (destination URI). route(RELAY); } else { if ( is_method(ACK) ) { if ( t_check_trans() ) { # non loose-route, but stateful ACK; must be an ACK after # a 487 or e.g. 404 from upstream server t_relay(); exit; } else { # ACK without matching transaction - # ignore and discard exit; } } sl_send_reply(404,Not here); } exit; } INITIAL REQUESTS if ( !isflagset(IS_TRUNK) ) { ## accept new calls only from trunks send_reply(403,Not from trunk); exit; } # CANCEL processing if (is_method(CANCEL)) { if (t_check_trans()) t_relay(); exit; } else if (!is_method(INVITE)) { send_reply(405,Method Not Allowed); exit; } if ($rU==NULL) { # request with no Username in RURI sl_send_reply(484,Address Incomplete); exit; } t_check_trans(); # preloaded route checking if (loose_route()) { xlog(L_ERR, Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]); if (!is_method(ACK)) sl_send_reply(403,Preload Route denied); exit; } # record routing record_route(); setflag(ACC_DO); # do accounting # create dialog with timeout if ( !create_dialog(B) ) { send_reply(500,Internal Server Error); exit; } if (is_avp_set($avp(trunk_attrs)) $avp(trunk_attrs)=~^[0-9]+$) { get_profile_size(trunkCalls,$si,$var(size)); if ( $(var(size){s.int}) = $(avp(trunk_attrs){s.int}) ) { send_reply(486,Busy Here); exit; } } set_dlg_profile(trunkCalls,$si); # apply transformations from dialplan table dp_translate(0,$rU/$rU); # route calls based on prefix if ( !do_routing(1) ) { send_reply(404,No Route found); exit; } t_on_failure(GW_FAILOVER); if (is_method(INVITE)) { force_send_socket(udp:XXX.XXX.XXX.XXX:5060); #rtpproxy_engage('ierz20');