debug=3 fork=yes log_stderror=no log_facility=LOG_LOCAL0 log_name="SER" check_via=no dns=no rev_dns=no mhomed=1 #Set the server to try to locate outbound interface on multihomed host. #By default is not (0) - it is rather time consuming. #no need of force_send_socket() listen=212.249.15.4 listen=195.129.125.74 port=5060 children=4 mpath="/usr/lib/openser/modules/" loadmodule "sl.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "maxfwd.so" loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "textops.so" loadmodule "xlog.so" loadmodule "statistics.so" loadmodule "mi_fifo.so" #modparam("tm", "fr_timer",120) modparam("usrloc", "db_mode", 0) modparam("rr", "enable_full_lr", 1) modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") route { xlog("L_NOTICE","$Cbx$rm $si to $Ri ($fU to $tU)$Cxx\n"); t_on_reply("1"); if(!mf_process_maxfwd_header("3")) { sl_send_reply("483","Too Many Hops"); exit; } if(msg:len>=2048) { sl_send_reply("513", "Message too big"); exit; } if(loose_route()) { xlog("L_NOTICE","$CrxLoose Route$Cxx\n"); t_relay(); exit; } if(method=="CANCEL") { t_relay(); exit; } if(method=="ACK") { exit; } if(method=="INVITE") { record_route(); if($si=="62.189.34.7" || $si=="212.190.89.137") { xlog("L_INFO","==> INCOMING CALL from $fU to $tU\n"); subst_uri("/^sip:\+/sip:/i"); rewritehost("128.179.67.35"); } else { xlog("L_INFO","==> OUTGOING CALL from $fU to $tU\n"); append_hf("Remote-Party-ID: ;privacy=off;screen=yes\r\n"); rewritehost("212.190.89.137"); } } t_relay(); } onreply_route[1] { if($(rr{s.len})>8) $var(rr)=$(rr{s.substr,0,6})+".."; else $var(rr)=$rr; xlog("L_NOTICE","$Cpx$rs ($var(rr)) for $rm $si to $Ri ($fU to $tU)$Cxx\n"); if($hdr(Record-Route[0])!="") $var(rr0)=$hdr(Record-Route[0]); else $var(rr0)="0"; if($hdr(Record-Route[1])!="") $var(rr1)=$hdr(Record-Route[1]); else $var(rr1)="0"; if($hdr(Record-Route[2])!="") $var(rr2)=$hdr(Record-Route[2]); else $var(rr2)="0"; if($hdr(Record-Route[3])!="") $var(rr3)=$hdr(Record-Route[3]); else $var(rr3)="0"; if($hdr(Record-Route[4])!="") $var(rr4)=$hdr(Record-Route[4]); else $var(rr4)="0"; /* if($var(rr0)!="0") xlog("L_NOTICE","$Cgxrr0=\"$var(rr0)\"$Cxx\n"); if($var(rr1)!="0") xlog("L_NOTICE","$Cgxrr1=\"$var(rr1)\"$Cxx\n"); if($var(rr2)!="0") xlog("L_NOTICE","$Cgxrr2=\"$var(rr2)\"$Cxx\n"); if($var(rr3)!="0") xlog("L_NOTICE","$Cgxrr3=\"$var(rr3)\"$Cxx\n"); if($var(rr4)!="0") xlog("L_NOTICE","$Cgxrr4=\"$var(rr4)\"$Cxx\n"); */ if( $var(rr0)!="0" && $var(rr1)=="0" ) { $var(rr00)=$(var(rr0){s.select,0,,}); $var(rr01)=$(var(rr0){s.select,1,,}); $var(rr02)=$(var(rr0){s.select,2,,}); $var(rr03)=$(var(rr0){s.select,3,,}); $var(rr04)=$(var(rr0){s.select,4,,}); remove_hf("Record-Route"); if($var(rr00)!="") { #xlog("L_NOTICE","rr00=\"$var(rr00)\"\n"); append_hf("Record-Route: $var(rr00)\r\n"); } if($var(rr01)!="") { #xlog("L_NOTICE","rr01=\"$var(rr01)\"\n"); append_hf("Record-Route: $var(rr01)\r\n"); } if($var(rr02)!="") { #xlog("L_NOTICE","rr02=\"$var(rr02)\"\n"); append_hf("Record-Route: $var(rr02)\r\n"); } if($var(rr03)!="") { #xlog("L_NOTICE","rr03=\"$var(rr03)\"\n"); append_hf("Record-Route: $var(rr03)\r\n"); } if($var(rr04)!="") { #xlog("L_NOTICE","rr04=\"$var(rr04)\"\n"); append_hf("Record-Route: $var(rr04)\r\n"); } } }