[SR-Users] Kamailio Websocket Questions

Guillaume Bour ml+kamailio-users at bour.cc
Tue Apr 17 14:22:16 CEST 2018


Hello the list

Let me exhume this old message :)
I also encounter the same error message as Dimitry
When a webrtc device is registering itself, here what's output in the logs (the registration being successful or not):

   Apr 17 14:15:53 kamailio[11693]: 24(11720) ERROR: <core> [core/parser/parse_fline.c:257]: parse_first_line(): parse_first_line: bad message (offset: 22)
   Apr 17 14:15:53 kamailio[11693]: 24(11720) ERROR: <core> [core/parser/msg_parser.c:675]: parse_msg(): ERROR: parse_msg: message=<HTTP/1.1 101 Switching Protocols
   Apr 17 14:15:53 kamailio[11693]: Sia: SIP/2.0/TCP 10.2.10.16:10015
   Apr 17 14:15:53 kamailio[11693]: Sec-WebSocket-Protocol: sip
   Apr 17 14:15:53 kamailio[11693]: Upgrade: websocket
   Apr 17 14:15:53 kamailio[11693]: Connection: upgrade
   Apr 17 14:15:53 kamailio[11693]: Sec-WebSocket-Accept: Z0nbYpr4fXFMpbkJKVBfyyb8qdU=
   Apr 17 14:15:53 kamailio[11693]: Server: kamailio (5.1.2 (x86_64/linux))
   Apr 17 14:15:53 kamailio[11693]: Content-Length: 0
   Apr 17 14:15:53 kamailio[11693]: #015
   Apr 17 14:15:53 kamailio[11693]: >

FYI, our kamailios are behind a HAProxy used for load-balancing

Dimitry, did you succeed to fix it in your setup ?

Kind Regards,
Guillaume Bour.


On Fri, Jun 03, 2016 at 11:11:58AM +0000, Nagorny, Dimitry wrote:
>    Hi all,
> 
>     
> 
>    Got INVITE resolved, but the Errors described below persist.
> 
>     
> 
>     
> 
>    Best Regards
> 
>    Dimitry Nagorny
> 
>    Trainee
> 
>     
> 
>    Von: sr-users [mailto:sr-users-bounces at lists.sip-router.org] Im Auftrag
>    von Nagorny, Dimitry
>    Gesendet: Freitag, 3. Juni 2016 10:39
>    An: Kamailio (SER) - Users Mailing List <sr-users at lists.sip-router.org>
>    Betreff: Re: [SR-Users] Kamailio Websocket Questions
> 
>     
> 
>    Hello Daniel,
> 
>     
> 
>    Thank you very much for your response. Here the portions for my websocket
>    config. Of course all needed modules are loaded (one modparam for
>    websocket ping) and I took the config all from
>    http://kamailio.org/docs/modules/4.3.x/modules/websocket.html:
> 
>    onreply_route[WS_REPLY] {
> 
>                    if (nat_uac_test(64)) {
> 
>                                   add_contact_alias();
> 
>                    }
> 
>                    if (proto==WS) {
> 
>                                   xlog("L_INFO", "Hit Reply from Websocket");
> 
>                                   rtpengine_answer("trust-address ");
> 
>                    }
> 
>    }
> 
>    event_route[xhttp:request] {
> 
>                    set_reply_close();
> 
>                    set_reply_no_connect();
> 
>                   
> 
>                    if ($Rp != MY_INTERN_WSPORT){
> 
>                                   xlog("L_WARN", "HTTP request received on
>    $Rp\n");
> 
>                                   xhttp_reply("403", "Forbidden", "", "");
> 
>                                   exit;      
> 
>                    }
> 
>                    if ($hdr(Upgrade)=~"websocket" &&
>    $hdr(Connection)=~"Upgrade" && $rm=~"GET") {
> 
>                                   if ($hdr(Host) == $null ||
>    !is_myself("sip:" + $hdr(Host))) {
> 
>                                                   xlog("L_WARN", "Bad host
>    $hdr(Host)\n");
> 
>                                                   xhttp_reply("403",
>    "Forbidden", "", "");
> 
>                                                   exit;
> 
>                                   }
> 
>                                   if (ws_handle_handshake()) {
> 
>                                                   exit;
> 
>                                   }
> 
>                    }
> 
>                    xhttp_reply("404", "Not Found", "", "");
> 
>    }
> 
>    event_route[websocket:closed] {
> 
>                    xlog("L_INFO", "WebSocket connection from $si:$sp has
>    closed\n");
> 
>    }
> 
>     
> 
>    I have attached a debug log for the registration process over websocket,
>    on line 49 you can see the error.
> 
>     
> 
>    As for the INVITE I use now this:
> 
>    if ($rU=~"^3$" && src_ip==$sel(cfg_get.pstn.gw_ip)) {
> 
>                    $ru = "sip:dnagorny at 10.250.5.74";
> 
>                    uac_replace_to("sip:dnagorny at 10.250.5.74");
> 
>                    rtpengine_offer("external internal trust-address");
> 
>                    route(RELAY);
> 
>    }
> 
>     
> 
>    Unfortunately I can see now that Kamailio tries to send it out on
>    10.250.5.74:5060, which I am not even listening on. For the route(RELAY) I
>    use this:
> 
>    route[RELAY] {
> 
>                    if (is_method("INVITE")) {
> 
>                                   t_on_branch("MANAGE_BRANCH");
> 
>                                   if (proto==WS) {
> 
>                                                   t_on_reply("WS_REPLY");
> 
>                                   } else {
> 
>                                                   t_on_reply("MANAGE_REPLY");
> 
>                                   }
> 
>                                   t_on_failure("MANAGE_FAILURE");
> 
>                    }
> 
>                    if (is_method("CANCEL|BYE")) {
> 
>                                   rtpengine_delete();
> 
>                    }
> 
>                   
> 
>                    if (!t_relay()) {
> 
>                                   sl_reply_error();
> 
>                    }
> 
>                    exit;
> 
>    }
> 
>     
> 
>    Is t_relay for Websocket the right choice? I somehow have my doubts but
>    couldn’t find any suggestion in the documentation. Additional Info:
>    Outgoing calls from Websocket registered Users are working.
> 
>    Thanks for your time helping me out.
> 
>     
> 
>     
> 
>    Best Regards
> 
>    Dimitry Nagorny
> 
>    Trainee
> 
>     
> 
>    Von: sr-users [mailto:sr-users-bounces at lists.sip-router.org] Im Auftrag
>    von Daniel-Constantin Mierla
>    Gesendet: Freitag, 3. Juni 2016 08:36
>    An: Kamailio (SER) - Users Mailing List <sr-users at lists.sip-router.org>
>    Betreff: Re: [SR-Users] Kamailio Websocket Questions
> 
>     
> 
>    Hello,
> 
>    1. for websocket the connection has to be reused, the server cannot open a
>    connection towards the browser. So you don't have to force any socket, if
>    kamailio doesn't find the address matching the target ws address, then
>    will throw an error, otherwise will use it.
> 
>    2. have you enabled xhttp and websocket modules properly?
> 
>    Cheers,
>    Daniel
> 
>     
> 
>    On 02/06/16 17:13, Nagorny, Dimitry wrote:
> 
>      Hi List,
> 
>       
> 
>      two questions regarding Kamailio Websockets:
> 
>       
> 
>      1.       How do I send INVITE request TO the listening Websocket?
>      I usually used for UDP/TCP/TLS these format, but somehow this is not
>      working for Websocket because it gets in an endless loop:
>      if ($rU=~"^(\+|00|0)?[1-9][0-9]{4,20}$") {
> 
>                     $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip) +
>      ";user=phone;transport=udp";
> 
>                     force_send_socket(udp:MY_EXTERN_IP:MY_EXTERN_PORT);
> 
>                     rtpengine_offer("internal trust-address RTP AVP");
> 
>                     route(RELAY);
> 
>                     exit;
> 
>      }
> 
>      2.       Why do I get these errors every time my Websocket Client is
>      registering, but it still works and DB is inserted with registered
>      location:
> 
>      ERROR: <core> [parser/parse_fline.c:257]: parse_first_line():
>      parse_first_line: bad message (offset: 22)
> 
>      ERROR: <core> [parser/msg_parser.c:690]: parse_msg(): ERROR: parse_msg:
>      message=<HTTP/1.1 101 Switching Protocols#015#012Sia: SIP/2.0/TCP
>      10.250.5.17:51283#015#012Sec-WebSocket-Protocol: sip#015#012Upgrade:
>      websocket#015#012Connection: upgrade#015#012Sec-WebSocket-Accept:
>      6uLXlD/aBrzu/j3PYP3DWO7rvLE=#015#012Server: kamailio (4.3.5
>      (x86_64/linux))#015#012Content-Length: 0#015#012#015#012>
> 
>       
> 
>      I am using Kamailio 4.3.5 + CentOS 7.2. I appreciate every help I can
>      get.
> 
>       
> 
>       
> 
>      Best Regards
> 
>      Dimitry Nagorny
> 
>      Trainee
> 
>       
> 
>  _______________________________________________
> 
>  SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> 
>  sr-users at lists.sip-router.org
> 
>  http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
> 
>     
> 
>  --
> 
>  Daniel-Constantin Mierla
> 
>  http://www.asipto.com - http://www.kamailio.org
> 
>  http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

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




More information about the sr-users mailing list