# # $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=3 # debug level (cmd line: -dddddddddd) #fork=yes #log_stderror=no # (cmd line: -E) # Uncomment these lines to enter debugging mode debug=3 fork=yes log_stderror=yes reply_to_via=1 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" mhomed=yes # ------------------ 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" loadmodule "/usr/local/lib/ser/modules/nathelper.so" loadmodule "/usr/local/lib/ser/modules/mangler.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) #modparam("nathelper", "rtpproxy_sock", "udp:192.168.5.1") # -- rr params -- # add value to ;lr param to make some broken UAs happy modparam("rr", "enable_full_lr", 1) #modparam("rr", "enable_double_rr", 1) # ------------------------- request routing logic ------------------- # main routing logic route{ 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; }; #record_route(); #record_route_strict(); if (loose_route()) { t_relay(); }; if (uri==myself) { if (uri=~"^sip:\+1973.*@") { log(1,"ATIF_LOG: Forwarding to External network\n"); rewritehostport("66.33.147.150:5110"); log(1,"ATIF_LOG: Host and User Part Rewritten\n"); setflag(6); # Mark as NATed route(2); break; } }; if(method=="INVITE") { setflag(6); route(1); break; } if (!t_relay()) { sl_reply_error(); }; break; } route[1] { if (isflagset(6)) { log(1,"ATIF_LOG: forcing rtp proxy\n"); force_rtp_proxy("","10.0.2.99"); t_on_reply("1"); log(1,"ATIF_LOG: rtp proxy forced\n"); }; if (!t_relay()) { sl_reply_error(); }; log(1,"ATIF_LOG: Exiting route[1]\n"); } route[2] { if (isflagset(6)) { force_rtp_proxy("","80.255.40.70"); t_on_reply("2"); log(1,"ATIF_LOG: rtp proxy forced\n"); }; if (!t_relay()) { sl_reply_error(); }; log(1,"ATIF_LOG: Exiting route[2]\n"); } onreply_route[1] { if (status =~ "[12][0-9][0-9]") { if (!(search("^Content-Length:\ 0"))) { force_rtp_proxy("","80.255.40.70"); log(1,"ATIF_LOG: onreply_route->force_rtp_proxy called\n"); }; t_on_reply("1"); log(1,"ATIF_LOG: Exiting onreply_route[1]\n"); }; } onreply_route[2] { if (status =~ "[12][0-9][0-9]") { if (!(search("^Content-Length:\ 0"))) { force_rtp_proxy("","10.0.2.99"); log(1,"ATIF_LOG: onreply_route->force_rtp_proxy called\n"); }; t_on_reply("2"); log(1,"ATIF_LOG: Exiting onreply_route[2]\n"); }; }