Dear All,
I could use a little help finalizing my proxy setup. I'm new to the ser enviorment.
Here are the steps I have taken to try and get ser, serweb and vm to work;
1. Installed a copy of Fedora Core. 2. Downloaded a copy of 0.8.12 directory from the berlios ftp directory. 4. I have installed ser from the rpm's for Fedora/ 4. I have configured and got working a copy of ser using ser.cfg example and the guide on the iptel site. 5. I have configured SerWeb and I can login to the system as a user and as admin. I have put my test users in the voicemail group. 6. I have downloaded sems from the 0.8.12/contribs and have compiled this. I can do a service start sems and this loads. I assume you need sems for the answer machine function?
From what I can understand from the documentation I need to have two copies
of ser running, and to forward calls that are now answered to the voicemail server. Could some one please give me a snippet? and tell me where to insert this in my ser.cfg please?
1. I have installed ser.cfg and run my ser server on 5060. My x-ten lite can call my Cisco 7960 and vice versa. The proxy works to forward calls to the PSTN via my Asterisk box.
2. I have used the example of voicemail.cfg that comes with ser in the tar.gz to create a voicemail.cfg. The only part that does not work is;
if (len_gt( max_len )) { sl_send_reply("513", "Message too big"); break; };
In the debug I get;
0(3305) parse error (48,14-21): syntax error 0(3305) parse error (48,22-23): bad arguments
I have rem'd this out, will deal with this bit later, although I would be extremely grateful if anyone could tell me what the problem is?
So I can now run two copies of ser and everything checks out in the debug mode;
Can someone post a copy of a ser.cfg with a forward to 2nd ser to get vm working ? I have included a copy of my ser.cfg and voicemail.cfg. As always I appreciate the help.
Here is a copy of my voicemail.cfg
# # $Id: voicemail.cfg,v 1.5 2004/01/14 18:23:50 rco Exp $ # # this script is configured for use as voicemail UAS; it processes # INVITEs and BYEs and asks SEMS to record media via "vm"; in this # script, all record-routing and other constructs known from proxy # scripts are not present -- it is a simple UAS #
# ----------- global configuration parameters ------------------------
debug=7 # debug level (cmd line: -dddddddddd) fork=no log_stderror=yes # (cmd line: -E) check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) port=5090 children=4 fifo="/tmp/vm_ser_fifo"
# ------------------ module loading ----------------------------------
loadmodule "/usr/lib/ser/modules/sl.so" loadmodule "/usr/lib/ser/modules/tm.so" loadmodule "/usr/lib/ser/modules/maxfwd.so" loadmodule "/usr/lib/ser/modules/mysql.so" loadmodule "/usr/lib/ser/modules/vm.so" # ----------------- setting module-specific parameters ---------------
modparam("vm", "db_url","mysql://@localhost/ser")
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with # max_forwars==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; #};
if (!uri==myself) { sl_send_reply("404", "not reponsible for host in r-uri"); break; };
# Voicemail specific configuration - begin
if(method=="ACK" || method=="INVITE" || method=="BYE"){
if (!t_newtran()) { log("could not create new transaction\n"); sl_send_reply("500","could not create new transaction"); break; };
t_reply("100","Trying -- just wait a minute !"); if(method=="INVITE"){ log("**************** vm start - begin ******************\n"); if(!vm("/tmp/am_fifo","voicemail")){ log("could not contact the answer machine\n"); t_reply("500","could not contact the answer machine"); }; log("**************** vm start - end ******************\n"); } else if(method=="BYE"){ log("**************** vm end - begin ******************\n"); if(!vm("/tmp/am_fifo","bye")){ log("could not contact the answer machine\n"); t_reply("500","could not contact the answer machine"); }; log("**************** vm end - end ******************\n"); }; break; }; if (method=="CANCEL") { sl_send_reply("200", "cancels are junked here"); break; }; sl_send_reply("501", "method not understood here"); }
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 fifo="/tmp/ser_fifo"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database loadmodule "/usr/lib/ser/modules/mysql.so"
loadmodule "/usr/lib/ser/modules/sl.so" loadmodule "/usr/lib/ser/modules/tm.so" loadmodule "/usr/lib/ser/modules/rr.so" loadmodule "/usr/lib/ser/modules/maxfwd.so" loadmodule "/usr/lib/ser/modules/usrloc.so" loadmodule "/usr/lib/ser/modules/registrar.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded ! loadmodule "/usr/lib/ser/modules/auth.so" loadmodule "/usr/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)
# ------------------------- request routing logic -------------------
# main routing logic alias="192.168.0.206" alias="cosydser1" alias="convergenceone.com"
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 request URI is numerical, forward the request to PSTN gateway... if (uri=~"^sip:[0-9]+@convergenceone.com") { # match using a regular expression forward( 192.168.0.241, 5060 ); break; }; # if request URI is numerical, forward the request to PSTN gateway... if (uri=~"^sip:[0-9]+@192.168.0.206") { # match using a regular expression forward( 192.168.0.241, 5060 ); 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("convergenceone.com", "subscriber")) { www_challenge("convergenceone.com", "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; }; }; # 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(); };
}
Thanks and Regards
Shad Mortazavi --------------------------------------------------- Nexus Technical Manager n|m Nexus Management Inc Sydney
Shad Mortazavi wrote:
Can someone post a copy of a ser.cfg with a forward to 2nd ser to get vm working ? I have included a copy of my ser.cfg and voicemail.cfg. As always I appreciate the help.
http://lists.iptel.org/pipermail/serusers/2004-February/005996.html
regards, klaus