[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