I've created users beginning with 833 and 834
prefix, my aim is whenever a user needs to call numbers not beginning with 833
or 834 prefix the call will be directed to 212.154.32.154. It was working before
but so many broken things and especially bad voice quality, now voice works
great with below config and doing port forwarding for 5060 udp and tcp in UA's
gateways a SIP2SIP call is possible without sucking SER's bandwidth, when i
uncomment the lines ser does not work and don't know why.
It was working before but since i've downloaded
newer SER.CFG it doesn't work for me and i'm still a newbie.
if
(uri==myself) {
if (method=="REGISTER")
{
# if (!(uri=~"sip:(833)|(834)"))
{
#
t_relay_to_udp("212.154.32.154","5060");
save("location");
break;
};
My complete SER.CFG as follows;
#
# $Id: ser.cfg,v 1.27 2005/03/10 14:16:25
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)
#memlog=5 # memory debug log
level
#log_facility=LOG_LOCAL0 # sets the facility used for logging (see
syslog(3))
/* Uncomment these lines to enter debugging
mode
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"
#user=ser
#group=ser
#fifo_user=ser
# owner of the ser fifo
#fifo_group=ser
#fifo_mode=0660 # fifo's
permissions
#disable_core=yes #disables core dumping
#open_fd_limit=1024 #
sets the open file descriptors limit
#mhomed=yes # usefull for
multihomed hosts, small performance
penalty
#disable_tcp=yes
#tcp_accept_aliases=yes # accepts the tcp alias
via option (see NEWS)
#
# ------------------ 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/textops.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)
# ------------------------- 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 (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
if (!method=="REGISTER")
record_route();
#
subsequent messages withing a dialog should take
the
# path determined by
record-routing
if (loose_route())
{
# mark routing logic in
request
append_hf("P-hint:
rr-enforced\r\n");
route(1);
break;
};
if
(!uri==myself)
{
# mark routing logic in
request
append_hf("P-hint:
outbound\r\n");
route(1);
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")
{
# if (!(uri=~"sip:(833)|(834)"))
{
#
t_relay_to_udp("212.154.32.154","5060");
save("location");
break;
};
lookup("aliases");
if (!uri==myself)
{
append_hf("P-hint: outbound
alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC
DB
if (!lookup("location"))
{
sl_send_reply("404", "Not
Found");
break;
};
};
append_hf("P-hint: usrloc
applied\r\n");
route(1);
}
route[1]
{
# send it out
now; use stateful forwarding as it works
reliably
# even for
UDP2TCP
if (!t_relay())
{
sl_reply_error();
};
}