<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>
<META content="MSHTML 6.00.6000.16608" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008>Hi,</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=548455210-19032008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008>Please find my openser.cfg file below. Whenever I try
to call a softphone registered with Openser from another softphone (also
registered with Openser) i get a 513 Message Too Big.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008>I guess there is a loop in the configuration file but I
am unable to find it out. </SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008></SPAN></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008>Any help would be
appreciated.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008></SPAN></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008>Regards,</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008>Aadil</SPAN></SPAN></FONT><FONT face=Arial
color=#0000ff size=2><SPAN class=548455210-19032008><SPAN
class=947065910-19032008> </SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><SPAN class=947065910-19032008><FONT face=Arial
size=2>----------------------------------------------------------------------------------------------------------------------------------------------------------</FONT></SPAN></DIV>
<DIV class=Section1>
<P class=MsoNormal><FONT face=Arial size=2></FONT> </P></DIV>
<DIV><FONT face=Arial size=2>####### Global Parameters #########</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial
size=2>debug=9<BR>log_stderror=no<BR>log_facility=LOG_LOCAL0</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>fork=yes<BR>children=4</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>/* uncomment the next line to disable TCP (default
on) */<BR>#disable_tcp=yes</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>/* uncomment the next line to enable the auto
temporary blacklisting of <BR> not available destinations (default
disabled) */<BR>#disable_dns_blacklist=no</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>/* uncomment the next line to enable IPv6 lookup
after IPv4 dns <BR> lookup failures (default disabled)
*/<BR>#dns_try_ipv6=yes<BR>/* uncomment the next line to disable the auto
discovery of local aliases<BR> based on revers DNS on IPs (default
on) */<BR>#auto_aliases=no</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>/* uncomment the following lines to enable TLS
support (default off) */<BR>#disable_tls = no<BR>#listen =
tls:your_IP:5061<BR>#tls_verify_server = 1<BR>#tls_verify_client =
1<BR>#tls_require_client_certificate = 0<BR>#tls_method =
TLSv1<BR>#tls_certificate =
"/opt/openser/etc/openser/tls/user/user-cert.pem"<BR>#tls_private_key =
"/opt/openser/etc/openser/tls/user/user-privkey.pem"<BR>#tls_ca_list =
"/opt/openser/etc/openser/tls/user/user-calist.pem"</FONT></DIV>
<DIV> </DIV>
<DIV><BR><FONT face=Arial size=2>port=5060</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>/* uncomment and configure the following line if
you want openser to <BR> bind on a specific interface/port/proto
(default bind on all available) */<BR>listen=udp:<SPAN
class=548455210-19032008>IP1</SPAN>:5060<BR>listen=udp:<SPAN
class=548455210-19032008>IP2</SPAN>:5060</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT><BR><FONT face=Arial size=2>####### Modules
Section ########</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>#set module
path<BR>mpath="/opt/openser/lib/openser/modules/"</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>/* uncomment next line for MySQL DB support
*/<BR>loadmodule "mysql.so"<BR>loadmodule "sl.so"<BR>loadmodule
"tm.so"<BR>loadmodule "rr.so"<BR>loadmodule "maxfwd.so"<BR>loadmodule
"usrloc.so"<BR>loadmodule "registrar.so"<BR>loadmodule
"textops.so"<BR>loadmodule "mi_fifo.so"<BR>loadmodule "uri_db.so"<BR>loadmodule
"uri.so"<BR>loadmodule "xlog.so"<BR>loadmodule "acc.so"<BR>loadmodule
"avpops.so"</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2>/* uncomment next lines for MySQL based
authentication support <BR> NOTE: a DB (like mysql) module must be
also loaded */<BR>loadmodule "auth.so"<BR>loadmodule "auth_db.so"</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>/* uncomment next line for aliases
support<BR> NOTE: a DB (like mysql) module must be also loaded
*/<BR>#loadmodule "alias_db.so"<BR>/* uncomment next line for multi-domain
support<BR> NOTE: a DB (like mysql) module must be also
loaded<BR> NOTE: be sure and enable multi-domain support in all used
modules<BR> (see "multi-module
params" section ) */<BR>loadmodule "domain.so"<BR>/* uncomment the next two
lines for presence server support<BR> NOTE: a DB (like mysql) module
must be also loaded */<BR>#loadmodule "presence.so"</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----------------- setting module-specific
parameters ---------------</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>modparam("usrloc|auth_db|avpops|domain",
"db_url",<BR> "mysql://openser:openserrw@localhost/openser")</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2># ----- mi_fifo params -----<BR>modparam("mi_fifo",
"fifo_name", "/tmp/openser_fifo")</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- rr params -----<BR># add value to ;lr
param to cope with most of the UAs<BR>modparam("rr", "enable_full_lr", 1)<BR>#
do not append from tag to the RR (no need for this script)<BR>modparam("rr",
"append_fromtag", 0)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- rr params
-----<BR>modparam("registrar", "method_filtering", 1)<BR>/* uncomment the next
line to disable parallel forking via location */<BR># modparam("registrar",
"append_branches", 0)<BR>/* uncomment the next line not to allow more than 10
contacts per AOR */<BR>#modparam("registrar", "max_contacts", 10)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- uri_db params -----<BR>/* by default we
disable the DB support in the module as we do not need it<BR> in
this configuration */<BR>modparam("uri_db", "use_uri_table",
0)<BR>modparam("uri_db", "db_url", "")</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- acc params -----<BR>/* what sepcial
events should be accounted ? */<BR>modparam("acc", "early_media",
1)<BR>modparam("acc", "report_ack", 1)<BR>modparam("acc", "report_cancels",
1)<BR>/* by default ww do not adjust the direct of the sequential
requests.<BR> if you enable this parameter, be sure the enable
"append_fromtag"<BR> in "rr" module */<BR>modparam("acc",
"detect_direction", 0)<BR>/* account triggers (flags) */<BR>modparam("acc",
"failed_transaction_flag", 3)<BR>modparam("acc", "log_flag",
1)<BR>modparam("acc", "log_missed_flag", 2)<BR>/* uncomment the following lines
to enable DB accounting also */<BR>modparam("acc", "db_flag",
1)<BR>modparam("acc", "db_missed_flag", 2)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- usrloc params
-----<BR>#modparam("usrloc", "db_mode", 0)<BR>/* uncomment the
following lines if you want to enable DB persistency<BR> for
location entries */<BR>modparam("usrloc", "db_mode", 1)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- auth_db params -----<BR>/* uncomment
the following lines if you want to enable the DB based<BR>
authentication */<BR>modparam("auth_db", "calculate_ha1",
yes)<BR>modparam("auth_db", "password_column",
"password")<BR>modparam("auth_db", "load_credentials", "")</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- alias_db params -----<BR>/* uncomment
the following lines if you want to enable the DB based<BR> aliases
*/<BR>#modparam("alias_db",
"db_url",<BR># "mysql://openser:openserrw@server/openser")</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- domain params -----<BR>/* uncomment the
following lines to enable multi-domain detection<BR> support
*/<BR>modparam("domain", "db_mode", 1) # Use caching</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- multi-module params -----<BR>/*
uncomment the following line if you want to enable multi-domain
support<BR> in the modules (dafault off)
*/<BR>#modparam("alias_db|auth_db|usrloc|uri_db", "use_domain", 1)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># ----- presence params -----<BR>/* uncomment
the following lines if you want to enable presence */<BR>#modparam("presence",
"db_url",<BR># "mysql://openser:openserrw@server/openser")<BR>#modparam("presence",
"force_active", 1)<BR>#modparam("presence", "server_address",
"sip:192.168.1.2:5060")</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>modparam("avpops", "avp_table",
"usr_preferences")</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>####### Routing Logic ########</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><BR><FONT face=Arial size=2># main request routing logic</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>route {<BR> # initial sanity checks --
messages with<BR> # max_forwards==0, or excessively long
requests<BR> if (!mf_process_maxfwd_header("10"))
{<BR> sl_send_reply("483","Too Many
Hops");<BR> exit;<BR> };<BR> if (msg:len >= 2048 )
{<BR> sl_send_reply("513", "Message too
big");<BR> exit;<BR> };<BR> # we record-route all messages
-- to make sure that<BR> # subsequent messages will go through our proxy;
that's<BR> # particularly good if upstream and downstream
entities<BR> # use different transport protocol<BR> if
(!method=="REGISTER")<BR> record_route();<BR> # subsequent
messages withing a dialog should take the<BR> # path determined by
record-routing<BR> if (loose_route()) {<BR> # mark routing logic
in request<BR> append_hf("P-hint: rr-enforced\r\n");
<BR> route(1);<BR> };<BR> if (!uri==myself)
{<BR> if (method=="REGISTER")
{<BR> # if (!www_authorize("", "subscriber"))
{<BR> #www_challenge("",
"0");<BR> #exit;<BR> #} #<BR> #save("location");<BR> #exit;<BR> #xlog("L_DEBUG",
"Unknown Domain");<BR> #sl_send_reply("403",
"Forbidden");<BR> };<BR> </FONT><FONT face=Arial
size=2> if (method=="INVITE") {<BR> xlog("L_DEBUG",
"INVITE for other
domain");<BR> route(4);<BR> };</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> # mark routing logic in
request<BR> append_hf("P-hint: outbound\r\n");
<BR> route(1);<BR> };<BR> # if the request is for other
domain use UsrLoc<BR> # (in case, it does not work, use the following
command<BR> # with proper names and addresses in it)<BR> if
(uri==myself) {<BR> if (method=="REGISTER") {<BR> if
(!www_authorize("", "subscriber"))
{<BR> www_challenge("",
"0");<BR> exit;<BR> };<BR> save("location");<BR> exit;<BR> };<BR> #
requests for Media server<BR> #if(is_method("INVITE") &&
!has_totag() ) {<BR> if(is_method("INVITE"))
{<BR> ;route(3);<BR> exit;<BR> };</FONT></DIV>
<DIV><FONT size=+0><BR><FONT face=Arial size=2> # native SIP
destinations are handled using our USRLOC DB<BR> if
(!lookup("location")) {<BR> if(isflagset(2))
{<BR> # route to Asterisk Media
Server<BR> prefix("1");<BR> rewritehostport("<SPAN
class=548455210-19032008>asterisk</SPAN>:6060");<BR> route(1);<BR> }
else {<BR> sl_send_reply("404", "Not
Found");<BR> exit;<BR> }<BR> };<BR> append_hf("P-hint:
usrloc applied\r\n"); <BR> };<BR> route(1);<BR>}<BR>route[1]
{<BR> <BR> xlog("L_INFO","Entered route
1\n");<BR> if(isflagset(2))<BR> t_on_failure("1");<BR> if
(!t_relay())
{<BR> sl_reply_error();<BR> };<BR> exit;<BR>}<BR>route[3]
{<BR> xlog("L_INFO","Entered route
3\n");<BR>
t_on_reply("3");</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> # Authenticate
calls<BR> #if(!proxy_authorize("","subscriber"))
{<BR> # proxy_challenge("","0");<BR> # exit;<BR> #}<BR> #
end Authenticate calls</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> # route to Asterisk Media
Server<BR> #rewritehostport("<SPAN
class=947065910-19032008>asterisk</SPAN>:6060");<BR> route(1);<BR>}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>#Route for calls to other domains<BR>route[4]
{<BR> xlog("L_INFO","Entered route
4");<BR> t_on_reply("4");<BR> <BR> rewritehostport("<SPAN
class=947065910-19032008>asterisk</SPAN>:6060");<BR> if (!t_relay())
{<BR> sl_reply_error();<BR> };<BR> exit;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>failure_route[1] {<BR> if (t_was_cancelled())
{<BR> xdbg("transaction was cancelled by
UAC\n");<BR> return;<BR> }<BR> # restore initial
uri<BR>
avp_pushto("$ruri","$avp(i:10)");<BR> prefix("1");<BR> # route to
Asterisk Media Server<BR> rewritehostport("<SPAN
class=947065910-19032008>asterisk</SPAN>:6060");<BR> resetflag(2);<BR> route(1);<BR>}<BR>failure_route[4]
{<BR>
t_relay();<BR>}<BR>onreply_route[3]<BR>{<BR>
if(status =~"180") {<BR>
t_on_failure("4");<BR>
};<BR>}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><SPAN class=947065910-19032008><FONT face=Arial
size=2>----------------------------------------------------------------------------------------------------------------------------------------------------------</FONT></SPAN></DIV></BODY></HTML>