[Serusers] ser+sems problem

Sean u0085200 at cc.ncu.edu.tw
Fri Aug 13 21:24:49 CEST 2004


when I try to a call, it appear this problem
and  I install ser-0.8.12 and sems(cvs)
I can't find ans_machine in my server.
how to solve it.
thanks.

Aug 14 03:17:12 knuth /usr/local/sbin/ser[19748]: voicemail - initializing
child 8
Aug 14 03:17:12 knuth /usr/local/sbin/ser[19742]: voicemail - initializing
child 6
Aug 14 03:17:12 knuth /usr/local/sbin/ser[19731]: SER: open_uac_fifo: fifo
server up at /tmp/ser_fifo...
Aug 14 03:17:12 knuth /usr/local/sbin/ser[19745]: voicemail - initializing
child 7
Aug 14 03:17:12 knuth /usr/local/sbin/ser[19752]: voicemail - initializing
child -4
Aug 14 03:17:12 knuth /usr/local/sbin/ser[19696]: voicemail - initializing
child 0
Aug 14 03:17:12 knuth /usr/local/sbin/ser[19739]: voicemail - initializing
child 5
Aug 14 03:17:18 knuth /usr/local/sbin/ser[19718]: ERROR: voicemail:
ans_machine deamon is not running !
Aug 14 03:17:18 knuth /usr/local/sbin/ser[19718]: ERROR: voicemail: No such
device or address
Aug 14 03:17:18 knuth /usr/local/sbin/ser[19718]: ERROR: vm_start:
write_to_fifo failed
----
I try to sems -E -D 3

Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command t_reply is not available
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: ringing
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: 00004D3624F6662E
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must have at least 3 chars
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command t_reply is not available
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must have at least 3 chars
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: 00004D3624F6662E
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: Content-Type: application/sdp
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: v=0
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: s=session
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: t=0 0
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: a=rtpmap:0 /^H
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command t_reply is not available
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: could not send response.
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must begin with :: 00004D3624F6662E
Aug 14 03:20:13 knuth /usr/local/sbin/ser[19731]: ERROR: fifo_server:
command must have at least 3 chars


here is my and ser.cfg  sems.conf 
----
debug=3
fork=yes
log_stderror=no
check_via=no
dns=no
rev_dns=no
port=5060
children=4
fifo="/tmp/ser_fifo"

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

modparam("usrloc", "db_mode", 2)
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("rr", "enable_full_lr", 1)
modparam("voicemail", "db_url", "sql://ser:heslo@localhost/ser")
modparam("tm", "fr_inv_timer", 15)



# -------------------------  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
        if (loose_route()) {
                t_relay();
                break;
        };
#nsert_ucontact(locations, contact, expires, q, callid, cseq, flags, cont);
        # 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("<Myserver>", "subscriber")) {
                                www_challenge("<Myserver>", "0");
                                break;
                        };

                        save("location");


                        break;
                };

lookup("aliases");
};

                # native SIP destinations are handled using our USRLOC DB
                if (!lookup("location")) {
#                       sl_send_reply("404", "Not Found");
#                       break;
#              


   


                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");
   };
  };

};
        
        # 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();
          };
    
}


----


# $Id: sems.conf.sample,v 1.17 2004/07/19 20:43:14 sayer 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

# optional parameter: rtp_low_port=<port>
#
# - sets port of rtp lowest server
#rtp_low_port=1024

# optional parameter: rtp_high_port=<port>
#
# - sets port of rtp highest server
#rtp_high_port=65535

##################################
# module specific parameters     #
##################################

# sample voicemail configuration (inline)
config.voicemail=inline

# optional parameter: rec_file_extension=<ext>
# 
# - sets the file extension which will be used
#   to record messages.
# - example 1: wav
# - example 2: mp3
#
# WARNING: you must compile the mp3 plug-in
#          in order to use 'mp3' as default
#          extension. You will need the lame
#          encoder for that.
#          See plug-in/mp3/ReadmeMP3.txt for
#          more information.
#
rec_file_extension=wav

# 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=0

# parameter: email_template=<filename>
#
# - email template file
# 
# See the README file in <sems-src>/plug-in/voicemail
# for more information on the syntax used.
#
email_template=/usr/local/lib/sems/plug-in/mail.template

# 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
#
#
# The IVR checks for a script with the named of the callee
# (<local part in r-uri>.py for python, <local part in r-uri>.pl for perl)
# in the directory <ivr_script_path><domain>, then for 
# <ivr_script_path><domain><ivr_script_file>. If this is  not found,
# <ivr_script_path>/<local part in r-uri>.py if searched, 
# and if this is not found, <ivr_script_path>/<ivr_script_file> is used.
#
# So with a call to sayer at iptel.org and
#ivr_script_path=/etc/ivr and 
#ivr_script_file=ivr.py
# these files are checked:
#/etc/ivr/iptel.org/sayer.py
#/etc/ivr/iptel.org/ivr.py
#/etc/ivr/sayer.py
#/etc/ivr/ivr.py
#
  #parameter: ivr_script_path:
  # path to ivr scripts.
  # 
  ivr_script_path=/etc/ivr/
  # default script file: this will be executed if <user>.py does not exist.
  #
  ivr_script_file=ivr.py

  # parameter : tts_caching
  #  y or n
  #       text will be read from waves already synthesized and 
  # cached in cache_path 
  tts_caching=y

  # parameter : tts_cache_path
  #  path to cache waves
  #  path must exist! 
  tts_cache_path=/tmp/wavs
# 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20040814/90163281/attachment.htm>


More information about the sr-users mailing list