[Serusers] help

Steve Blair blairs at isc.upenn.edu
Wed Feb 9 16:58:21 CET 2005


Nhadie:

  The latest version of SER the vm module functionality has been integrated
into the tm module. You do not need to include the vm.so module with the
latest code. Also you'll want to use syntax like the following when sending
the call to SEMS voicemail.

    if(!t_write_req("/tmp/am_fifo","voicemail")){
        xlog("L_INFO", "\n[SER_vm]: Failed to contact SEMS voicemail 
server [%Tf] \n");
        t_reply("500","Could not contact voicemail service");
    };

_Steve

Nhadie wrote:

> Hi
>
> I'm tryin to configure ser with sems, on a RedHat version 9.
>
> I'm receiving this errors:
>
> Feb  9 01:36:00 sip ser[4781]: ERROR: fifo_server: command DB is not 
> available
> Feb  9 01:36:00 sip ser[4781]: ERROR: fifo_server:n command must begin 
> with ::
> email_address
> Feb  9 01:36:00 sip ser[4781]: ERROR: fifo_server: command must begin 
> with ::
> subscriber
> Feb  9 01:36:00 sip ser[4781]: ERROR: fifo_server: command must have 
> at least
> 3 chars
> Feb  9 01:36:00 sip Sems[4816]: Error: 
> (AmSession.cpp)(startSession)(468): 404
> voicemail: no email address for user <1002>
> Feb  9 01:36:00 sip ser[4781]: ERROR: fifo_server: command t_reply is not
> available
> Feb  9 01:36:00 sip ser[4781]: ERROR: fifo_server: command must begin 
> with ::
> voicemail: no email address for user <1002>
> Feb  9 01:36:00 sip ser[4781]: ERROR: fifo_server: command must begin 
> with ::
> 000012D07BAA2BC1
> Feb  9 01:36:00 sip ser[4781]: ERROR: fifo_server: command must have 
> at least
> 3 chars
> Feb  9 01:36:00 sip Sems[4816]: Error: (AmRequest.cpp)(reply)(335):
> AmRequestUAS::reply: 500 command 't_reply' not available
>
> Can anyone help me with this, thank you in advanced. I've attached my 
> ser.cfg
> and sems.conf below.
>
> ----- start of ser.cfg -----
>
> #
> # $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
> #
> # simple quick-start config script
> #
>
> # ----------- global configuration parameters ------------------------
>
> #debug=3         # debug level (cmd line: -dddddddddd)
> #fork=yes
> #log_stderror=no        # (cmd line: -E)
>
> /* Uncomment these lines to enter debugging mode
> debug=7
> 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
> listen=192.168.0.2
> alias="sip.nhadzter.com"
> alias="nhadzter.com"
> alias="192.168.0.2"
> 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/vm.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"
>
> # ----------------- 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)
>
> # ----------------- voicemail parameters ---------------
>
> #modparam("voicemail", 
> "db_url","/home/rco/cvs/ser/sip_router/modules/vm/db")
> modparam("voicemail", "db_url", "mysql://ser:heslo@localhost/ser")
> modparam("voicemail", "email_column", "email_address")
> modparam("voicemail", "subscriber_table", "subscriber")
> modparam("voicemail", "user_column", "username")
> modparam("voicemail", "domain_column", "domain")
>
> # -------------------------  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;
>        };
>
>        # 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
>        if (loose_route()) {
>                t_relay();
>                break;
>        };
>
>        # 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") {
>
> # Uncomment this if you want to use digest authentication
>                        if (!www_authorize("nhadzter.com", 
> "subscriber")) {
>                                www_challenge("nhadzter.com", "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();
>        };
>
> }
>
> ------------- end of ser.cfg ------------------
>
> ---------start of sems.conf -----------------------
>
> # $Id: sems.conf.sample,v 1.11.2.1 2004/01/27 15:08:28 rco Exp $
> #
> # sems.conf.sample
> #
> # Sip Express Media Server (sems)
> #
> # sample configuration file
> #
> #
> # whitespaces (spaces and tabs) are ignored
> # comments start with a "#" and may be used inline
> #
> # example: option=value1, value2  # i like this option
> #
>
> ##################################
> # global parameters              #
> ##################################
>
> # optional parameter: fork={yes|no}
> #
> # - specifies if sems should run in daemon mode (background)
> #   (fork=no is the same as -E)
> fork=yes
>
> # optional parameter: stderr={yes|no}
> #
> # - debug mode: do not fork and log to stderr
> #   (stderr=yes is the same as -E)
> stderr=no
>
> # optional parameter: loglevel={0|1|2|3}
> #
> # - sets log level (error=0, warning=1, info=2, debug=3)
> #   (same as -D)
> loglevel=1
>
> # optional parameter: fifo_name=<filename>
> #
> # - path and file name of our fifo file (same as -i)
> fifo_name=/tmp/am_fifo
>
> # optional parameter: ser_fifo_name=<filename>
> #
> # - path and file name of Ser's fifo file (same as -o)
> ser_fifo_name=/tmp/ser_fifo
>
> # optional parameter: plugin_path=<path>
> #
> # - sets the path to the plug-ins
> # - may be absolute or relative to CWD
> plugin_path=/usr/local/lib/sems/plug-in/
>
> # optional parameter: smtp_server=<hostname>
> #
> # - sets address of smtp server
> smtp_server=localhost
>
> # optional parameter: smtp_port=<port>
> #
> # - sets port of smtp server
> smtp_port=25
>
> ##################################
> # module specific parameters     #
> ##################################
>
> # sample voicemail configuration (inline)
> config.voicemail=inline
>
> # optional parameter: announce_path=<path>
> #
> # - sets the path where announce files are searched for
> # - the file to be played is determined the following way:
> #   <announce_path>/<domainname>/<username>.wav
> #   if this file is not available <announce_path>/<default_anounce> is 
> used
> announce_path=/usr/local/lib/sems/audio/
>
> # parameter: default_announce=<filename>
> #
> # - sets the name of the default announce WAV file
> default_announce=default_en.wav
>
> # parameter: max_record_time=<seconds>
> #
> # - maximum record time
> max_record_time=30
>
> # parameter: accept_delay=<x>
> #
> # - delays accepting of the call for x seconds
> # - default value is 0
> accept_delay=20
>
> # end of configuration section
> # for voicemail module
> config.voicemail=end
>
> # sample announcement configuration (inline)
> config.announcement=inline
>
> # optional parameter: announce_path=<path>
> #
> # - sets the path where announce files are searched for
> announce_path=/usr/local/lib/sems/audio/
>
> # parameter: default_announce=<filename>
> #
> # - sets the name of the default announce WAV file
> default_announce=default_en.wav
>
> # end of configuration section for announcement module
> config.announcement=end
>
> # sample isdngw module configuration (external file)
> # config.isdngw=/etc/isdngw.conf
>
> # sample ivr module configuration (inline)
> config.ivr=inline
>
> #parameter: python_script_path=<full path>
> python_script_path=/etc/ivr
>
> #parameter: python_script_file=<filename>
> python_script_file=example.py
>
> # end of configuration section for ivr module
> config.ivr=end
>
> # sample conference configuration (inline)
> config.conference=inline
>
> # parameter: default_announce=<filename>
> #
> # - sets the full pathed name of the default announce WAV file.
> #   Will be played to lonely users.
> default_announce=/usr/local/lib/sems/audio/first_participant.wav
>
> # end of configuration section for conference module
> config.conference=end
>
> # example configuration for number reader
> config.number_reader=inline
>
> number_path=/usr/local/lib/sems/audio/
>
> prolog_file=welcome_to_number_reader.wav
>
> epilog_file=thanks_calling_number_reader.wav
>
> # end of number_reader configuration
> config.number_reader=end
>
> # add more module configurations here (inline or external):
> #
> # config.mymodule=<filename>
> #  or
> # config.mymodule=inline
> # ...
> # config.mymodule=end
>
> ------------- end of sems.conf -------------------
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Serusers mailing list
>serusers at lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
>  
>

-- 
  
ISC Network Engineering
The University of Pennsylvania
3401 Walnut Street, Suite 221A
Philadelphia, PA 19104  


voice: 215-573-8396 

       215-746-8001

fax: 215-898-9348    

sip:blairs at upenn.edu




More information about the sr-users mailing list