Dear Bogdan, Regarding about old question, could you please tell me why: - Contact of Mobile: sip:[email protected]:1120 - Contact of X-Lite: sip:[email protected]:14553;rinstance=abb597b601e7398b
What is rinstance and does it impact to the call. I make call from Mobile (SJPhone on winCE) to X-Lite and after 32s, it drop call. Both UAs behind NAT. But, x-lite --to/from -- x-lite: call successful, no drop. Thanks, -LN On Tue, Mar 31, 2009 at 11:09 PM, oso che bol <[email protected]> wrote: > Dear Bogdan, > > Thanks very much for your time. > > Regards, > -LN > > > On Tue, Mar 31, 2009 at 8:53 PM, Bogdan-Andrei Iancu < > [email protected]> wrote: > >> Please use fix_nated_register() for REGISTER requests - this will set the >> appropriate info to be saved in usrloc. >> >> fix_nated_register() is not changing the contact (so the usrloc will save >> the real contact), but is just setting some additional info to be saved in >> usrloc (the received field) >> >> fix_nated_contact() is actually changing the contact from the request - >> this is to be used for non-REGISTER requests. >> >> Regards, >> Bogdan >> >> oso che bol wrote: >> >>> >>> Dear Bogdan >>> >>> I change the config of NATed REGISTER request to: >>> >>> / if (nat_uac_test("19")) { >>> if (is_method("REGISTER") || !search("^Record-Route")) { >>> log("LOG: HTK Someone trying to register from private IP, >>> rewriting\n"); >>> fix_nated_contact(); # Rewrite contact with source IP of >>> signalling >>> force_rport(); # Add rport parameter to topmost Via >>> setbflag(6); # Mark as NATed >>> if (method=="INVITE") { >>> fix_nated_sdp("1"); # Add direction=active to SDP >>> force_rport(); # Add rport parameter to topmost Via >>> setbflag(6); # Mark as NATed >>> }; >>> };/ >>> >>> Output of "opensipsctl ul show": >>> >>> /[r...@ln]# opensipsctl ul show >>> database engine 'MYSQL' loaded >>> Control engine 'FIFO' loaded >>> entering fifo_cmd ul_dump >>> Mar 31 07:17:27 [6412] DBG:mi_fifo:mi_parse_node: end of input tree >>> Mar 31 07:17:27 [6412] DBG:mi_fifo:mi_fifo_server: done parsing the mi >>> tree >>> Domain:: aliases table=512 records=0 max_slot=0 >>> Domain:: location table=512 records=2 max_slot=1 >>> AOR:: 5000 >>> Contact:: sip:[email protected]:5060;transport=UDP Q= >>> Expires:: 1038 >>> Callid:: A9AOj5F5oIeDS04U53IMr4_65zZvf5 >>> Cseq:: 6049 >>> User-agent:: E66-1 RM-343 102.07.81 >>> State:: CS_SYNC >>> Flags:: 0 >>> Cflag:: 64 >>> Socket:: udp:174.132.X.Y:5060 >>> Methods:: 4294967295 >>> AOR:: 6000 >>> Contact:: sip:[email protected]:11370;rinstance=dbe921dccef4bee4 >>> Q= >>> Expires:: 1060 >>> Callid:: MDdmOTVkNzAzODAxN2JiMjk0MTk1NTEwNThjOWE2ZTM. >>> Cseq:: 6 >>> User-agent:: X-Lite release 1100l stamp 47546 >>> State:: CS_SYNC >>> Flags:: 0 >>> Cflag:: 64 >>> Socket:: udp:174.132.X.Y:5060 >>> Methods:: 5951 >>> FIFO command was: >>> :ul_dump:opensips_receiver_6568/ >>> >>> Could you please explain why with mobile user 5000, the contact >>> /sip:[email protected]:5060;transport=UDP /and with X-Lite User 6000 the >>> contact is /[email protected]:11370;rinstance=dbe921dccef4bee4/ >>> >>> How fix_nated_register() differ with fix_nated_register(), do we need to >>> call fix_nated_register() at REGISTER processing? >>> >>> Thanks and Regards, >>> >>> -LN >>> >>> On Tue, Mar 31, 2009 at 6:19 PM, Bogdan-Andrei Iancu < >>> [email protected] <mailto:[email protected]>> wrote: >>> >>> Hi, >>> >>> if the online-user info is correct, it looks like the >>> fix_nated_register() is not done. >>> >>> Please post the output of "opensipsctl ul show", for that specific >>> user. >>> >>> Also test by using xlog if the at register time your processing >>> gets inside the "if (!search("^Contact:[ ]*\*") && >>> nat_uac_test("19")) {". >>> >>> Regards, >>> Bogdan >>> >>> oso che bol wrote: >>> >>> Dear All, >>> >>> I use Opensips 1.4.1 with rtpproxy 1.2 for NAT support. >>> >>> I use X-Lite which is Behind NAT, register to OpenSIPs proxy, >>> Opensips store right contact address. But, when i use Nokia >>> E66 to register to Opensips, the contact address is bellow: >>> Online SIP Users >>> Username Domain Contact Expires User Agent >>> 5000 *sip:[email protected] <sip%[email protected]> <mailto: >>> sip%[email protected] <sip%[email protected]>> >>> <mailto:sip%[email protected] <sip%[email protected]> >>> <mailto:sip%[email protected] >>> <sip%[email protected]>>>;transport=UDP* >>> 2009-03-30 >>> >>> 07:20:24.0 E66-1 RM-343 102.07.81 >>> >>> >>> User 5000 do not store with external IP address of its >>> (external address not 192.168.1.100). Do you have any ideas >>> about this? >>> >>> Bellow is my Opensips.conf >>> >>> Thanks and Regards, >>> >>> -LN >>> >>> Opensips.conf >>> >>> ================== >>> >>> ####### Global Parameters ######### >>> >>> debug=4 >>> log_stderror=yes >>> log_facility=LOG_LOCAL0 >>> >>> fork=yes >>> children=4 >>> >>> /* uncomment the following lines to enable debugging */ >>> #debug=6 >>> #fork=no >>> #log_stderror=yes >>> >>> #disable_tcp=yes >>> #disable_dns_blacklist=no >>> #dns_try_ipv6=yes >>> #auto_aliases=no >>> >>> /* uncomment the following lines to enable TLS support >>> (default off) */ >>> #disable_tls = no >>> #listen = tls:your_IP:5061 >>> #tls_verify_server = 1 >>> #tls_verify_client = 1 >>> #tls_require_client_certificate = 0 >>> #tls_method = TLSv1 >>> #tls_certificate = "//etc/opensips/tls/user/user-cert.pem" >>> #tls_private_key = "//etc/opensips/tls/user/user-privkey.pem" >>> #tls_ca_list = "//etc/opensips/tls/user/user-calist.pem" >>> >>> >>> port=5060 >>> listen=udp:MY_OPENSIP_IP:5060 >>> >>> >>> ####### Modules Section ######## >>> >>> #set module path >>> mpath="//lib/opensips/modules/" >>> >>> /* uncomment next line for MySQL DB support */ >>> loadmodule "db_mysql.so" >>> loadmodule "sl.so" >>> loadmodule "tm.so" >>> loadmodule "rr.so" >>> loadmodule "maxfwd.so" >>> loadmodule "usrloc.so" >>> loadmodule "registrar.so" >>> loadmodule "textops.so" >>> loadmodule "mi_fifo.so" >>> loadmodule "uri_db.so" >>> loadmodule "uri.so" >>> loadmodule "xlog.so" >>> loadmodule "acc.so" >>> loadmodule "auth.so" >>> loadmodule "auth_db.so" >>> >>> #loadmodule "presence.so" >>> #loadmodule "presence_xml.so" >>> >>> loadmodule "nathelper.so" >>> loadmodule "avpops.so" >>> ###################### >>> >>> >>> modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo") >>> modparam("rr", "enable_full_lr", 1) >>> modparam("rr", "append_fromtag", 0) >>> modparam("registrar", "method_filtering", 1) >>> >>> /* uncomment the next line to disable parallel forking via >>> location */ >>> # modparam("registrar", "append_branches", 0) >>> /* uncomment the next line not to allow more than 10 contacts >>> per AOR */ >>> #modparam("registrar", "max_contacts", 10) >>> modparam("uri_db", "use_uri_table", 1) >>> modparam("uri_db", "db_url", >>> "mysql://sermyadmin:sec...@my_database_ip/sermyadmin") >>> #them for bug9, like guide in bug9 >>> modparam("uri_db", "db_table", "uri") >>> >>> >>> # ----- acc params ----- >>> /* what sepcial events should be accounted ? */ >>> modparam("acc", "early_media", 1) >>> modparam("acc", "report_ack", 1) >>> modparam("acc", "report_cancels", 1) >>> modparam("acc", "detect_direction", 0) >>> modparam("acc", "failed_transaction_flag", 3) >>> modparam("acc", "log_flag", 1) >>> modparam("acc", "log_missed_flag", 2) >>> modparam("acc", "db_flag", 1) >>> modparam("acc", "db_missed_flag", 2) >>> >>> modparam("usrloc", "db_mode", 2) >>> modparam("usrloc", "db_url", >>> "mysql://sermyadmin:sec...@my_database_ip/sermyadmin") >>> >>> modparam("auth_db", "calculate_ha1", yes) >>> modparam("auth_db", "password_column", "password") >>> modparam("auth_db|permission", "db_url", >>> "mysql://sermyadmin:sec...@my_database_ip/sermyadmin") >>> >>> modparam("avpops", "avp_url", >>> "mysql://sermyadmin:sec...@my_database_ip/sermyadmin") >>> modparam("avpops", "avp_table", "usr_preferences") >>> >>> #try for fix error of Mobile Address >>> modparam("registrar", "received_avp", "$avp(s:rcv)") >>> modparam("nathelper", "received_avp", "$avp(s:rcv)") >>> >>> #Theo guide >>> http://www.opensips.org/html/docs/modules/1.4.x/registrar.html >>> modparam("usrloc", "nat_bflag", 6) >>> modparam("nathelper", "ping_nated_only", 1) >>> modparam("nathelper", "sipping_bflag", 8) >>> >>> #modparam("nathelper", "rtpproxy_sock", "udp:MY_RTPPROXY_IP:7890") >>> modparam("nathelper", "force_socket", "udp:MY_RTPPROXY_IP:7890") >>> modparam("nathelper", "natping_interval", 89) >>> modparam("nathelper", "sipping_from", "sip:1...@my_opensip_ip") >>> >>> >>> # main request routing logic >>> >>> route { >>> >>> # >>> ----------------------------------------------------------------- >>> # Sanity Check Section >>> # >>> ----------------------------------------------------------------- >>> if (!mf_process_maxfwd_header("10")) { >>> sl_send_reply("483", "Too Many Hops"); >>> exit; >>> } >>> >>> if (msg:len > max_len) { >>> sl_send_reply("513", "Message Overflow"); >>> exit; >>> } >>> >>> # >>> ----------------------------------------------------------------- >>> # Record Route Section >>> # >>> ----------------------------------------------------------------- >>> if (method!="REGISTER") { >>> record_route(); >>> } >>> >>> if (method=="BYE" || method=="CANCEL") { >>> unforce_rtp_proxy(); >>> } >>> >>> # >>> ----------------------------------------------------------------- >>> # Loose Route Section >>> # >>> ----------------------------------------------------------------- >>> if (loose_route()) { >>> >>> if ((method=="INVITE" || method=="REFER") && >>> !has_totag()) { >>> sl_send_reply("403", "Forbidden"); >>> exit; >>> } >>> >>> if (method=="INVITE") { >>> >>> if (!proxy_authorize("MY_OPENSIPS_IP","subscriber")) { >>> proxy_challenge("MY_OPENSIPS_IP","0"); >>> exit; >>> } else if (!check_from()) { >>> sl_send_reply("403", "Use From=ID"); >>> exit; >>> } >>> consume_credentials(); >>> >>> if (nat_uac_test("19")) { >>> setflag(6); >>> force_rport(); >>> fix_nated_contact(); >>> } >>> force_rtp_proxy("l"); >>> } >>> route(1); >>> exit; >>> } >>> >>> # >>> ----------------------------------------------------------------- >>> # Call Type Processing Section >>> # >>> ----------------------------------------------------------------- >>> if (uri!=myself) { >>> route(4); >>> route(1); >>> exit; >>> } >>> >>> if (method=="ACK") { >>> route(1); >>> exit; >>> } else if (method=="CANCEL") { >>> route(1); >>> exit; >>> } else if (method=="INVITE") { >>> route(3); >>> exit; >>> } else if (method=="REGISTER") { >>> route(2); >>> exit; >>> } >>> >>> lookup("aliases"); >>> if (uri!=myself) { >>> route(4); >>> route(1); >>> exit; >>> } >>> >>> if (!lookup("location")) { >>> sl_send_reply("404", "User Not Found"); >>> exit; >>> } >>> >>> route(1); >>> } >>> >>> route[1] { >>> >>> # >>> ----------------------------------------------------------------- >>> # Default Message Handler >>> # >>> ----------------------------------------------------------------- >>> >>> t_on_reply("1"); >>> >>> if (!t_relay()) { >>> if (method=="INVITE" && isflagset(6)) { >>> unforce_rtp_proxy(); >>> }; >>> sl_reply_error(); >>> } >>> } >>> >>> route[2] { >>> >>> # >>> ----------------------------------------------------------------- >>> # REGISTER Message Handler >>> # >>> ---------------------------------------------------------------- >>> >>> if (!search("^Contact:[ ]*\*") && nat_uac_test("19")) { >>> setflag(6); >>> fix_nated_register(); >>> force_rport(); >>> } >>> >>> sl_send_reply("100", "Trying"); >>> >>> if (!www_authorize("MY_OPENSIPS_IP","subscriber")) { >>> www_challenge("MY_OPENSIPS_IP","0"); >>> exit; >>> } >>> >>> #if (!check_to()) { >>> # sl_send_reply("401", "Unauthorized Loi Ngo"); >>> # exit; >>> #} >>> >>> consume_credentials(); >>> >>> if (!save("location")) { >>> sl_reply_error(); >>> }; >>> } >>> >>> route[3] { >>> >>> # >>> ----------------------------------------------------------------- >>> # INVITE Message Handler >>> # >>> ----------------------------------------------------------------- >>> #Drop because error Use From=ID when call. Open >>> #if (!proxy_authorize("","subscriber")) { >>> # proxy_challenge("","0"); >>> # exit; >>> #} else if (!check_from()) { >>> # sl_send_reply("403", "Use From=ID"); >>> # exit; >>> #} >>> >>> #consume_credentials(); >>> >>> if (nat_uac_test("19")) { >>> setflag(6); >>> } >>> >>> lookup("aliases"); >>> if (uri!=myself) { >>> route(4); >>> route(1); >>> exit; >>> } >>> >>> if (!lookup("location")) { >>> sl_send_reply("404", "User Not Found"); >>> exit; >>> } >>> >>> route(4); >>> route(1); >>> } >>> >>> route[4] { >>> >>> # >>> ----------------------------------------------------------------- >>> # NAT Traversal Section >>> # >>> ----------------------------------------------------------------- >>> >>> if (isflagset(6)) { >>> force_rport(); >>> fix_nated_contact(); >>> force_rtp_proxy(); >>> } >>> } >>> >>> onreply_route[1] { >>> >>> if (isflagset(6) && status=~"(180)|(183)|2[0-9][0-9]") { >>> if (!search("^Content-Length:[ ]*0")) { >>> force_rtp_proxy(); >>> } >>> } >>> >>> if (nat_uac_test("1")) { >>> fix_nated_contact(); >>> } >>> } >>> >>> >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] <mailto:[email protected]> >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >>> >>> >> >
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
