<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I’m experiencing a problem regarding web socket registrations. I saw a similar thread but didn’t have a resolution so here we go. </div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Im using the 2.3 Branch with rtpengine , wss and mid registrar. Using Sip.js library I can register the client without a problem and also able to place calls thru an asterisk box without problems. To be exact, my setup is </div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Sip.JS ——> Opensips + rtpengine —-> Asterisk 1.3 —-> PSTN </div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">However, when trying to call the subscriber from asterisk (opposite direction), opensips fails to get a valid tcp connection. It complagreatins about not finding a suitable tcp and timing out to a TCP block 477/TM transaction. <br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">DBG:proto_wss:proto_wss_send: no open tcp connection found, opening new one<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><div>DBG:core:probe_max_sock_buff: getsockopt: snd is initially 16384</div><div>DBG:core:probe_max_sock_buff: trying : 32768</div><div>DBG:core:probe_max_sock_buff: setting snd: set=32768,verify=65536</div><div>DBG:core:probe_max_sock_buff: trying : 65536</div><div>DBG:core:probe_max_sock_buff: setting snd: set=65536,verify=131072</div><div>DBG:core:probe_max_sock_buff: trying : 131072</div><div>DBG:core:probe_max_sock_buff: setting snd: set=131072,verify=262144</div><div>DBG:core:probe_max_sock_buff: trying : 262144</div><div>DBG:core:probe_max_sock_buff: setting snd: set=262144,verify=425984</div><div>INFO:core:probe_max_sock_buff: using snd buffer of 416 kb</div><div>INFO:core:init_sock_keepalive: TCP keepalive enabled on socket 7</div><div><div>ERROR:core:tcp_connect_blocking: timeout 99198 ms elapsed from 100000 s</div><div>ERROR:proto_wss:ws_sync_connect: tcp_blocking_connect failed</div><div>ERROR:proto_wss:ws_connect: connect failed</div><div>ERROR:proto_wss:proto_wss_send: connect failed</div><div>ERROR:tm:msg_send: send() to <a href="http://192.0.2.48:443">192.0.2.48:443</a> for proto wss/6 failed</div><div>ERROR:tm:t_forward_nonack: sending request failed</div></div><div><br></div><div><div class="gmail_default">Whats interesting is that if I execute a constant <span style="color:rgb(102,102,102);font-family:"Lucida Console","Andale Mono","Courier New",Courier;font-size:0.9em;background-color:rgb(251,254,250)">opensipsctl fifo list_tcp_conns, </span>The connection never drops. </div><div class="gmail_default"><br></div><div class="gmail_default"><div class="gmail_default"><b>root@gcwRegistrar151:~$ opensipsctl fifo list_tcp_conns</b></div><div class="gmail_default">Connection::  ID=1189087375 Type=wss State=0 Source=<a href="http://192.168.91.2:60888">192.168.91.2:60888</a> Destination=<a href="http://10.101.10.151:443">10.101.10.151:443</a> Lifetime=2106-02-07 02:28:25</div><div><br></div><div><br></div><div>I tried seting the tcp_persistent_flag before the register and the NAT flag as well. Here is the AOR <br></div></div></div></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><div><div><br></div><div><div class="gmail_default"><b>This is the registration part. </b></div><div class="gmail_default"><b><br></b></div><div class="gmail_default"><div class="gmail_default"><br></div><div class="gmail_default">setflag(TCP_PERSIST_REGISTRATIONS);</div><div class="gmail_default">fix_nated_register();    <br></div><div class="gmail_default">setbflag(NAT_BFLAG);</div><div class="gmail_default"><br></div><div class="gmail_default">if (!db_check_to()){</div><div class="gmail_default">     xlog("L_INFO","$var(prefix) -  Forbidden auth ID  \n");</div><div class="gmail_default"><span style="white-space:pre">     </span>sl_send_reply("403","Forbidden auth ID"); </div><div class="gmail_default"><span style="white-space:pre">     </span>exit;</div><div class="gmail_default">}    </div><div><br></div><div><br></div></div><div class="gmail_default"><div class="gmail_default">mid_registrar_save("location", "mf"); </div><div class="gmail_default">    switch ($retcode) {</div><div class="gmail_default">    case 1:</div><div class="gmail_default">        xlog("L_INFO","$var(prefix) -  Registration Successfull (Forwarding) \n");</div><div class="gmail_default">        $ru = "sip:<a href="http://10.101.10.153:5060">10.101.10.153:5060</a>";</div><div class="gmail_default">        t_relay();</div><div class="gmail_default">        break;</div><div class="gmail_default">    case 2:</div><div class="gmail_default">        xlog("L_INFO","$var(prefix) -  Registration Successfull (absorbing) \n");</div><div class="gmail_default">        break;</div><div class="gmail_default">    default:</div><div class="gmail_default">        xlog("L_INFO","$var(prefix) -  failed to save registration! ($$ci=$ci)\n");</div><div class="gmail_default">        sl_reply_error();</div><div class="gmail_default">        exit;<span class="gmail-Apple-tab-span" style="white-space:pre">     </span></div><div class="gmail_default">    }           <span class="gmail-Apple-tab-span" style="white-space:pre">                       </span></div></div><div class="gmail_default"><br></div><div class="gmail_default"><br></div><div class="gmail_default" style="font-family:arial,sans-serif"><b><font face="tahoma, sans-serif">And here is the lookup part.</font></b></div><div class="gmail_default"><br></div><div class="gmail_default"><div class="gmail_default">if (mid_registrar_lookup("location", "m")){</div><div class="gmail_default"><span style="white-space:pre">      </span>xlog("L_INFO","$var(prefix) -  Call is for local user $rU , forwarding ... \n");</div><div class="gmail_default"><span style="white-space:pre">      </span>route(inbound_call);<span class="gmail-Apple-tab-span" style="white-space:pre">                </span></div><div class="gmail_default">}</div><div class="gmail_default"><br></div></div></div><div>Domain:: location hash_size=512</div><div>     <b>   AOR:: <a href="mailto:agent@gcwregistrar.domain.com">agent@gcwregistrar.domain.com</a></b></div><div>                Contact:: <a href="mailto:sip%3Abcd9bu7j@192.0.2.37">sip:bcd9bu7j@192.0.2.37</a>;transport=wss Q=</div><div>                        ContactID:: 1722063907515827933</div><div>                        Expires:: 352</div><div>                        Callid:: 4oqvt7es6ga8pqd8ei7nt0</div><div>                        Cseq:: 193</div><div>                        User-agent:: SIP.js/0.7.8 BB</div><div>                        State:: CS_NEW</div><div>                        Flags:: 0</div><div>                        Cflags:: NAT_BFLAG</div><div>                        Socket:: wss:<a href="http://10.101.10.151:443">10.101.10.151:443</a></div><div>                        Methods:: 5439</div><div>                        SIP_instance:: <urn:uuid:07e6eb5c-2294-42a1-b263-a00642b0c277></div></div><div><br></div><div><br></div><div><br></div><div>I don’t think its related to the mid registrar since I tried just using the regular registrar and the same thing happens. </div><div><br></div><div>Any ideas? </div><div><br></div><div>Thanks </div><div><br></div><div><br></div><div><br></div></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div></div>