<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EstiloDeEmail17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=PT-BR link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span lang=EN-US>Hi Raul<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Here it is,<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US># ----------- global configuration
parameters ------------------------<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>debug=3
<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>fork=yes<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>log_stderror=yes <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>children=1<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>disable_tcp=no<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>log_facility=LOG_LOCAL0<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US># ------------------ module loading
----------------------------------<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>#set module path<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>mpath="/usr/lib/kamailio/modules/"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "sl.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "tm.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>modparam("tm",
"fr_timer", 5)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>modparam("tm",
"fr_inv_timer_avp", "$avp(i:704)")<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "rr.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "usrloc.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "maxfwd.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "textops.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "xlog.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "avpops.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "registrar.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "uri_db.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "db_mysql.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "siputils.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "auth.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "auth_db.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "mi_fifo.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "acc.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "pv.so"<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>modparam("mi_fifo",
"fifo_name", "/tmp/openser_fifo")<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>loadmodule "lcr.so"<o:p></o:p></span></p>
<p class=MsoNormal>modparam("lcr", "db_url",
"mysql://root:mypass@localhost/openser")<o:p></o:p></p>
<p class=MsoNormal>modparam("lcr", "gw_uri_avp",
"$avp(i:709)")<o:p></o:p></p>
<p class=MsoNormal>modparam("lcr", "ruri_user_avp",
"$avp(i:500)")<o:p></o:p></p>
<p class=MsoNormal>modparam("lcr", "rpid_avp",
"$avp(i:302)")<o:p></o:p></p>
<p class=MsoNormal>modparam("lcr", "flags_avp",
"$avp(i:712)")<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span lang=EN-US># ------------------------- request
routing logic -------------------<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>route{<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(!mf_process_maxfwd_header("10")) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> sl_send_reply("483","Too
Many Hops");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> route(4);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(has_totag()) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(loose_route()) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(is_method("BYE")) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> setflag(1);
<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> setflag(3);
<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> route(1);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }
else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(is_method("SUBSCRIBE") && uri == myself) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> route(2);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
( is_method("ACK") ) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
( t_check_trans() ) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> t_relay();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }
else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> sl_send_reply("404","Not
here");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(is_method("CANCEL"))<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(t_check_trans())<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> t_relay();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US> t_check_trans();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> route(3);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(!is_method("REGISTER|MESSAGE"))<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> record_route();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(is_method("INVITE")) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> setflag(1);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(!uri==myself)<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if(
is_method("PUBLISH|SUBSCRIBE"))<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> route(2);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(is_method("REGISTER"))<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(!save("location"))<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> sl_reply_error();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
($rU==NULL) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> #
request with no Username in RURI<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> sl_send_reply("484","Address
Incomplete");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(!lookup("location")) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> switch
($retcode) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> case
-1:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> case
-3:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> t_newtran();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> t_reply("404",
"Not Found");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> case
-2:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> sl_send_reply("405",
"Method Not Allowed");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> setflag(2);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US> route(1);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>route[1] {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(!t_relay()) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> sl_reply_error();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>route[2] {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(!load_gws()) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> sl_send_reply("503",
"Unable to load gateways");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }
else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> $var(i)
= 0;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> while(is_avp_set("$(avp(i:709)[$var(i)])"))
{<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> </span>xlog("L_INFO",
"loading gw_uri_avp[$var(i)]='$(avp(i:709)[$var(i)])'\n");<o:p></o:p></p>
<p class=MsoNormal> $var(i)
= $var(i) + 1;<o:p></o:p></p>
<p class=MsoNormal> <span
lang=EN-US>};<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if(is_avp_set("$avp(i:709)"))
{<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> xlog("L_INFO",
"trying gateway '$avp(i:709)'\n");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> </span>}
else {<o:p></o:p></p>
<p class=MsoNormal> <span
lang=EN-US>xlog("L_INFO", "no available gateways ...\n");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(next_gw()) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> xlog("L_INFO",
"ruri_user_avp='$avp(i:500)'\n");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> t_on_failure("2");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> route(1);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }
else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> sl_send_reply("503",
"No available gateways");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> exit;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>failure_route[2] {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> xlog("L_INFO",
"entering failure_route[2] for reply code '$T_reply_code'\n");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(t_check_status("408|50[34]")) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if(is_avp_set("$avp(i:709)"))
{<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> xlog("L_INFO",
"trying next gateway '$avp(i:709)'\n");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }
else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> xlog("L_INFO",
"no more gateways to try ...\n");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> };<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if
(next_gw()) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> t_on_failure("2");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> route(1);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }
else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> t_reply("503",
"No gateways");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> </span>exit;<o:p></o:p></p>
<p class=MsoNormal> };<o:p></o:p></p>
<p class=MsoNormal> exit;<o:p></o:p></p>
<p class=MsoNormal> };<o:p></o:p></p>
<p class=MsoNormal>}<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Rafael Moreno<o:p></o:p></p>
<p class=MsoNormal><b>Matrix Telecom<o:p></o:p></b></p>
<p class=MsoNormal>www.matrixtelecom.net.br / <b>Phone:</b> 55<b>.</b>11<b>.</b>3323-9207<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>