Hi,
We are implementing a Sip Express Router install along with SEMS and SerWeb.
I have to say, SER is the best sip proxy I have seen from the ones I have demoed.
I am having problems with the routing logic setup portion.
SEMS is working, I tested it by changing the main route, but all calls were forwarded to
the voicemail.
Can someone provide a sample that routes only calls not answered after 20 secs or who are
offline (but
registed as a user in the mysql database) to the voicemail? Is there anyway to dial
the voicemail from your SIP client?
I also need a sample setup that shows NAT, we are going to have some clients connected
behind NAT I am
sure.
Lastly, the first time I installed SER (I screwed it up major and had to reinstall)
I was using MySQL 4.0, now I am using mysql-3.23, the default for WhiteBox Enterprise
Linux. When I
was using 4.0, it was giving database connection errors, something about the
authentication method was
not supported. Will I have this problem if I reupgrade to 4.0 to use the unions on the
SerWeb
"Missed Calls Page"?
I am using SER version ser-0.8.14, SEMS sems-0.1.1 and the CVS build for 7/27/04 of
SerWeb. My config is listed below....
SerWeb works great, I just seem to have trouble tracking this stuff down. I also
have RPMS of the versions listed for WhiteBox that will work with the stock RedHat
Enterprise Linux
server if anyone wants them.
Thanks,
Doug Eubanks
admin(a)dougware.net
#
# $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=7 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=yes # (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"
alias=sip.simflex.net
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
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"
loadmodule "/usr/lib/ser/modules/mangler.so"
# loadmodule "/usr/lib/ser/modules/mediaproxy.so"
loadmodule "/usr/lib/ser/modules/nathelper.so"
loadmodule "/usr/lib/ser/modules/vm.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/lib/ser/modules/mysql.so"
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)
modparam("auth_db", "db_url",
"sql://REMOVED@sip.simflex.net/ser")
modparam("usrloc", "db_url",
"sql://REMOVED@sip.simflex.net/ser")
#
# 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
route{
### ADDED BY DOUG
if (!proxy_authorize("sip.simflex.net" /* realm */,
"subscriber" /* table name */ )) {
proxy_challenge("sip.simflex.net", "0");
break;
};
### END OF ADDED BY DOUG
# 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("sip.simflex.net",
"subscriber")) {
# www_challenge("sip.simflex.net",
"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();
};
}
*** DISCLAIMER ***
This e-mail and any attachments thereto may contain information, which is confidential
and/or protected
by intellectual property rights and are intended for the sole use of the recipient(s)
named above. Any
use of the information contained herein (including, but not limited to, total or partial
reproduction,
communication or distribution in any form) by persons other than the designated
recipient(s) is
prohibited. If you have received this e-mail in error, please notify the sender either by
telephone or
by e-mail and delete the material from any computer. Thank you for your cooperation.