Hi Amit,

 

Sorry but I just saw that you use WS instead of WSS like me. I can only suggest to try it like this then but I w/o warranty because I’m still learning about Kamailio and SIP:

route[WITHINDLG] {

                if (!has_totag()) {

                               return;

                }

                if (loose_route()) {

                               if ($du == "") {

                                               if (!handle_ruri_alias()) {

                                                               xlog("L_ERR", "Bad alias <$ru>\n");

                                                               sl_send_reply("400", "Bad Request");

                                                               exit;

                                               }

                               }

                               if (is_method("BYE")) {

                                               setflag(FLT_ACC);

                                               setflag(FLT_ACCFAILED);

                                              if (proto==WS && $ru=~"transport=ws") {

                                                               $ru = $tu;

                                                               lookup("location");

                                               }

                               } else if (is_method("ACK")) {

                                               if (proto==WS && $ru=~"transport=ws") {

                                                               $ru = $tu;

                                                               lookup("location");

                                               }

                               }

                               route(RELAY);

} else {

                               if (is_method("ACK")) {

                                               if (t_check_trans()) {

                                                               route(RELAY);

                                               } else {

                                                               exit;

                                               }

                               }

                               sl_send_reply("404","Not here");

                }

                exit;

}

 

Either way, SIP-Traces will help you a lot to find the wrong ACK-Handling and where it gets stuck.

 

 

Best Regards

Dimitry Nagorny

Trainee

 

Von: sr-users [mailto:sr-users-bounces@lists.sip-router.org] Im Auftrag von Amit Patkar
Gesendet: Dienstag, 21. Juni 2016 15:53
An: sr-users@lists.sip-router.org
Betreff: Re: [SR-Users] WS to WS calls - No ACK received for 200OK

 

Thanks guys.

Yes. I have set advertised_address parameter.

I tried configuration changes suggested by Dimitry, but its now throwing following error and dropping call

Jun 21 19:07:15 acstemplate /usr/sbin/kamailio[7869]: ERROR: <core> [resolve.c:1693]: sip_hostport2su(): could not resolve hostname: "plfil8pkosnv.invalid"
Jun 21 19:07:15 acstemplate /usr/sbin/kamailio[7869]: ERROR: tm [ut.h:319]: uri2dst2(): failed to resolve "plfil8pkosnv.invalid"
Jun 21 19:07:15 acstemplate /usr/sbin/kamailio[7869]: ERROR: tm [t_fwd.c:1711]: t_forward_nonack(): ERROR: t_forward_nonack: failure to add branches
Jun 21 19:07:15 acstemplate /usr/sbin/kamailio[7869]: ERROR: sl [sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used: Unresolvable destination (478/SL)

Thanks & Regards,
Amit Patkar

 

On 6/21/2016 5:50 PM, Nagorny, Dimitry wrote:

Hi Amit,

 

I had the same issue reported here last week. Here is the part how I solved it for the moment on Kamailio 4.3.5 with JsSIP:

 

route[WITHINDLG] {

                if (!has_totag()) {

                               return;

                }

                if (loose_route()) {

                               if ($du == "") {

                                               if (!handle_ruri_alias()) {

                                                               xlog("L_ERR", "Bad alias <$ru>\n");

                                                               sl_send_reply("400", "Bad Request");

                                                               exit;

                                               }

                               }

                               if (is_method("BYE")) {

                                               setflag(FLT_ACC);

                                               setflag(FLT_ACCFAILED);

                                               if (src_ip==$sel(cfg_get.pstn.gw_ip) && $fd==$sel(cfg_get.free.switch_ip)){

                                                               $du="sip:" + $sel(cfg_get.free.switch_ip) + ":" + $sel(cfg_get.free.switch_port) + ";transport=tls";

                                                               force_send_socket(tls:MY_INTERN_IP:MY_INTERN_PORT);

                                               } else if (proto==WSS && $ru=~"transport=ws") {

                                                               $ru = $tu;

                                                               lookup("location");

                                               }

                               } else if (is_method("ACK")) {

                                               if (proto==WSS && $ru=~"transport=ws") {

                                                               $ru = $tu;

                                                               lookup("location");

                                               }

                               }

                               route(RELAY);

} else {

                               if (is_method("ACK")) {

                                               if (t_check_trans()) {

                                                               route(RELAY);

                                               } else {

                                                               exit;

                                               }

                               }

                               sl_send_reply("404","Not here");

                }

                exit;

}

 

As you can see, the additions in bold, I had to retrieve the contact information from the DB again. This only apllies for communication from ws to ws. This might be a n00bish solution but it works for me.

 

 

Best Regards

Dimitry Nagorny

Trainee

 

Von: sr-users [mailto:sr-users-bounces@lists.sip-router.org] Im Auftrag von Alexandru Covalschi
Gesendet: Dienstag, 21. Juni 2016 13:50
An: amit@avhan.com; Kamailio (SER) - Users Mailing List <sr-users@lists.sip-router.org>
Betreff: Re: [SR-Users] WS to WS calls - No ACK received for 200OK

 

The problem may be with record_route header.

Did you set advertised_address?

 

2016-06-21 12:59 GMT+03:00 Amit Patkar <amit@avhan.com>:

Hi

I am using Kamailio as Websocket proxy.

User 1 & User 2 are registered on Kamailio over WebSocket.
When User 1 calls User 2, User 2 gets ring and answers the call. 200 OK message is received by User 1 but ACK response sent by User 1 does not reach User 2. Since User 2 didn't get ACS, after 30 sec timeout it drops the call.
Media is exchanged for 30 seconds, which means ICE is successful.

I am running kamailio 4.3.3 on

Kamailio is behind firewall and running on private IP.
rtpengine is configured to handle media.
All ports are forwarded to kamailio server and Kamailio is allowed to send data on any public IP.

I used jssip & sipml framework to test. Result was same for both frameworks. No ACK received

I can see following errors in log file. What could be the reason which indicate ACK was not forwarded

Jun 21 14:55:41 acstemplate /usr/sbin/kamailio[6584]: NOTICE: acc [acc.c:317]: acc_log_request(): ACC: transaction answered: timestamp=1466501141;method=INVITE;from_tag=7926B9NR7U0X99ZfAr1T;to_tag=w3D2JGd2EUFJpobTcFyo;call_id=1edc8e15-f1f1-584d-df81-71c3d59d713d;code=200;reason=OK;src_user=10001;src_domain=xxxx.com;src_ip=xxx.yyy.zzz.aaa;dst_ouser=10002;dst_user=10002;dst_domain=df7jal23ls0d.invalid
Jun 21 14:55:41 acstemplate /usr/sbin/kamailio[6582]: ERROR: <core> [forward.c:529]: forward_request(): cannot forward to af 2, proto 5 no corresponding listening socket
Jun 21 14:55:41 acstemplate /usr/sbin/kamailio[6582]: ERROR: sl [sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (7/SL)
Jun 21 14:55:42 acstemplate /usr/sbin/kamailio[6584]: INFO: <script>: WS to WS
Jun 21 14:55:42 acstemplate /usr/sbin/kamailio[6582]: ERROR: <core> [forward.c:529]: forward_request(): cannot forward to af 2, proto 5 no corresponding listening socket
Jun 21 14:55:42 acstemplate /usr/sbin/kamailio[6582]: ERROR: sl [sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (7/SL)
Jun 21 14:55:46 acstemplate /usr/sbin/kamailio[6582]: ERROR: <core> [forward.c:529]: forward_request(): cannot forward to af 2, proto 5 no corresponding listening socket
Jun 21 14:55:46 acstemplate /usr/sbin/kamailio[6582]: ERROR: sl [sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (7/SL)
Jun 21 14:55:51 acstemplate /usr/sbin/kamailio[6582]: ERROR: <core> [forward.c:529]: forward_request(): cannot forward to af 2, proto 5 no corresponding listening socket
Jun 21 14:55:51 acstemplate /usr/sbin/kamailio[6582]: ERROR: sl [sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (7/SL)
Jun 21 14:55:57 acstemplate /usr/sbin/kamailio[6582]: ERROR: <core> [forward.c:529]: forward_request(): cannot forward to af 2, proto 5 no corresponding listening socket
Jun 21 14:55:57 acstemplate /usr/sbin/kamailio[6582]: ERROR: sl [sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (7/SL)
Jun 21 14:56:13 acstemplate /usr/sbin/kamailio[6581]: ERROR: <core> [forward.c:529]: forward_request(): cannot forward to af 2, proto 5 no corresponding listening socket
Jun 21 14:56:13 acstemplate /usr/sbin/kamailio[6581]: ERROR: sl [sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (7/SL)


I searched list for similar issues but could not find match any
 
Help to resolve this issue is appreciated.
 
Thanks & Regards,
Amit Patkar
 


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users




--

Alexandru Covalschi
ABRISS-Solutions

VoIP engineer and system administrator
tel: +37367398493
web: http://abriss.solutions/




_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users