<div dir="ltr"><div><div><div><div><div>Hello Colin:<br><br></div>Thanks a lot! It solved the issue. Though I had got a hint by succeeding to specify the address using <b><span style="color:rgb(0,0,255)">kamailio -l desired address/port</span> </b>option, yet never noticed the lack of <span style="color:rgb(0,0,255)"><b>MY-WS_ADDRESS</b></span><br><br></div>Last, but not the least, in a browser supporting WEBRTC (FF, CHROME) do we still need SIP ML5    as on:  <a href="https://www.doubango.org/sipml5/">https://www.doubango.org/sipml5/</a><br><br></div>If not, I wonder how will the WS or WSS URL post the login credentials to the KAMAILIO WEBRTC server? <br><br></div>BR,<br></div><div><br></div>Zaka<br><br><div><div class="gmail_extra"><br><div class="gmail_quote">On 16 July 2016 at 18:11, Colin Morelli <span dir="ltr"><<a href="mailto:colin.morelli@gmail.com" target="_blank">colin.morelli@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Zaka,<div><br></div><div>I could be wrong here but I don't think you ever actually have a "listen" line for MY_WS_ADDR.</div><div><br></div><div>I believe you have a typo, as you have listen=MY_IP_ADDR twice, once within the guard for WITH_WEBSOCKETS. Replace the one inside the if with MY_WS_ADDR and I think your problem should be resolved.</div><div><br></div><div>Best,</div><div>Colin</div></div><br><div class="gmail_quote"><div><div class="h5"><div dir="ltr">On Sat, Jul 16, 2016 at 3:36 AM Zaka <<a href="mailto:zaka.bhatti@gmail.com" target="_blank">zaka.bhatti@gmail.com</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div>Dear List:<br><br></div>I am still stuck. Still unable to get Kamailio to listen on WEBRTC port<b> (in this case 8000)</b><br clear="all"><div><div><br></div><div>Please advise if it has something to do with disabling TLS/MSRP?<br><br><br></div><div>Please see the log & related config file in line here:<br><br></div><div><span style="color:rgb(0,0,255)"><b>Log:</b></span><br></div><div><br> <span style="color:rgb(255,0,0)">0(5724) INFO: <core> [ppcfg.c:82]: pp_subst_add(): ### added subst expression: !MY_WS_PORT!8000!g<br><br><br></span></div><div><span style="color:rgb(255,0,0)"><b><span style="color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">and the result of config file check:</span></span></b><br><br>root@callcntr:/usr/local/etc/kamailio# kamailio -eE -ddd -cf /usr/local/etc/kamailio/websocket.cfg <br> 0(5902) INFO: <core> [main.c:1911]: main(): private (per process) memory: 8388608 bytes<br> 0(5902) DEBUG: <core> [mem/f_malloc.c:323]: fm_malloc_init(): fm_malloc_init: F_OPTIMIZE=16384, /ROUNDTO=2048<br> 0(5902) DEBUG: <core> [mem/f_malloc.c:325]: fm_malloc_init(): fm_malloc_init: F_HASH_SIZE=2099, fm_block size=33912<br> 0(5902) DEBUG: <core> [mem/f_malloc.c:327]: fm_malloc_init(): fm_malloc_init(0x7f9ca6e1f010, 8388608), start=0x7f9ca6e1f010<br> 0(5902) DEBUG: <core> [route.c:129]: route_add(): mapping routing block (0xac2700)[0] to 0<br> 0(5902) DEBUG: <core> [route.c:129]: route_add(): mapping routing block (0xac2680)[0] to 0<br> 0(5902) DEBUG: <core> [route.c:129]: route_add(): mapping routing block (0xac26c0)[0] to 0<br> 0(5902) DEBUG: <core> [route.c:129]: route_add(): mapping routing block (0xac2720)[0] to 0<br> 0(5902) DEBUG: <core> [route.c:129]: route_add(): mapping routing block (0xac26a0)[0] to 0<br> 0(5902) DEBUG: <core> [route.c:129]: route_add(): mapping routing block (0xac26e0)[0] to 0<br> 0(5902) DEBUG: <core> [pvapi.c:1976]: pv_init_buffer(): PV print buffer initialized to [10][8192]<br> 0(5902) DEBUG: <core> [main.c:2097]: main(): read 286773155 from /dev/urandom<br> 0(5902) DEBUG: <core> [main.c:2103]: main(): seeding PRNG with 1755363211<br> 0(5902) DEBUG: <core> [main.c:2107]: main(): test random numbers 726213135 321707966 991183401<br> 0(5902) DEBUG: <core> [re.c:313]: subst_parser(): ok, se is 0x7f9ca6e3fc48<br> 0(5902) INFO: <core> [ppcfg.c:82]: pp_subst_add(): ### added subst expression: !DBURL!mysql://kamailio:kamailiorw@localhost/kamailio!g<br> 0(5902) DEBUG: <core> [cfg.lex:1690]: pp_define(): defining id: DBURL<br> 0(5902) DEBUG: <core> [cfg.lex:1776]: pp_define_set(): ### setting define ID [DBURL] value [mysql://kamailio:kamailiorw@localhost/kamailio]<br> 0(5902) DEBUG: <core> [ppcfg.c:160]: pp_substdef_add(): ### added substdef: [DBURL]=[mysql://kamailio:kamailiorw@localhost/kamailio] (0)<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:313]: subst_parser(): ok, se is 0x7f9ca6e3ffe8<br> 0(5902) INFO: <core> [ppcfg.c:82]: pp_subst_add(): ### added subst expression: !MY_IP_ADDR!192.168.1.16!g<br> 0(5902) DEBUG: <core> [cfg.lex:1690]: pp_define(): defining id: MY_IP_ADDR<br> 0(5902) DEBUG: <core> [cfg.lex:1776]: pp_define_set(): ### setting define ID [MY_IP_ADDR] value [192.168.1.16]<br> 0(5902) DEBUG: <core> [ppcfg.c:160]: pp_substdef_add(): ### added substdef: [MY_IP_ADDR]=[192.168.1.16] (0)<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:313]: subst_parser(): ok, se is 0x7f9ca6e40320<br> 0(5902) INFO: <core> [ppcfg.c:82]: pp_subst_add(): ### added subst expression: !MY_DOMAIN!<a href="http://callcntr.com.al" target="_blank">callcntr.com.al</a>!g<br> 0(5902) DEBUG: <core> [cfg.lex:1690]: pp_define(): defining id: MY_DOMAIN<br> 0(5902) DEBUG: <core> [cfg.lex:1776]: pp_define_set(): ### setting define ID [MY_DOMAIN] value [<a href="http://callcntr.com.al" target="_blank">callcntr.com.al</a>]<br> 0(5902) DEBUG: <core> [ppcfg.c:160]: pp_substdef_add(): ### added substdef: [MY_DOMAIN]=[<a href="http://callcntr.com.al" target="_blank">callcntr.com.al</a>] (0)<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:313]: subst_parser(): ok, se is 0x7f9ca6e40658<br> 0(5902) INFO: <core> [ppcfg.c:82]: pp_subst_add(): ### added subst expression: !MY_WS_PORT!8000!g<br> 0(5902) DEBUG: <core> [cfg.lex:1690]: pp_define(): defining id: MY_WS_PORT<br> 0(5902) DEBUG: <core> [cfg.lex:1776]: pp_define_set(): ### setting define ID [MY_WS_PORT] value [8000]<br> 0(5902) DEBUG: <core> [ppcfg.c:160]: pp_substdef_add(): ### added substdef: [MY_WS_PORT]=[8000] (0)<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:313]: subst_parser(): ok, se is 0x7f9ca6e40988<br> 0(5902) INFO: <core> [ppcfg.c:82]: pp_subst_add(): ### added subst expression: !MY_WSS_PORT!443!g<br> 0(5902) DEBUG: <core> [cfg.lex:1690]: pp_define(): defining id: MY_WSS_PORT<br> 0(5902) DEBUG: <core> [cfg.lex:1776]: pp_define_set(): ### setting define ID [MY_WSS_PORT] value [443]<br> 0(5902) DEBUG: <core> [ppcfg.c:160]: pp_substdef_add(): ### added substdef: [MY_WSS_PORT]=[443] (0)<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:313]: subst_parser(): ok, se is 0x7f9ca6e40cb8<br> 0(5902) INFO: <core> [ppcfg.c:82]: pp_subst_add(): ### added subst expression: !MY_MSRP_PORT!9000!g<br> 0(5902) DEBUG: <core> [cfg.lex:1690]: pp_define(): defining id: MY_MSRP_PORT<br> 0(5902) DEBUG: <core> [cfg.lex:1776]: pp_define_set(): ### setting define ID [MY_MSRP_PORT] value [9000]<br> 0(5902) DEBUG: <core> [ppcfg.c:160]: pp_substdef_add(): ### added substdef: [MY_MSRP_PORT]=[9000] (0)<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=0<br> 0(5902) DEBUG: <core> [re.c:455]: subst_run(): matched (16, 10): [MY_IP_ADDR]<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [ppcfg.c:192]: pp_subst_run(): preprocess subst applied [#1] to [!MY_WS_ADDR!tcp:MY_IP_ADDR:MY_WS_PORT!g] - returning new string [!MY_WS_ADDR!tcp:192.168.1.16:MY_WS_PORT!g]<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=0<br> 0(5902) DEBUG: <core> [re.c:455]: subst_run(): matched (29, 10): [MY_WS_PORT]<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [ppcfg.c:192]: pp_subst_run(): preprocess subst applied [#2] to [!MY_WS_ADDR!tcp:192.168.1.16:MY_WS_PORT!g] - returning new string [!MY_WS_ADDR!tcp:192.168.1.16:8000!g]<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:436]: subst_run(): running. r=1<br> 0(5902) DEBUG: <core> [re.c:505]: subst_str(): no match<br> 0(5902) DEBUG: <core> [re.c:313]: subst_parser(): ok, se is 0x7f9ca6e41118<br> 0(5902) INFO: <core> [ppcfg.c:82]: pp_subst_add(): ### added subst expression: !MY_WS_ADDR!tcp:192.168.1.16:8000!g<br> 0(5902) DEBUG: <core> [cfg.lex:1690]: pp_define(): defining id: MY_WS_ADDR<br> 0(5902) DEBUG: <core> [cfg.lex:1776]: pp_define_set(): ### setting define ID [MY_WS_ADDR] value [tcp:<a href="http://192.168.1.16:8000" target="_blank">192.168.1.16:8000</a>]<br> 0(5902) DEBUG: <core> [ppcfg.c:160]: pp_substdef_add(): ### added substdef: [MY_WS_ADDR]=[tcp:<a href="http://192.168.1.16:8000" target="_blank">192.168.1.16:8000</a>] (0)<br> 0(5902) DEBUG: <core> [cfg.lex:1690]: pp_define(): defining id: WITH_WEBSOCKETS<br> 0(5902) DEBUG: <core> [cfg.lex:1795]: pp_define_get(): ### returning define ID [MY_IP_ADDR] value [192.168.1.16]<br> 0(5902) DEBUG: <core> [cfg.lex:1795]: pp_define_get(): ### returning define ID [MY_IP_ADDR] value [192.168.1.16]<br>loading modules under config path: /usr/local/lib64/kamailio/modules/<br> 0(5902) DEBUG: <core> [ppcfg.c:223]: pp_ifdef_level_check(): same number of pairing preprocessor directives #!IF[N]DEF - #!ENDIF<br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl():  routing table 0:<br> 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d808> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "L_WARN" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e443b8> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "403" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:347]: print_action(): route( 0(5902) DEBUG: <core> [route_struct.c:452]: print_action(): "REQINIT" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:421]: print_action(): force_rport( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<0> 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e50ff0> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d808> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "L_ERR" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e443b8> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "400" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:347]: print_action(): route( 0(5902) DEBUG: <core> [route_struct.c:452]: print_action(): "WITHINDLG" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e42f78> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e43950> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:347]: print_action(): route( 0(5902) DEBUG: <core> [route_struct.c:452]: print_action(): "AUTH" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4c350> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:543]: print_action(): , type<22> 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e44968> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:347]: print_action(): route( 0(5902) DEBUG: <core> [route_struct.c:452]: print_action(): "REGISTRAR" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e443b8> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "484" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:347]: print_action(): route( 0(5902) DEBUG: <core> [route_struct.c:452]: print_action(): "LOCATION" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:347]: print_action(): route( 0(5902) DEBUG: <core> [route_struct.c:452]: print_action(): "RELAY" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl():  routing table 1:<br> 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e44460> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl():  routing table 2:<br> 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e443b8> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "483" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d7d0> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "Malformed SIP message from $si:$sp<br>" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4cdb0> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl():  routing table 3:<br> 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d808> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "L_ERR" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e443b8> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "400" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:347]: print_action(): route( 0(5902) DEBUG: <core> [route_struct.c:452]: print_action(): "RELAY" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e42f78> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e443b8> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "404" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl():  routing table 4:<br> 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e44460> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl():  routing table 5:<br> 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e42a70> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e44428> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "404" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:442]: print_action(): assign( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<21> 0(5902) DEBUG: <core> [route_struct.c:517]: print_action(): , type<22> 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e42a70> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:448]: print_action(): UNKNOWN( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:517]: print_action(): , type<24> 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl():  routing table 6:<br> 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4e8b8> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "$fd" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4e810> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e443b8> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "403" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl(): onreply routing table 0:<br> 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d808> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "L_WARN" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 0 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 9 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e50e68> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 0 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl(): event routing table 1:<br> 0(5902) DEBUG: <core> [route_struct.c:448]: print_action(): UNKNOWN( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<0> 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:448]: print_action(): UNKNOWN( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<0> 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d808> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "L_WARN" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e50660> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 4 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "403" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d808> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "L_DBG" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d808> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "L_WARN" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e50660> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 4 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "403" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:401]: print_action(): if ( 0(5902) DEBUG: <core> [route_struct.c:483]: print_action(): type<22> 0(5902) DEBUG: <core> [route_struct.c:485]: print_action(): ) { 0(5902) DEBUG: <core> [route_struct.c:338]: print_action(): drop( 0(5902) DEBUG: <core> [route_struct.c:455]: print_action(): 1 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 1 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:519]: print_action(): } else { 0(5902) DEBUG: <core> [route_struct.c:545]: print_action(): };  0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e50660> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 4 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "404" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:2132]: print_rl(): event routing table 2:<br> 0(5902) DEBUG: <core> [route_struct.c:418]: print_action():  external_module_call( 0(5902) DEBUG: <core> [route_struct.c:467]: print_action(): f_ptr<0x7f9ca6e4d808> 0(5902) DEBUG: <core> [route_struct.c:493]: print_action(): , 2 0(5902) DEBUG: <core> [route_struct.c:524]: print_action(): , "L_INFO" 0(5902) DEBUG: <core> [route_struct.c:546]: print_action(): );  0(5902) DEBUG: <core> [route.c:2134]: print_rl(): <br> 0(5902) DEBUG: <core> [route.c:129]: route_add(): mapping routing block (0xac26e0)[core:receive-parse-error] to 3<br> 0(5902) INFO: <core> [sctp_core.c:74]: sctp_core_check_support(): SCTP API not enabled - if you want to use it, load sctp module<br>Listening on <br>             udp: <a href="http://192.168.1.16:5060" target="_blank">192.168.1.16:5060</a><br>             tcp: <a href="http://192.168.1.16:5060" target="_blank">192.168.1.16:5060</a><br>Aliases: <br>             tcp: callcntr:5060<br>             udp: callcntr:5060<br><br>config file ok, exiting...<br>root@callcntr:/usr/local/etc/kamailio# <br><br><br></span></div><div><br></div><div><b><span style="color:rgb(0,0,255)">Config File:<span style="background-color:rgb(255,255,255)"><span></span></span></span></b><br></div><div><br>#!KAMAILIO<br>#<br># Simple/sample kamailio.cfg for running a proxy/registrar with TLS and<br># WebSockets support.<br><br>#!substdef "!DBURL!mysql://kamailio:kamailiorw@localhost/kamailio!g"<br>#!substdef "!MY_IP_ADDR!192.168.1.16!g"<br>#!substdef "!MY_DOMAIN!<a href="http://callcntr.com.al" target="_blank">callcntr.com.al</a>!g"<br>#!substdef "!MY_WS_PORT!8000!g"<br>#!substdef "!MY_WSS_PORT!443!g"<br>#!substdef "!MY_MSRP_PORT!9000!g"<br>#!substdef "!MY_WS_ADDR!tcp:MY_IP_ADDR:MY_WS_PORT!g"<br>##!substdef "!MY_WSS_ADDR!tls:MY_IP_ADDR:MY_WSS_PORT!g"<br>##!substdef "!MY_MSRP_ADDR!tls:MY_IP_ADDR:MY_MSRP_PORT!g"<br>##!substdef "!MSRP_MIN_EXPIRES!1800!g"<br>##!substdef "!MSRP_MAX_EXPIRES!3600!g"<br><br>##!define LOCAL_TEST_RUN<br>##!define WITH_TLS<br>#!define WITH_WEBSOCKETS<br>##!define WITH_MSRP<br><br><br>####### Global Parameters #########<br><br>fork=yes<br>children=4<br><br>#!ifdef WITH_TLS<br>enable_tls=1<br>#!endif<br><br>listen=MY_IP_ADDR<br>#!ifdef WITH_WEBSOCKETS<br>listen=MY_IP_ADDR<br>#!ifdef WITH_TLS<br>#listen=MY_WSS_ADDR<br>#!endif<br>#!endif<br>#!ifdef WITH_MSRP<br>listen=MY_MSRP_ADDR<br>#!endif<br><br>tcp_connection_lifetime=3604<br>tcp_accept_no_cl=yes<br>tcp_rd_buf_size=16384<br><br>#!ifdef LOCAL_TEST_RUN<br>debug=2<br>mpath="modules"<br>#!else<br>debug=0<br>mpath="/usr/local/lib64/kamailio/modules/"<br>#!endif<br><br>loadmodule "db_mysql.so"<br>loadmodule "tm.so"<br>loadmodule "sl.so"<br>loadmodule "rr.so"<br>loadmodule "pv.so"<br>loadmodule "maxfwd.so"<br>loadmodule "usrloc.so"<br>loadmodule "registrar.so"<br>loadmodule "textops.so"<br>loadmodule "siputils.so"<br>loadmodule "xlog.so"<br>loadmodule "sanity.so"<br>loadmodule "ctl.so"<br>loadmodule "auth.so"<br>loadmodule "auth_db.so"<br>loadmodule "kex.so"<br>loadmodule "mi_rpc.so"<br>loadmodule "corex.so"<br>#!ifdef WITH_TLS<br>loadmodule "tls.so"<br>#!endif<br>#!ifdef WITH_MSRP<br>loadmodule "msrp.so"<br>loadmodule "htable.so"<br>loadmodule "cfgutils.so"<br>#!endif<br>#!ifdef WITH_WEBSOCKETS<br>loadmodule "xhttp.so"<br>loadmodule "websocket.so"<br>loadmodule "nathelper.so"<br>#!endif<br><br><br>#!ifdef WITH_WEBSOCKETS<br># ----- nathelper params -----<br>modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")<br># Note: leaving NAT pings turned off here as nathelper is _only_ being used for<br>#       WebSocket connections.  NAT pings are not needed as WebSockets have<br>#       their own keep-alives.<br>#!endif<br><br><br>####### Routing Logic ########<br><br># Main SIP request routing logic<br># - processing of any incoming SIP request starts with this route<br># - note: this is the same as route { ... }<br>request_route {<br><span style="color:rgb(255,0,0)"><b>    if (($Rp == MY_WS_PORT)) {                            <br><br></b></span></div><div><span style="color:rgb(255,0,0)"><b>#### I deleted/ modified this logical expression ####<br></b></span></div><div><span style="color:rgb(255,0,0)"><b><br></b></span>        xlog("L_WARN", "SIP request received on $Rp\n");<br>        sl_send_reply("403", "Forbidden");<br>        exit;<br>    }<br><br>    # per request initial checks<br>    route(REQINIT);<br><br>#!ifdef WITH_WEBSOCKETS<br>    if (nat_uac_test(64)) {<br>        # Do NAT traversal stuff for requests from a WebSocket<br>        # connection - even if it is not behind a NAT!<br>        # This won't be needed in the future if Kamailio and the<br>        # WebSocket client support Outbound and Path.<br>        force_rport();<br>        if (is_method("REGISTER")) {<br>            fix_nated_register();<br>        } else {<br>            if (!add_contact_alias()) {<br>                xlog("L_ERR", "Error aliasing contact <$ct>\n");<br>                sl_send_reply("400", "Bad Request");<br>                exit;<br>            }<br>        }<br>    }<br>#!endif<br><br>    # handle requests within SIP dialogs<br>    route(WITHINDLG);<br><br>    ### only initial requests (no To tag)<br><br>    # CANCEL processing<br>    if (is_method("CANCEL")) {<br>        if (t_check_trans()) {<br>            t_relay();<br>        }<br>        exit;<br>    }<br><br>    t_check_trans();<br><br>    # authentication<br>    route(AUTH);<br><br>    # record routing for dialog forming requests (in case they are routed)<br>    # - remove preloaded route headers<br>    remove_hf("Route");<br>    if (is_method("INVITE")) {<br>        record_route();<br>    }<br><br>    # handle registrations<br>    route(REGISTRAR);<br><br>    if ($rU==$null) {<br>        # request with no Username in RURI<br>        sl_send_reply("484", "Address Incomplete");<br>        exit;<br>    }<br><br>    # user location service<br>    route(LOCATION);<br><br>    route(RELAY);<br>}<br><br>route[RELAY] {<br>    if (!t_relay()) {<br>        sl_reply_error();<br>    }<br>    exit;<br>}<br><br># Per SIP request initial checks<br>route[REQINIT] {<br>    if (!mf_process_maxfwd_header("10")) {<br>        sl_send_reply("483", "Too Many Hops");<br>        exit;<br>    }<br><br>    if (!sanity_check("1511", "7")) {<br>        xlog("Malformed SIP message from $si:$sp\n");<br>        exit;<br>    }<br><br>    if (uri == myself && is_method("OPTIONS") && !(uri=~"sip:.*[@]+.*")) {<br>        options_reply();<br>        exit;<br>    }<br>}<br><br># Handle requests within SIP dialogs<br>route[WITHINDLG] {<br>    if (has_totag()) {<br>        # sequential request withing a dialog should<br>        # take the path determined by record-routing<br>        if (loose_route()) {<br>#!ifdef WITH_WEBSOCKETS<br>            if ($du == "") {<br>                if (!handle_ruri_alias()) {<br>                    xlog("L_ERR", "Bad alias <$ru>\n");<br>                    sl_send_reply("400", "Bad Request");<br>                    exit;<br>                }<br>            }<br>#!endif<br>            route(RELAY);<br>        } else {<br>            if ( is_method("ACK") ) {<br>                if ( t_check_trans() ) {<br>                    # no loose-route, but stateful ACK;<br>                    # must be an ACK after a 487<br>                    # or e.g. 404 from upstream server<br>                    t_relay();<br>                    exit;<br>                } else {<br>                    # ACK without matching transaction...<br>                    # ignore and discard<br>                    exit;<br>                }<br>            }<br>            sl_send_reply("404", "Not Found");<br>        }<br>        exit;<br>    }<br>}<br><br># Handle SIP registrations<br>route[REGISTRAR] {<br>    if (is_method("REGISTER")) {<br>        if (!save("location")) {<br>            sl_reply_error();<br>        }<br>        exit;<br>    }<br>}<br><br># USER location service<br>route[LOCATION] {<br>    if (!is_subscriber("$ru", "subscriber", "1")) {<br>        t_newtran();<br>        send_reply("404", "Not Found");<br>        exit;<br>    }<br><br>    if (!lookup("location")) {<br>        $var(rc) = $rc;<br>        t_newtran();<br>        switch ($var(rc)) {<br>        case -1:<br>            send_reply("480", "Temporarily Unavailable");<br>            exit;<br>        case -2:<br>            send_reply("405", "Method Not Allowed");<br>            exit;<br>        case -3:<br>            send_reply("500", "Server Internal Error");<br>            exit;<br>        }<br>    }<br>}<br><br># Authentication route<br>route[AUTH] {<br>    if (is_method("REGISTER") || from_uri==myself) {<br>        # authenticate requests<br>        if (!auth_check("$fd", "subscriber", "1")) {<br>            auth_challenge("$fd", "0");<br>            exit;<br>        }<br>        # user authenticated - remove auth header<br>        if(!is_method("REGISTER")) {<br>            consume_credentials();<br>        }<br>    }<br>    # if caller is not local subscriber, then check if it calls<br>    # a local destination, otherwise deny, not an open relay here<br>    if (from_uri!=myself && uri!=myself) {<br>        sl_send_reply("403", "Forbidden");<br>        exit;<br>    }<br>}<br><br>#!ifdef WITH_WEBSOCKETS<br>onreply_route {<br>    if ((($Rp == MY_WS_PORT)<br>        && !(proto == WS)) || $Rp == MY_MSRP_PORT) {<br>        xlog("L_WARN", "SIP response received on $Rp\n");<br>        drop;<br>    }<br><br>    if (nat_uac_test(64)) {<br>        # Do NAT traversal stuff for replies to a WebSocket connection<br>        # - even if it is not behind a NAT!<br>        # This won't be needed in the future if Kamailio and the<br>        # WebSocket client support Outbound and Path.<br>        add_contact_alias();<br>    }<br>}<br><br>event_route[xhttp:request] {<br>    set_reply_close();<br>    set_reply_no_connect();<br>    <br>    if ($Rp != MY_WS_PORT<br>#!ifdef WITH_TLS<br>        && $Rp != MY_WSS_PORT<br>#!endif<br>    ) {<br>        xlog("L_WARN", "HTTP request received on $Rp\n");<br>        xhttp_reply("403", "Forbidden", "", "");<br>        exit;<br>    }<br><br>    xlog("L_DBG", "HTTP Request Received\n");<br><br>    if ($hdr(Upgrade)=~"websocket"<br>            && $hdr(Connection)=~"Upgrade"<br>            && $rm=~"GET") {<br><br>        # Validate Host - make sure the client is using the correct<br>        # alias for WebSockets<br>        if ($hdr(Host) == $null || !is_myself("sip:" + $hdr(Host))) {<br>            xlog("L_WARN", "Bad host $hdr(Host)\n");<br>            xhttp_reply("403", "Forbidden", "", "");<br>            exit;<br>        }<br><br>        # Optional... validate Origin - make sure the client is from an<br>        # authorised website.  For example,<br>        #<br>        # if ($hdr(Origin) != "<a href="http://communicator.MY_DOMAIN" target="_blank">http://communicator.MY_DOMAIN</a>"<br>        #     && $hdr(Origin) != "<a href="https://communicator.MY_DOMAIN" target="_blank">https://communicator.MY_DOMAIN</a>") {<br>        #    xlog("L_WARN", "Unauthorised client $hdr(Origin)\n");<br>        #    xhttp_reply("403", "Forbidden", "", "");<br>        #    exit;<br>        # }<br><br>        # Optional... perform HTTP authentication<br><br>        # ws_handle_handshake() exits (no further configuration file<br>        # processing of the request) when complete.<br>        if (ws_handle_handshake())<br>        {<br>            # Optional... cache some information about the<br>            # successful connection<br>            exit;<br>        }<br>    }<br><br>    xhttp_reply("404", "Not Found", "", "");<br>}<br><br>event_route[websocket:closed] {<br>    xlog("L_INFO", "WebSocket connection from $si:$sp has closed\n");<br>}<br>#!endif<br><br>#!ifdef WITH_MSRP<br>event_route[msrp:frame-in] {<br>    msrp_reply_flags("1");<br><br>    if ((($Rp == MY_WS_PORT || $Rp == MY_WSS_PORT)<br>        && !(proto == WS || proto == WSS)) && $Rp != MY_MSRP_PORT) {<br>        xlog("L_WARN", "MSRP request received on $Rp\n");<br>        msrp_reply("403", "Action-not-allowed");<br>        exit;<br>    }<br><br>    if (msrp_is_reply()) {<br>        msrp_relay();<br>    } else if($msrp(method)=="AUTH") {<br>        if($msrp(nexthops)>0) {<br>            msrp_relay();<br>            exit;<br>        }<br><br>        if (!www_authenticate("MY_DOMAIN", "subscriber",<br>                    "$msrp(method)")) {<br>            if (auth_get_www_authenticate("MY_DOMAIN", "1",<br>                            "$var(wauth)")) {<br>                msrp_reply("401", "Unauthorized",<br>                            "$var(wauth)");<br>            } else {<br>                msrp_reply("500", "Server Error");<br>            }<br>            exit;<br>        }<br><br>        if ($hdr(Expires) != $null) {<br>            $var(expires) = (int) $hdr(Expires);<br>            if ($var(expires) < MSRP_MIN_EXPIRES) {<br>                msrp_reply("423", "Interval Out-of-Bounds",<br>                    "Min-Expires: MSRP_MIN_EXPIRES\r\n");<br>                exit;<br>            } else if ($var(expires) > MSRP_MAX_EXPIRES) {<br>                msrp_reply("423", "Interval Out-of-Bounds",<br>                    "Max-Expires: MSRP_MAX_EXPIRES\r\n");<br>                exit;<br>            }<br>        } else {<br>            $var(expires) = MSRP_MAX_EXPIRES;<br>        }<br><br>        $var(cnt) = $var(cnt) + 1;<br>        pv_printf("$var(sessid)", "s.$(pp).$(var(cnt)).$(RANDOM)");<br>        $sht(msrp=>$var(sessid)::srcaddr) = $msrp(srcaddr);<br>        $sht(msrp=>$var(sessid)::srcsock) = $msrp(srcsock);<br>        $shtex(msrp=>$var(sessid)) = $var(expires) + 5;<br>        # - Use-Path: the MSRP address for server + session id<br>        $var(hdrs) = "Use-Path: msrps://MY_IP_ADDR:MY_MSRP_PORT/"<br>                    + $var(sessid) + ";tcp\r\n"<br>                    + "Expires: " + $var(expires) + "\r\n";<br>        msrp_reply("200", "OK", "$var(hdrs)");<br>    } else if ($msrp(method)=="SEND" || $msrp(method)=="REPORT") {<br>        if ($msrp(nexthops)>1) {<br>            if ($msrp(method)!="REPORT") {<br>                msrp_reply("200", "OK");<br>            }<br>            msrp_relay();<br>            exit;<br>        }<br>        $var(sessid) = $msrp(sessid);<br>        if ($sht(msrp=>$var(sessid)::srcaddr) == $null) {<br>            # one more hop, but we don't have address in htable<br>            msrp_reply("481", "Session-does-not-exist");<br>            exit;<br>        } else if ($msrp(method)!="REPORT") {<br>            msrp_reply("200", "OK");<br>        }<br>        msrp_relay_flags("1");<br>        msrp_set_dst("$sht(msrp=>$var(sessid)::srcaddr)",<br>                "$sht(msrp=>$var(sessid)::srcsock)");<br>        msrp_relay();<br>    } else {<br>        msrp_reply("501", "Request-method-not-understood");<br>    }<br>}<br>#!endif<br><br></div><div>Thanks a million!<br><br></div><div>Zaka<br></div><div><br style="color:rgb(51,0,51)"><span style="color:rgb(51,0,51)"></span></div><div><div data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><br><span style="color:rgb(0,0,153)">One accurate measurement is worth more than a thousand expert opinions!</span></div></div></div></div></div></div>
</div></div></div></div></div>
_______________________________________________<br>
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<br>
<a href="mailto:sr-users@lists.sip-router.org" target="_blank">sr-users@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><br>
</blockquote></div>
<br>_______________________________________________<br>
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<br>
<a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><br>
<br></blockquote></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span style="color:rgb(51,0,51)"></span><span style="color:rgb(51,0,51)"></span><span style="color:rgb(51,0,51)"></span><span style="color:rgb(51,0,51)"></span><span style="color:rgb(51,0,51)"></span><span><br></span></div></div></div></div></div></div>
</div></div></div>