[Serusers] running VM module

Mario Kolberg mko at cs.stir.ac.uk
Fri Nov 14 15:58:02 CET 2003


Hi,

I'm trying to run the vm module to connect to SEMS. However, I'm getting 
an error in the dbtext module saying: Not enough memory. However, there 
should be plenty of memory available. Below I enclose my configuration, 
the error message and the ser.cfg file.

Is there anything obvious wrong in my setup?

Many thanks!
Mario


versions and compile flags are:
 > ser -V
version: ser 0.8.11pre36 (i386/linux)
flags: STATS:Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, DNS_IP_HACK, 
SHM_MEM, SHM_MMAP, PKG_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, 
MAX_URI_SIZE 1024, BUF_SIZE 65535
@(#) $Id: main.c,v 1.162.2.3 2003/06/28 17:10:36 andrei Exp $
main.c compiled on 13:51:19 Nov 14 2003 with gcc 3.2


The error message I get looks like:
 >ser
  0(10682) loading module /usr/local/lib/ser/modules/mysql.so
  0(10682) loading module /usr/local/lib/ser/modules/sl.so
  0(10682) loading module /usr/local/lib/ser/modules/tm.so
  0(10682) loading module /usr/local/lib/ser/modules/rr.so
  0(10682) loading module /usr/local/lib/ser/modules/maxfwd.so
  0(10682) loading module /usr/local/lib/ser/modules/usrloc.so
  0(10682) loading module /usr/local/lib/ser/modules/registrar.so
  0(10682) loading module /usr/local/lib/ser/modules/auth.so
  0(10682) loading module /usr/local/lib/ser/modules/auth_db.so
  0(10682) loading module /usr/local/lib/ser/modules/textops.so
  0(10682) loading module /usr/local/lib/ser/modules/vm.so
  0(10682) loading module /usr/local/lib/ser/modules/dbtext.so
  0(10682) set_mod_param_regex: voicemail matches module voicemail
  0(10682) set_mod_param_regex: found <db_url> in module voicemail 
[/usr/local/lib/ser/modules/vm.so]
  0(10682) set_mod_param_regex: usrloc matches module usrloc
  0(10682) set_mod_param_regex: found <db_mode> in module usrloc 
[/usr/local/lib/ser/modules/usrloc.so]
  0(10682) set_mod_param_regex: auth_db matches module auth_db
  0(10682) set_mod_param_regex: found <calculate_ha1> in module auth_db 
[/usr/local/lib/ser/modules/auth_db.so]
  0(10682) set_mod_param_regex: auth_db matches module auth_db
  0(10682) set_mod_param_regex: found <password_column> in module 
auth_db [/usr/local/lib/ser/modules/auth_db.so]
  0(10682) find_export: found <mf_process_maxfwd_header> in module 
maxfwd_module [/usr/local/lib/ser/modules/maxfwd.so]
  0(10682) find_export: found <sl_send_reply> in module sl_module 
[/usr/local/lib/ser/modules/sl.so]
  0(10682) find_export: found <sl_send_reply> in module sl_module 
[/usr/local/lib/ser/modules/sl.so]
  0(10682) find_export: found <record_route> in module rr 
[/usr/local/lib/ser/modules/rr.so]
  0(10682) find_export: found <loose_route> in module rr 
[/usr/local/lib/ser/modules/rr.so]
  0(10682) find_export: found <www_authorize> in module auth_db 
[/usr/local/lib/ser/modules/auth_db.so]
  0(10682) find_export: found <www_challenge> in module auth 
[/usr/local/lib/ser/modules/auth.so]
  0(10682) find_export: found <save> in module registrar 
[/usr/local/lib/ser/modules/registrar.so]
  0(10682) find_export: found <t_newtran> in module tm 
[/usr/local/lib/ser/modules/tm.so]
  0(10682) find_export: found <t_reply> in module tm 
[/usr/local/lib/ser/modules/tm.so]
  0(10682) find_export: found <vm> in module voicemail 
[/usr/local/lib/ser/modules/vm.so]
  0(10682) find_export: found <t_reply> in module tm 
[/usr/local/lib/ser/modules/tm.so]
  0(10682) find_export: found <vm> in module voicemail 
[/usr/local/lib/ser/modules/vm.so]
  0(10682) find_export: found <t_reply> in module tm 
[/usr/local/lib/ser/modules/tm.so]
  0(10682) find_export: found <vm> in module voicemail 
[/usr/local/lib/ser/modules/vm.so]
  0(10682) find_export: found <t_reply> in module tm 
[/usr/local/lib/ser/modules/tm.so]
  0(10682) find_export: found <vm> in module voicemail 
[/usr/local/lib/ser/modules/vm.so]
  0(10682) find_export: found <t_reply> in module tm 
[/usr/local/lib/ser/modules/tm.so]
  0(10682) find_export: found <sl_send_reply> in module sl_module 
[/usr/local/lib/ser/modules/sl.so]
  0(10682) find_export: found <lookup> in module registrar 
[/usr/local/lib/ser/modules/registrar.so]
  0(10682) find_export: found <sl_send_reply> in module sl_module 
[/usr/local/lib/ser/modules/sl.so]
  0(10682) find_export: found <t_relay> in module tm 
[/usr/local/lib/ser/modules/tm.so]
  0(10682) find_export: found <sl_reply_error> in module sl_module 
[/usr/local/lib/ser/modules/sl.so]
  0(10682) routing table 0:
.... routing table removed ...

Listening on
               127.0.0.1 [127.0.0.1]:5060
               139.153.254.203 [139.153.254.203]:5060
Aliases: localhost:5060 localhost.localdomain:5060 d254203:5060 
cs.stir.ac.uk:* d254203.cs.stir.ac.uk:*
WARNING: no fork mode  and more than one listen address found (will use 
only the the first one)
  0(10682) DEBUG: init_mod: mysql
  0(10682) mysql - initializing
  0(10682) DEBUG: init_mod: sl_module
stateless - initializing
  0(10682) DEBUG: register_fifo_cmd: new command (sl_stats) registered
  0(10682) DEBUG: MD5 calculated: b27e1a1d33761e85846fc98f5f3a7e58
  0(10682) DEBUG: init_mod: tm
  0(10682) TM - initializing...
  0(10682) Call-ID initialization: '58f7fc7f'
  0(10682) DEBUG: register_fifo_cmd: new command (t_uac_dlg) registered
  0(10682) DEBUG: register_fifo_cmd: new command (t_hash) registered
  0(10682) DEBUG: lock_initialize: lock initialization started
  0(10682) DEBUG: register_fifo_cmd: new command (t_stats) registered
  0(10682) DEBUG: MD5 calculated: 533cb9e91f4b999cf76861cbb9ed54ed
  0(10682) DEBUG: MD5 calculated: a6a1c5f60faecf035a1ae5b6e96e979a
  0(10682) DEBUG: init_mod: rr
  0(10682) rr - initializing
  0(10682) DEBUG: init_mod: maxfwd_module
Maxfwd module- initializing
  0(10682) DEBUG: init_mod: usrloc
  0(10682) usrloc - initializing
  0(10682) DEBUG: register_fifo_cmd: new command (ul_stats) registered
  0(10682) DEBUG: register_fifo_cmd: new command (ul_rm) registered
  0(10682) DEBUG: register_fifo_cmd: new command (ul_rm_contact) registered
  0(10682) DEBUG: register_fifo_cmd: new command (ul_dump) registered
  0(10682) DEBUG: register_fifo_cmd: new command (ul_flush) registered
  0(10682) DEBUG: register_fifo_cmd: new command (ul_add) registered
  0(10682) DEBUG: register_fifo_cmd: new command (ul_show_contact) 
registered
  0(10682) find_export: found <~db_use_table> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) find_export: found <~db_init> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) find_export: found <~db_close> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) find_export: found <~db_query> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) find_export: found <~db_raw_query> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) find_export: found <~db_free_query> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) find_export: found <~db_insert> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) find_export: found <~db_delete> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) find_export: found <~db_update> in module dbtext 
[/usr/local/lib/ser/modules/dbtext.so]
  0(10682) DBT:dbt_cache_get_db: dbtext cache not initialized!
  0(10682) DBT:dbt_init: No enough memory
  0(10682) mod_init(): Error while connecting database
  0(10682) init_mod(): Error while initializing module usrloc
ERROR: error while initializing modules
  0(10682) DBT:destroy ...
  0(10682) DEBUG: tm_shutdown : start
  0(10682) DEBUG: tm_shutdown : empting DELETE list
  0(10682) DEBUG: tm_shutdown : empting hash table
  0(10682) DEBUG: tm_shutdown: releasing timers
  0(10682) DEBUG: tm_shutdown : removing semaphores
  0(10682) DEBUG: tm_shutdown : done
  0(10682) shm_mem_destroy
  0(10682) destroying the shared memory lock



My ser.cfg file looks like and contains large shunks of the example file 
which comes with the vm module:


#
# $Id: ser.cfg,v 1.18 2003/05/06 16:19:15 janakj Exp $
#
# simple quick-start config script
#

# ----------- global configuration parameters ------------------------

debug=3
fork=yes
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"
alias="d254203.cs.stir.ac.uk"
alias="cs.stir.ac.uk"

# ------------------ 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"

# 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"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/vm.so"
loadmodule "/usr/local/lib/ser/modules/dbtext.so"

# ----------------- setting module-specific parameters ---------------

# -- usrloc params --

modparam("voicemail", "db_url","/root/new_sip_router/modules/vm/db")

#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")

# -------------------------  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 (len_gt( max_len )) {
		sl_send_reply("513", "Message too big");
		break;
	};

	# we record-route all messages -- to make sure that
	# subsequent messages will go through our proxy; that's
	# particularly good if upstream and downstream entities
	# use different transport protocol
	record_route();	
	# loose-route processing
	loose_route();

	# if the request is for other domain use UsrLoc
	# (in case, it does not work, use the following command
	# with proper names and addresses in it)
	if (uri==myself) {

		if (method=="REGISTER") {

		if (!www_authorize("cs.stir.ac.uk", "subscriber")) {
			www_challenge("cs.stir.ac.uk", "0");
			break;
		};

		save("location");
		break;
		};

                # Voicemail specific configuration - begin

                 if(method=="ACK" || method=="INVITE" || method=="BYE" 
|| method=="REFER"){

                    if(t_newtran()){
                       t_reply("100","Trying -- just wait a minute !");
                       if(method=="INVITE" || method=="REFER"){
                       log("** vm start - begin *******\n");
                       if( uri =~ "conference" ){
                          if(!vm("/tmp/am_fifo","conference")){
                          log("could not contact conference server\n");
                          t_reply("500","could not contact conference 
server");
                       };
                     }  else if( uri =~ "echo" ){
                          if(!vm("/tmp/am_fifo","echo")){
                             log("could not contact echo\n");
                             t_reply("500","could not contact echo");
                          };
                         }
                         else {
                         if(!vm("/tmp/am_fifo","voicemail")){
                            log("could not contact voicemail\n");
                            t_reply("500","could not contact voicemail");
                         };
                      };
                      log("**** vm start - end *********\n");
                      break;
                     };
                     if(method=="BYE"){
                        log("***** vm end/refer - begin *******\n");
                        if(!vm("/tmp/am_fifo","bye")){
                        log("could not contact the media server\n");
                        t_reply("500","could not contact the media server");
                      };
                       log("***** vm end/refer - end ********\n");
                       break;
                       };
                     }
                     else {
                       log("could not create new transaction\n");
                       sl_send_reply("500","could not create new 
transaction");
                    };
                 };
         # Voicemail specific configuration - end
	# native SIP destinations are handled using our USRLOC DB
		if (!lookup("location")) {
			sl_send_reply("404", "Not Found");
			break;
		};
	};
	# forward to current uri now; use stateful forwarding; that
	# works reliably even if we forward from TCP to UDP
	if (!t_relay()) {
		sl_reply_error();
	};

}


-- 
The University of Stirling is a university established in Scotland by
charter at Stirling, FK9 4LA.  Privileged/Confidential Information may
be contained in this message.  If you are not the addressee indicated
in this message (or responsible for delivery of the message to such
person), you may not disclose, copy or deliver this message to anyone
and any action taken or omitted to be taken in reliance on it, is
prohibited and may be unlawful.  In such case, you should destroy this
message and kindly notify the sender by reply email.  Please advise
immediately if you or your employer do not consent to Internet email
for messages of this kind.




More information about the sr-users mailing list