[Serusers] NAT Problem No Voice

Daniel-Constantin Mierla daniel at voice-system.ro
Sun Apr 10 12:24:10 CEST 2005


A database module is missing (mysql, pgsql or dbtext), there is no 
dependency between uri_* and auth_* modules. Looks like the version is 
0.8.14, so the module is uri, uri_db was introduced after.

Daniel


On 04/10/05 11:37, Greger V. Teigre wrote:

> You have commented out auth.so and auth_db.so, then uri_db.so (which 
> relies on the auth module) will not start:
> 0(25979) DEBUG: init_mod: uri
> 0(25979) uri - initializing
> 0(25979) find_export: <db_use_table> not found
> 0(25979) uri:mod_init(): No database module found
> 0(25979) init_mod(): Error while initializing module
> uri
> ERROR: error while initializing modules
>
> g-)
>
> Kamran Ahmad wrote:
>
>> i am getting following error
>> -------------------------------------------------
>> WARNING: no fork mode  and more than one listen
>> address found (will use only the the first one)
>> 0(25979) DEBUG: init_mod: sl_module
>> stateless - initializing
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (sl_stats) registered
>> 0(25979) DEBUG: MD5 calculated:
>> b27e1a1d33761e85846fc98f5f3a7e58
>> 0(25979) DEBUG: init_mod: tm
>> 0(25979) TM - initializing...
>> 0(25979) Call-ID initialization: '7f7bddf7'
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (t_uac_dlg) registered
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (t_uac_cancel) registered
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (t_hash) registered
>> 0(25979) DEBUG: lock_initialize: lock initialization
>> started
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (t_stats) registered
>> 0(25979) DEBUG: MD5 calculated:
>> 533cb9e91f4b999cf76861cbb9ed54ed
>> 0(25979) DEBUG: MD5 calculated:
>> a6a1c5f60faecf035a1ae5b6e96e979a
>> 0(25979) DEBUG: init_mod: rr
>> 0(25979) rr - initializing
>> 0(25979) DEBUG: init_mod: maxfwd_module
>> Maxfwd module- initializing
>> 0(25979) DEBUG: init_mod: usrloc
>> 0(25979) usrloc - initializing
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (ul_stats) registered
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (ul_rm) registered
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (ul_rm_contact) registered
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (ul_dump) registered
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (ul_flush) registered
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (ul_add) registered
>> 0(25979) DEBUG: register_fifo_cmd: new command
>> (ul_show_contact) registered
>> 0(25979) DEBUG: init_mod: registrar
>> 0(25979) registrar - initializing
>> 0(25979) find_export: found <sl_send_reply> in module
>> sl_module [/usr/local/lib/ser/modules/sl.so]
>> 0(25979) find_export: found <ul_bind_usrloc> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_register_udomain> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_get_all_ucontacts> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_insert_urecord> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_delete_urecord> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_get_urecord> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_lock_udomain> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_unlock_udomain> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_release_urecord> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_insert_ucontact> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_delete_ucontact> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_get_ucontact> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) find_export: found <ul_update_ucontact> in
>> module usrloc [/usr/local/lib/ser/modules/usrloc.so]
>> 0(25979) DEBUG: init_mod: uri
>> 0(25979) uri - initializing
>> 0(25979) find_export: <db_use_table> not found
>> 0(25979) uri:mod_init(): No database module found
>> 0(25979) init_mod(): Error while initializing module
>> uri
>> ERROR: error while initializing modules
>> 0(25979) DEBUG: tm_shutdown : start
>> 0(25979) DEBUG: tm_shutdown : empting DELETE list
>> 0(25979) DEBUG: tm_shutdown : empting hash table
>> 0(25979) DEBUG: tm_shutdown: releasing timers
>> 0(25979) DEBUG: tm_shutdown : removing semaphores
>> 0(25979) DEBUG: tm_shutdown : done
>> 0(25979) shm_mem_destroy
>> 0(25979) destroying the shared memory lock
>> -----------------------------------------------------
>> ser.cfg
>> -----------------------------------------------------
>> #debug=3
>> #fork=yes
>> #log_stderror=no
>>
>> debug=7
>> fork=no
>> log_stderror=yes
>>
>> dns=no
>> rev_dns=no
>> fifo="/tmp/ser_fifo"
>> #fifo_db_url="mysql://ser:heslo@localhost/ser"
>>
>> #loadmodule "/usr/local/lib/ser/modules/mysql.so"
>> loadmodule "/usr/local/lib/ser/modules/sl.so"
>> loadmodule "/usr/local/lib/ser/modules/tm.so"
>> loadmodule "/usr/local/lib/ser/modules/rr.so"
>> loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
>> loadmodule "/usr/local/lib/ser/modules/usrloc.so"
>> loadmodule "/usr/local/lib/ser/modules/registrar.so"
>> #loadmodule "/usr/local/lib/ser/modules/auth.so"
>> #loadmodule "/usr/local/lib/ser/modules/auth_db.so"
>>
>> loadmodule "/usr/local/lib/ser/modules/uri.so"
>> loadmodule "/usr/local/lib/ser/modules/domain.so"
>> loadmodule "/usr/local/lib/ser/modules/nathelper.so"
>> loadmodule "/usr/local/lib/ser/modules/textops.so"
>> #loadmodule "/usr/local/lib/ser/modules/uri_db.so"
>>
>> #modparam("auth_db|usrloc|uri_db", "db_url",
>> "mysql://ser:heslo@localhost/ser")
>> #modparam("auth_db", "calculate_ha1", 1)
>> #modparam("auth_db", "password_column", "password")
>>
>> modparam("nathelper", "natping_interval", 30)
>> modparam("nathelper", "ping_nated_only", 1)
>> modparam("nathelper", "rtpproxy_sock",
>> "unix:/var/run/rtpproxy.sock")
>> modparam("usrloc", "db_mode", 0)
>> modparam("registrar", "nat_flag", 6)
>> modparam("rr", "enable_full_lr", 1)
>>
>>
>> route {
>>     #
>> -----------------------------------------------------------------
>>     # Sanity Check Section
>>     #
>> -----------------------------------------------------------------
>>     if (!mf_process_maxfwd_header("10")) {
>>             sl_send_reply("483", "Too Many Hops");
>>             break;
>>     };
>>     if (msg:len > max_len) {
>>             sl_send_reply("513", "Message Overflow");
>>             break;
>>     };
>>     #
>> -----------------------------------------------------------------
>>     # Record Route Section
>>     #
>> -----------------------------------------------------------------
>>     if (method!="REGISTER") {
>>             record_route();
>>     };
>>     if (method=="BYE" || method=="CANCEL") {
>>             unforce_rtp_proxy();
>>     }
>>     #
>> -----------------------------------------------------------------
>>     # Loose Route Section
>>     #
>> -----------------------------------------------------------------
>>     if (loose_route()) {
>>
>>           if (has_totag() && method=="INVITE") {
>>                   if (nat_uac_test("19")) {
>>                           setflag(6);
>>                           force_rport();
>>                           fix_nated_contact();
>>                   };
>>
>>                   force_rtp_proxy("l");
>>           };
>>           route(1);
>>           break;
>>    };
>>    #
>> -----------------------------------------------------------------
>>    # Call Type Processing Section
>>    #
>> -----------------------------------------------------------------
>>    if (uri==myself) {
>>           if (method=="INVITE") {
>>                   route(3);
>>                   break;
>>           } else if (method=="REGISTER") {
>>                   route(2);
>>                   break;
>>           };
>>
>>          if (!lookup("location")) {
>>                   sl_send_reply("404", "User Not
>> Found");
>>                   break;
>>           };
>>          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();
>> fix_nated_contact();
>>             force_rport();
>>     };
>>     sl_send_reply("100", "Trying");
>>
>> #     if (!www_authorize("","subscriber")) {
>> #             www_challenge("","0");
>> #             break;
>> #     };
>>
>>     if (!check_to()) {
>>             sl_send_reply("401", "Unauthorized");
>>             break;
>>     };
>>
>> #     consume_credentials();
>>
>>     if (!save("location")) {
>>      sl_reply_error();
>> };
>> }
>>
>>
>> route[3] {
>>     #
>> -----------------------------------------------------------------
>>     # INVITE Message Handler
>>     #
>> -----------------------------------------------------------------
>>     if (nat_uac_test("19")) {
>>             setflag(6);
>>     }
>>     if (!lookup("location")) {
>>             sl_send_reply("404", "User Not Found");
>>             break;
>>     };
>> #     if (!proxy_authorize("","subscriber")) {
>> #             proxy_challenge("","0");
>> #             break;
>> #     } else if (!check_from()) {
>> # if(!check_from()) {
>> #             sl_send_reply("403", "Use From=ID");
>> #             break;
>> #     };
>>
>> #     consume_credentials();
>>
>>     if (isflagset(6)) {
>>             force_rport();
>>             fix_nated_contact();
>>             force_rtp_proxy();
>>     };
>>
>> t_on_reply("1");
>>
>>     if (!t_relay()) {
>>
>>             if(isflagset(6)) {
>>                    unforce_rtp_proxy();
>>             }
>>
>>             sl_reply_error();
>>     };
>> }
>>
>> onreply_route[1] {
>>     if (isflagset(6) &&
>> status=~"(180)|(183)|2[0-9][0-9]") {
>>             if (!search("^Content-Length:\ 0")) {
>>                    force_rtp_proxy();
>>             };
>>     } else if (nat_uac_test("1")) {
>>             fix_nated_contact();
>>     };
>> }
>> -----------------------------------------------------
>>
>> --- "Greger V. Teigre" <greger at teigre.com> wrote:
>>
>>> Kamran,
>>> There is not rtpproxy installation. Just start it...
>>>  It will communicate
>>> through the default Unix socket.  You need to make
>>> sure that rtpproxy has
>>> the correct version number to communicate with your
>>> ser version.
>>>     You will find instructions in the Getting
>>> Started document at
>>> http://onsip.org/ as well as a ser Getting Started
>>> source package where the
>>> versions match.
>>> g-)
>>>
>>> Kamran Ahmad wrote:
>>>
>>>> hello
>>>>
>>>> NATHelper Module is usefull in communicating through
>>>> sip.
>>>>
>>>> now i am getting calles on both sides of NAT but
>>>> without voice. here is my "var/log/messages"
>>>>
>>>> need help on RTP Proxy. how to install RTPProxy.
>>>>
>>>>
>>>
>> ------------------------------------------------------
>>
>>>> Apr  9 01:55:10 achieva ser[10869]: ERROR:
>>>> force_rtp_proxy2: support for RTP proxy is disabled
>>>> Apr  9 01:55:15 achieva ser[10870]: ERROR:
>>>> send_rtpp_command: can't connect to RTP proxy
>>>> Apr  9 01:55:15 achieva ser[10870]: WARNING:
>>>> rtpp_test: can't get version of the RTP proxy
>>>> Apr  9 01:55:15 achieva ser[10870]: WARNING:
>>>> rtpp_test: support for RTP proxyhas been disabled
>>>> temporarily
>>>> Apr  9 01:55:15 achieva ser[10870]: ERROR:
>>>> force_rtp_proxy2: support for RTP proxy is disabled
>>>> Apr  9 01:55:15 achieva ser[10870]: ERROR: on_reply
>>>> processing failed
>>>>
>>>
>> ------------------------------------------------------
>>
>>>>
>>>> ser.cfg
>>>>
>>>
>> ------------------------------------------------------
>>
>>>> debug=3         # debug level (cmd line: -dddddddddd)
>>>> fork=yes
>>>> log_stderror=no # (cmd line: -E)
>>>>
>>>> /* Uncomment these lines to enter debugging mode
>>>> fork=no
>>>> log_stderror=yes
>>>> */
>>>>
>>>> check_via=no # (cmd. line: -v)
>>>> dns=no           # (cmd. line: -r)
>>>> rev_dns=no      # (cmd. line: -R)
>>>> port=5060
>>>> children=4
>>>> fifo="/tmp/ser_fifo"
>>>>
>>>> # ------------------ module loading
>>>> ----------------------------------
>>>>
>>>> # Uncomment this if you want to use SQL database
>>>> #loadmodule "/usr/local/lib/ser/modules/mysql.so"
>>>>
>>>> loadmodule "/usr/local/lib/ser/modules/sl.so"
>>>> loadmodule "/usr/local/lib/ser/modules/tm.so"
>>>> loadmodule "/usr/local/lib/ser/modules/rr.so"
>>>> loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
>>>> loadmodule "/usr/local/lib/ser/modules/usrloc.so"
>>>> loadmodule
>>>
>>> "/usr/local/lib/ser/modules/registrar.so"
>>>
>>>> loadmodule "/usr/local/lib/ser/modules/textops.so"
>>>>
>>>> # Uncomment this if you want digest authentication
>>>> # mysql.so must be loaded !
>>>> #loadmodule "/usr/local/lib/ser/modules/auth.so"
>>>> #loadmodule
>>>
>>> "/usr/local/lib/ser/modules/auth_db.so"
>>>
>>>>
>>>> # !! Nathelper
>>>> loadmodule
>>>
>>> "/usr/local/lib/ser/modules/nathelper.so"
>>>
>>>>
>>>> # ----------------- setting module-specific parameters
>>>> ---------------
>>>>
>>>> # -- usrloc params --
>>>>
>>>> modparam("usrloc", "db_mode",   0)
>>>>
>>>> # Uncomment this if you want to use SQL database
>>>> # for persistent storage and comment the previous line
>>>> #modparam("usrloc", "db_mode", 2)
>>>>
>>>> # -- auth params --
>>>> # Uncomment if you are using auth module
>>>> #
>>>> #modparam("auth_db", "calculate_ha1", yes)
>>>> #
>>>> # If you set "calculate_ha1" parameter to yes (which
>>>> true in this config),
>>>> # uncomment also the following parameter)
>>>> #
>>>> #modparam("auth_db", "password_column", "password")
>>>>
>>>> # -- rr params --
>>>> # add value to ;lr param to make some broken UAs happy
>>>> modparam("rr", "enable_full_lr", 1)
>>>>
>>>> # !! Nathelper
>>>> modparam("registrar", "nat_flag", 6)
>>>> modparam("nathelper", "natping_interval", 30) # Ping
>>>> interval 30 s
>>>> modparam("nathelper", "ping_nated_only", 1)   # Ping
>>>> only clients behind NAT
>>>>
>>>> # -------------------------  request routing logic
>>>> -------------------
>>>>
>>>> # main routing logic
>>>>
>>>> route{
>>>>
>>>> # initial sanity checks -- messages with
>>>> # max_forwards==0, or excessively long requests
>>>> if (!mf_process_maxfwd_header("10")) {
>>>> sl_send_reply("483","Too Many Hops");
>>>> break;
>>>> };
>>>> if (msg:len >=  max_len ) {
>>>> sl_send_reply("513", "Message too big");
>>>> break;
>>>> };
>>>>
>>>>        # !! Nathelper
>>>> # Special handling for NATed clients; first, NAT test
>>>> is
>>>> # executed: it looks for via!=received and RFC1918
>>>> addresses
>>>> # in Contact (may fail if line-folding is used);
>>>> also,
>>>> # the received test should, if completed, should
>>>> check all
>>>> # vias for rpesence of received
>>>> if (nat_uac_test("3")) {
>>>> # Allow RR-ed requests, as these may indicate that
>>>> # a NAT-enabled proxy takes care of it; unless it is
>>>> # a REGISTER
>>>>
>>>> if (method == "REGISTER" || !
>>>> search("^Record-Route:")) {
>>>>     log("LOG: Someone trying to register from
>>>> private IP, rewriting\n");
>>>>
>>>>     # This will work only for user agents that
>>>> support symmetric
>>>>     # communication. We tested quite many of them
>>>> and majority is
>>>>     # smart enough to be symmetric. In some phones
>>>> it takes a configuration
>>>>     # option. With Cisco 7960, it is called
>>>> NAT_Enable=Yes, with kphone it is
>>>>     # called "symmetric media" and "symmetric
>>>> signalling".
>>>>
>>>>     fix_nated_contact(); # Rewrite contact with
>>>> source IP of signalling
>>>>     if (method == "INVITE") {
>>>>         fix_nated_sdp("1"); # Add direction=active
>>>> to SDP
>>>>     };
>>>>     force_rport(); # Add rport parameter to topmost
>>>> Via
>>>>     setflag(6);    # Mark as NATed
>>>> };
>>>> };
>>>>
>>>> # we record-route all messages -- to make sure that
>>>> # subsequent messages will go through our proxy;
>>>> that's
>>>> # particularly good if upstream and downstream
>>>
>>>
>> === message truncated ===
>>
>>
>>
>>
>> __________________________________
>> Do you Yahoo!?
>> Yahoo! Small Business - Try our new resources site!
>> http://smallbusiness.yahoo.com/resources/ 
>
>
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>




More information about the sr-users mailing list