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@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 | |||
|