Re: [OpenSIPS-Users] topology hiding not accepting BYE before 200 OK

2015-10-06 Thread Stuart Marsden
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

2015-10-05 Thread Stuart Marsden

> 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

2015-10-05 Thread Vlad Paiu

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

2015-10-05 Thread Stuart Marsden

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

2015-07-27 Thread Trevor Steyn
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

2015-07-23 Thread Trevor Steyn
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"