[SR-Users] WS to WS calls - No ACK received for 200OK

Nagorny, Dimitry dimitry.nagorny at robot5.de
Tue Jun 21 16:05:08 CEST 2016


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 at lists.sip-router.org] Im Auftrag von Amit Patkar
Gesendet: Dienstag, 21. Juni 2016 15:53
An: sr-users at 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 at lists.sip-router.org] Im Auftrag von Alexandru Covalschi
Gesendet: Dienstag, 21. Juni 2016 13:50
An: amit at avhan.com<mailto:amit at avhan.com>; Kamailio (SER) - Users Mailing List <sr-users at lists.sip-router.org><mailto:sr-users at 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 at avhan.com<mailto:amit at 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<http://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 at lists.sip-router.org<mailto:sr-users at 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/<http://abs-telecom.com/>




_______________________________________________

SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list

sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>

http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20160621/d0c65872/attachment.html>


More information about the sr-users mailing list