Jan, how do you get SIP dumps? Do you mean log files from /var/log/messages ?
On Tuesday, January 20, 2004, at 10:34 AM, Jan Janak wrote:
Could you send us SIP dumps ?
Jan.
On 15-01 11:58, Srbislav Cvetkovic wrote:
Hi Arnd,
I have searched the archieves and I have found examples that I have implemented. I am running two instances of ser server with ser -f /ser.cfg and ser -f /voicemail.cfg. The respected conf fiiles are below. Now, when I call and after so many seconds my call is being redirected i get Call Failed: 404 Not Found and no voicemail turned on. Then i added that user to the grp table with serctl command like this serctl acl grant username voicemail. After I do that i get Hung up after i try to call that user. It rings for 20 seconds and then it justs hangs up. Any Ideas?
# # $Id: ser.cfg,v 1.21.2.1 2003/07/30 16:46:18 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/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/group.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)
modparam("group", "db_url", "mysql://ser:heslo@localhost/ser")
# time to give up on ringing -- global timer, applies to # all transactions modparam("tm", "fr_inv_timer", 30)
# ------------------------- request routing logic -------------------
# main routing logic route {
if (!mf_process_maxfwd_header("10")) { log("LOG: Too many hops\n"); sl_send_reply("483", "Alas Too Many Hops"); break; }; if (!(method=="REGISTER")) record_route(); if (loose_route()) { t_relay(); break; }; if (!uri==myself) { t_relay(); break; }; if (method == "REGISTER") { if (!save("location")) { sl_reply_error(); }; break; }; # does the user wish redirection on no availability? (i.e., is
he # in the voicemail group?) -- determine it now and store it in # flag 4, before we rewrite the flag using UsrLoc if (is_user_in("Request-URI", "voicemail")) { setflag(4); };
# native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { # handle user which was not found route(4); break; }; # if user is on-line and is in voicemail group, enable
redirection if (method == "INVITE" && isflagset(4)) { t_on_failure("1"); }; t_relay(); }
# ------------- handling of unavailable user ------------------ route[4] {
# non-Voip -- just send "off-line" if (!(method == "INVITE" || method == "ACK" || method ==
"CANCEL")) { sl_send_reply("404", "Not Found"); break; };
# not voicemail subscriber if (!isflagset(4)) { sl_send_reply("404", "Not Found and no voicemail
turned on"); break; };
# forward to voicemail now rewritehostport("vm_host:5090"); t_relay_to_udp("vm_host", "5090");
}
# if forwarding downstream did not succeed, try voicemail running # at vm_host:5090
failure_route[1] { revert_uri(); rewritehostport("vm_host:5090"); append_branch(); t_relay_to_udp("vm_host", "5090"); }
//////////////////////////////////////////////// # # $Id: voicemail.cfg,v 1.2 2003/10/10 06:27:18 jiri 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= # 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/local/lib/ser/modules/sl.so" loadmodule "/usr/local/lib/ser/modules/tm.so" loadmodule "/usr/local/lib/ser/modules/maxfwd.so" loadmodule "/usr/local/lib/ser/modules/mysql.so" loadmodule "/usr/local/lib/ser/modules/vm.so"
# ----------------- setting module-specific parameters ---------------
modparam("voicemail", "db_url","mysql://ser:heslo@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 (uri=~"sip:1000@.*" || uri=~"sip:1001@.*") { if (!vm("/tmp/am_fifo", "announcement")) { log("couldn't contact announcement serve r\n"); t_reply("500", "couldn not contact annou ncement server"); }; } else { if(!vm("/tmp/am_fifo","voicemail")){ log("could not contact the answer machin e\n"); t_reply("500","could not contact the ans wer 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 mach ine"); }; 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"); }
On Monday, January 12, 2004, at 03:34 PM, Arnd Vehling wrote:
Hi,
you need to setup 2 ser servers if u want to use voicemail.
One Server as "regular" sip proxy and one ser-server as dedicated voicemail server (on a different port if on the same machine).
Then you route the calls from the "regular" ser server to the dedicated voicemail server if the call isnt answered after a certain amount of time.
You cant define the timeout in means of "rings" because the ser server doesnt know how often an UAC will ring.
If you search the mail archive you will find several example configs for this setup.
best regards,
Arnd
NetHead Network Design and Security Arnd Vehling av@nethead.De Gummersbacherstr. 27 Phone: +49 221 8809210 50679 Köln Fax : +49 221 8809212
Srbo Cvetkovic | CityNet, Inc. srbo@city-net.com | Pittsburgh, PA voice: 412.481.5406 | fax: 412.431.1315
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Srbo Cvetkovic | CityNet, Inc. srbo@city-net.com | Pittsburgh, PA voice: 412.481.5406 | fax: 412.431.1315