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 <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

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-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


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 <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

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(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

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)) {
force_send_socket(udp:XXX.XXX.XXX.XXX:5060);
#rtpproxy_engage('ierz20');