<div dir="ltr">Hi,<div><br></div><div>I am trying to configure MSRP over websocket and using Crocodilr-msrp client for connecting the same but when I try to transfer any file it gives me the below error.</div><div><br></div><div>Any thoughts is appreciated.</div><div><br></div><div>I am able to do audio, vedio and messaging using SIP-JSSIP client and working fine.</div><div><br></div><div>Error - Log</div><div>--------------</div><div>







<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: tls [tls_server.c:208]: tls_complete_init(): Using initial TLS domain TLSc<default> (dom 0x7f35500d4858 ctx 0x7f355013d620 sn [])</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: tls [tls_domain.c:701]: sr_ssl_ctx_info_callback(): SSL handshake started</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: ERROR: <core> [tcp_main.c:2654]: tcpconn_1st_send(): connect <a href="http://10.205.64.24:8084">10.205.64.24:8084</a> failed (RST) Connection refused</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: ERROR: <core> [tcp_main.c:2664]: tcpconn_1st_send(): <a href="http://10.205.64.24:8084">10.205.64.24:8084</a>: connect & send  for 0x7f35501bca20 failed: Connection refused (111)</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: <core> [tcp_main.c:2858]: tcpconn_chld_put(): destroying connection 0x7f35501bca20 (24, -1) flags 0060</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: ERROR: msrp [msrp_netio.c:178]: msrp_relay(): forwarding frame failed</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: exec: *** cfgtrace:request_route=[DEFAULT_EVENT] c=[/usr/local/etc/kamailio/kamailio.cfg] l=1202 a=2 n=exit</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: <core> [tcp_read.c:1153]: ws_process_msg(): WebSocket Message: [[>>>#012??#011?i#036'?$Mu?Ik#022?#001,I?#005>t?'Z*?=q#012?#010jO?IsT?#031m#035?F/#027?[.#022?_*#011?]$#037?Q*#010?G/#027?\&#011?G+#021?]*#020?^*#034?#012n#007?#032lW?S1#010?Y0#025?\0#021?G,#023?Q.#037?Fm#011?Y*#022?G)#011?P)#021?\(#021?RjD?IsT?#031$#010?<<<]]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: websocket [ws_conn.c:429]: wsconn_get(): wsconn_get for id [22]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: websocket [ws_conn.c:437]: wsconn_get(): wsconn_get returns wsc [0x7f3550140930] refcnt [2]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: websocket [ws_frame.c:415]: decode_and_validate_ws_frame(): decoding WebSocket frame</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: websocket [ws_frame.c:456]: decode_and_validate_ws_frame(): supported non-control frame: 0x2</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: websocket [ws_frame.c:555]: decode_and_validate_ws_frame(): Rx (decoded): MSRP u5xh2ntl SEND#015#012To-Path: msrps://<a href="http://10.205.64.24:8084/s.10458.4.561447274;tcp">10.205.64.24:8084/s.10458.4.561447274;tcp</a> msrps://<a href="http://10.205.64.24:8084/s.10453.7.297645663;tcp">10.205.64.24:8084/s.10453.7.297645663;tcp</a> msrp://i64fn3tc.invalid:2855/g14o60krz6;ws#015#012From-Path: msrp://grtsrfd0.invalid:2855/505z40k5b1;ws#015#012Message-ID: 3652053096.cr4l1e1q#015#012Success-Report: yes#015#012Failure-Report: yes#015#012Byte-Range: 2049-4096/68240#015#012Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document#015#012#015#012</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: websocket [ws_frame.c:671]: ws_frame_receive(): Rx MSRP frame:#012MSRP u5xh2ntl SEND#015#012To-Path: msrps://<a href="http://10.205.64.24:8084/s.10458.4.561447274;tcp">10.205.64.24:8084/s.10458.4.561447274;tcp</a> msrps://<a href="http://10.205.64.24:8084/s.10453.7.297645663;tcp">10.205.64.24:8084/s.10453.7.297645663;tcp</a> msrp://i64fn3tc.invalid:2855/g14o60krz6;ws#015#012From-Path: msrp://grtsrfd0.invalid:2855/505z40k5b1;ws#015#012Message-ID: 3652053096.cr4l1e1q#015#012Success-Report: yes#015#012Failure-Report: yes#015#012Byte-Range: 2049-4096/68240#015#012Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document#015#012#015#012</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: websocket [ws_conn.c:382]: wsconn_put(): wsconn_put start for [0x7f3550140930] refcnt [2]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: websocket [ws_conn.c:415]: wsconn_put(): wsconn_put end for [0x7f3550140930] refcnt [1]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:171]: msrp_parse_fline(): MSRP FLine: [1] [MSRP] [u5xh2ntl] [SEND] [1] []</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:327]: msrp_parse_headers(): MSRP Header: (0x7f3558c0d1b8) [To-Path] [2] [msrps://<a href="http://10.205.64.24:8084/s.10458.4.561447274;tcp">10.205.64.24:8084/s.10458.4.561447274;tcp</a> msrps://<a href="http://10.205.64.24:8084/s.10453.7.297645663;tcp">10.205.64.24:8084/s.10453.7.297645663;tcp</a> msrp://i64fn3tc.invalid:2855/g14o60krz6;ws]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:327]: msrp_parse_headers(): MSRP Header: (0x7f3558c0c918) [From-Path] [1] [msrp://grtsrfd0.invalid:2855/505z40k5b1;ws]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:327]: msrp_parse_headers(): MSRP Header: (0x7f3558c0ed80) [Message-ID] [4] [3652053096.cr4l1e1q]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:327]: msrp_parse_headers(): MSRP Header: (0x7f3558c0ee10) [Success-Report] [7] [yes]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:327]: msrp_parse_headers(): MSRP Header: (0x7f3558c1a868) [Failure-Report] [0] [yes]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:327]: msrp_parse_headers(): MSRP Header: (0x7f3558c0c9a8) [Byte-Range] [5] [2049-4096/68240]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:327]: msrp_parse_headers(): MSRP Header: (0x7f3558c107d8) [Content-Type] [8] [application/vnd.openxmlformats-officedocument.wordprocessingml.document]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_parser.c:356]: msrp_parse_headers(): MSRP Body: [2050] [[#012#012]]</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: msrp [msrp_mod.c:468]: msrp_frame_received(): executing event_route[msrp:frame-in] (3)</span></p>
<p class=""><span class="">Sep 23 23:11:36 ip-10-205-64-24 kamailio[10460]: DEBUG: <core> [parser/msg_par</span></p><p class="">***********<br>Kamailio.cfg<br>****************</p><p class="">                #!ifdef WITH_MSRP</p><p class="">event_route[msrp:frame-in] {</p><p class="">        msrp_reply_flags("1");</p><p class=""><br></p><p class="">        if ((($Rp == MY_WS_PORT || $Rp == MY_WSS_PORT)</p><p class="">                && !(proto == WS || proto == WSS)) && $Rp != MY_MSRP_PORT) {</p><p class="">                xlog("L_WARN", "MSRP request received on $Rp\n");</p><p class="">                msrp_reply("403", "Action-not-allowed");</p><p class="">                exit;</p><p class="">        }</p><p class=""><br></p><p class="">        if (msrp_is_reply()) {</p><p class="">                msrp_relay();</p><p class="">        } else if($msrp(method)=="AUTH") {</p><p class="">                if($msrp(nexthops)>0) {</p><p class="">                        msrp_relay();</p><p class="">                        exit;</p><p class="">                }</p><p class=""><br></p><p class="">                if (!www_authenticate("MY_DOMAIN", "subscriber",</p><p class="">                                        "$msrp(method)")) {</p><p class="">                        if (auth_get_www_authenticate("MY_DOMAIN", "1",</p><p class="">                                                        "$var(wauth)")) {</p><p class="">                                msrp_reply("401", "Unauthorized",</p><p class="">                                                        "$var(wauth)");</p><p class="">                        } else {</p><p class="">                                msrp_reply("500", "Server Error");</p><p class="">                        }</p><p class="">                        exit;</p><p class="">                }</p><p class="">                </p><p class="">                if ($hdr(Expires) != $null) {</p><p class="">                        $var(expires) = (int) $hdr(Expires);</p><p class="">                        if ($var(expires) < MSRP_MIN_EXPIRES) {</p><p class="">                                msrp_reply("423", "Interval Out-of-Bounds",</p><p class="">                                        "Min-Expires: MSRP_MIN_EXPIRES\r\n");</p><p class="">                                exit;</p><p class="">                        } else if ($var(expires) > MSRP_MAX_EXPIRES) {</p><p class="">                                msrp_reply("423", "Interval Out-of-Bounds",</p><p class="">                                        "Max-Expires: MSRP_MAX_EXPIRES\r\n");</p><p class="">                                exit;</p><p class="">                        }</p><p class="">                } else {</p><p class="">                        $var(expires) = MSRP_MAX_EXPIRES;</p><p class="">                }</p><p class=""><br></p><p class="">                $var(cnt) = $var(cnt) + 1;</p><p class="">                pv_printf("$var(sessid)", "s.$(pp).$(var(cnt)).$(RANDOM)");</p><p class="">                $sht(msrp=>$var(sessid)::srcaddr) = $msrp(srcaddr);</p><p class="">                $sht(msrp=>$var(sessid)::srcsock) = $msrp(srcsock);</p><p class="">                $shtex(msrp=>$var(sessid)) = $var(expires) + 5;</p><p class="">                # - Use-Path: the MSRP address for server + session id</p><p class="">                $var(hdrs) = "Use-Path: msrps://MY_IP_ADDR:MY_MSRP_PORT/"</p><p class="">                                        + $var(sessid) + ";tcp\r\n"</p><p class="">                                        + "Expires: " + $var(expires) + "\r\n";</p><p class="">                msrp_reply("200", "OK", "$var(hdrs)");</p><p class="">        } else if ($msrp(method)=="SEND" || $msrp(method)=="REPORT") {</p><p class="">                if ($msrp(nexthops)>1) {</p><p class="">                        if ($msrp(method)!="REPORT") {</p><p class="">                                msrp_reply("200", "OK");</p><p class="">                        }</p><p class="">                        msrp_relay();</p><p class="">                        exit;</p><p class="">                }</p><p class="">                $var(sessid) = $msrp(sessid);</p><p class="">                if ($sht(msrp=>$var(sessid)::srcaddr) == $null) {</p><p class="">                        # one more hop, but we don't have address in htable</p><p class="">                        msrp_reply("481", "Session-does-not-exist");</p><p class="">                        exit;</p><p class="">                } else if ($msrp(method)!="REPORT") {</p><p class="">                        msrp_reply("200", "OK");</p><p class="">                }</p><p class="">                msrp_relay_flags("1");</p><p class="">                msrp_set_dst("$sht(msrp=>$var(sessid)::srcaddr)",</p><p class="">                                "$sht(msrp=>$var(sessid)::srcsock)");</p><p class="">                msrp_relay();</p><p class="">        } else {</p><p class="">                msrp_reply("501", "Request-method-not-understood");</p><p class="">        }</p><p class="">}</p><p class=""><br></p><p class="">Thanks,<br>Vamsi</p></div></div>