config file (falled back to default config file):


# $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 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

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"

fifo_db_url="mysql://ser:heslo@localhost/ser"


alias="flamejob.local.net"

alias="192.168.1.6"

# ------------------ 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 >= 2048 ) {

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) {

log(1,"uri is myself\n");

if (method=="REGISTER") {


# Uncomment this if you want to use digest authentication


# if (!www_authorize("iptel.org", "subscriber")) {

# www_challenge("iptel.org", "0");

# break;

# };


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();

};

}