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 > Subject: Re: [OpenSIPS-Users] Message Compression Feedback > To: sevpal , OpenSIPS users mailling list > > 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 > 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 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 body 'help' to >>> users-requ...@lists.opensips.org >>> >>> You can reach th
Re: [OpenSIPS-Users] topology hiding not accepting BYE before 200 OK
> On 5 Oct 2015, at 17:47, Stuart Marsden 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 >> 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 >> Subject: [OpenSIPS-Users] Regarding chachedb_mongdb use . >> To: OpenSIPS users mailling list >> Message-ID: >> >> Content-Type: text/plain; charset="utf-8" >> >> Hi All , >> >> I an using the NoSql module cachedb_mongodb as database with db_cachedb . >> >> I have tested it running mongodb and opensips in a single instance . Now I >> am trying to run mongodb and opensips in different instances . I am facing >> some error in this case . >> >> What i have done : >> I have created a db with name opensips read/write permission. I am also >> created the version table with name "my_version_table" inside that db .Now >> I am trying to connect to that DB from my opensips server . But its giving >> following error : >> >> DBG:core:db_bind_mod: using db bind api for db_cachedb >> DBG:db_cachedb:db_cachedb_bind_api: BINDING API for : >> cachedb://mongodb:instance1 >> DBG:db_cachedb:db_cachedb_init: Found matching URL : >> [mongodb:instance1://mongodb:mongodbserver@x.x.x.x:27017/db.opensips] >> DBG:core:cachedb_bind_mod: Binded to mod mongodb >> DBG:core:parse_cachedb_url: parsing >> [mongodb:instance1://mongodb:mongodbserver@x.x.x.x:27017/db.opensips] >> DBG:core:parse_cachedb_url: in host - : >> DBG:core:cachedb_do_init: opening new connecti
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
[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
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
[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"