<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial, helvetica, sans-serif;font-size:10pt"><DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">Set the flag 2 and 3 in the loose route for BYE requests. </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">if (loose_route()) {</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;&nbsp;&nbsp; if (is_method("BYE")) {&nbsp;&nbsp;&nbsp; </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setflag(2);</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setflag(3);</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">&nbsp;&nbsp;&nbsp; };</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif">};</DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><BR><BR>&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">----- Mensagem original ----<BR>De: MagoDaViola &lt;magodaviola@ig.com.br&gt;<BR>Para: users@lists.openser.org<BR>Enviadas: Sábado, 5 de Abril de 2008 16:50:56<BR>Assunto: [OpenSER-Users] Openser with freeradius not accounting BYE method<BR><BR><BASE>
<STYLE type=text/css>BODY {
FONT-SIZE:small;COLOR:#0000ff;FONT-FAMILY:Verdana, Arial, Helvetica, sans-serif;}
TD {
FONT-SIZE:small;COLOR:#0000ff;FONT-FAMILY:Verdana, Arial, Helvetica, sans-serif;}
TH {
FONT-SIZE:small;COLOR:#0000ff;FONT-FAMILY:Verdana, Arial, Helvetica, sans-serif;}
BODY {
}
</STYLE>

<DIV>&nbsp;&nbsp;&nbsp; I´m has a problem that my openser sometimes not accounting bye method and this cause a call without pay.&nbsp;See the&nbsp;openser.cfg:</DIV>
<DIV>#<BR># $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $<BR>#<BR># simple quick-start config script<BR>#&nbsp;&nbsp;&nbsp;&nbsp; </DIV>
<DIV>&nbsp;</DIV>
<DIV># ----------- global configuration parameters ------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>debug=4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # debug level (cmd line: -dddddddddd)<BR>##--<BR>#<BR># Uncomment these lines to daemonize<BR>fork=yes<BR>log_stderror=no # (cmd line: -E)<BR>##--<BR>#<BR># Uncomment these lines to enter debugging mode<BR>#fork=no<BR>#log_stderror=yes<BR>##--</DIV>
<DIV>&nbsp;</DIV>
<DIV>alias=sip.processavoip.net<BR>listen=201.32.70.20<BR>#syn_branch=1<BR>memlog=3<BR>sip_warning=1<BR>server_signature=yes<BR>reply_to_via=0<BR>mhomed=0<BR>disable_dns_blacklist=yes</DIV>
<DIV>&nbsp;</DIV>
<DIV>unix_sock="/tmp/openser.sock"</DIV>
<DIV>&nbsp;</DIV>
<DIV>check_via=0&nbsp;&nbsp;&nbsp;&nbsp; # (cmd. line: -v)<BR>dns=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (cmd. line: -r)<BR>rev_dns=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (cmd. line: -R)<BR>port=5060<BR>children=4<BR>mpath="/usr/local/lib/openser/modules/"</DIV>
<DIV>&nbsp;</DIV>
<DIV># ------------------ module loading ----------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV># Uncomment this if you want to use SQL database<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"</DIV>
<DIV>loadmodule "auth.so"&nbsp;&nbsp;&nbsp;&nbsp; <BR>loadmodule "auth_radius.so"<BR>loadmodule "uri.so"<BR>loadmodule "domain.so"<BR>loadmodule "permissions.so"<BR>loadmodule "mediaproxy.so" <BR>loadmodule "nathelper.so"&nbsp; <BR>loadmodule "acc.so"<BR>loadmodule "xlog.so"<BR>loadmodule "dbtext.so"<BR>loadmodule "uri_db.so"<BR>loadmodule "mi_fifo.so"<BR>loadmodule "group.so"&nbsp; <BR># ----------------- setting module-specific parameters ---------------</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- mi-fifo params --<BR>modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- usrloc params --<BR>modparam("usrloc", "db_mode", 2)<BR>modparam("usrloc", "nat_bflag", 6)<BR>modparam("usrloc", "domain_column", "fk_domains")<BR>modparam("usrloc", "user_column", "fk_accounts") </DIV>
<DIV>&nbsp;</DIV>
<DIV># -- rr params --<BR># add value to ;lr param to make some broken UAs happy<BR>modparam("rr", "enable_full_lr", 1)</DIV>
<DIV>&nbsp;</DIV>
<DIV>## -- database params --<BR>modparam("acc|usrloc|group|domain|uri_db|permissions", "db_url", "mysql://root:master@localhost/openser")</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- radius params --<BR>modparam("acc|auth_radius", "radius_config", "/etc/radiusclient-ng/radiusclient.conf")</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- radius permissions --<BR>modparam("permissions", "db_mode", 1)<BR>modparam("permissions", "trusted_table", "trusted")</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- group params --<BR>modparam("group", "table", "accounts_groups")<BR>modparam("group", "user_column", "fk_accounts")<BR>modparam("group", "domain_column", "fk_domains")<BR>modparam("group", "group_column", "pk_accounts_groups")<BR>modparam("group", "use_domain", 0)</DIV>
<DIV>&nbsp;</DIV>
<DIV>## -- acc params --<BR>modparam("acc", "radius_missed_flag", 3)<BR>modparam("acc", "radius_flag", 2)<BR>#modparam("acc", "radius_extra", "via=$hdr(Via[*]); email=$avp(s:email)")<BR>modparam("acc", "log_level", 2)<BR>modparam("acc", "log_extra", "src_user=$fU;src_domain=$fd;dst_user=$rU;dst_domain=$rd")</DIV>
<DIV>modparam("acc", "radius_extra", "User-Name=$fU;Suffix=$fd;Sip-Translated-Request-URI=$ru")<BR>modparam("acc", "service_type", 15)<BR>modparam("acc", "failed_transaction_flag", 1)<BR>modparam("acc", "report_ack", 1)<BR>modparam("acc", "report_cancels", 1)<BR>modparam("acc", "log_missed_flag", 2)<BR>modparam("acc", "log_flag", 1)<BR>## -- acc params without radius --<BR>#modparam("acc", "db_missed_flag", 3)<BR>#modparam("acc", "db_flag", 2)<BR>#modparam("acc", "db_table_acc", "call_history")<BR>#modparam("acc", "db_table_missed_calls", "call_history_missed")</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- uri_db params --<BR>modparam("uri_db", "subscriber_table", "accounts")<BR>modparam("uri_db", "subscriber_domain_column", "fk_domains")<BR>modparam("uri_db", "subscriber_user_column", "pk_accounts") </DIV>
<DIV>&nbsp;</DIV>
<DIV># -- domain params&nbsp; --<BR>modparam("domain", "domain_table", "domains")<BR>modparam("domain", "domain_col", "pk_domains")</DIV>
<DIV>&nbsp;</DIV>
<DIV># -- nathelper, mediaproxy nd registrar params --<BR>modparam("nathelper", "sipping_bflag", 7)<BR>modparam("nathelper", "sipping_from", "sip:pinger@openser.org")<BR>modparam("nathelper", "rtpproxy_disable", 1)<BR>modparam("nathelper", "natping_interval", 30)<BR>modparam("nathelper", "ping_nated_only", 1)&nbsp;&nbsp; # Ping only clients behind NAT<BR>modparam("registrar|nathelper", "received_avp", "$avp(i:42)") # to configure nat at openser 1.2, 1.3 or 1.4<BR>modparam("mediaproxy", "mediaproxy_socket", "/var/run/mediaproxy.sock")<BR>modparam("mediaproxy", "natping_interval", 30)<BR>#modparam("mediaproxy", "sip_asymmetrics", "/etc/openser/sip-clients")<BR>#modparam("mediaproxy", "rtp_asymmetrics", "/etc/openser/rtp-clients")<BR>#modparam("registrar", "received_avp", "$avp(s:rcv)") # to configure nat at openser 1.2, 1.3 or 1.4</DIV>
<DIV>&nbsp;</DIV>
<DIV><BR># -- tm params --<BR># set time for which ser will be waiting for a final response;<BR># fr_inv_timer sets value for INVITE transactions, fr_timer&nbsp;&nbsp; <BR># for all others<BR>#modparam("tm", "fr_inv_timer", 15 ) #Tempo maximo do ring antes de atender<BR>#modparam("tm", "fr_timer", 1)<BR>#modparam("tm", "wt_timer", 1)</DIV>
<DIV>&nbsp;</DIV>
<DIV><BR># -------------------------&nbsp; request routing logic -------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV># main routing logic</DIV>
<DIV>&nbsp;</DIV>
<DIV>route {</DIV>
<DIV>&nbsp; # initial sanity checks -- messages with<BR>&nbsp; # max_forwards==0, or excessively long requests<BR>&nbsp; if (!mf_process_maxfwd_header("10")) {<BR>&nbsp;&nbsp;&nbsp; sl_send_reply("483","Muitos Hops"); <BR>&nbsp;&nbsp;&nbsp; log(1, "486: Muitos Hops\n");<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; if (msg:len &gt;=&nbsp; 2048 ) {<BR>&nbsp;&nbsp;&nbsp; sl_send_reply("513", "Message to big");<BR>&nbsp;&nbsp;&nbsp; log(1, "513: Message too bi \n");<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; ##--<BR>&nbsp; # Eh feita a gravacao de todas as mensagens para se certificar que todas as mensagens<BR>&nbsp; # passem pelo proxy o que eh importante particularmente se as entidades estao usando <BR>&nbsp; # um protocolo de transporte diferente<BR>&nbsp; ##--<BR>&nbsp; if (method!="REGISTER") {<BR>&nbsp;&nbsp;&nbsp; record_route();<BR>&nbsp; };<BR>&nbsp; route(6);<BR>&nbsp; ##--<BR>&nbsp; # Secao de finalizacao da chamada<BR>&nbsp;
 ##--<BR>&nbsp; if (method=="BYE" || method=="CANCEL") {<BR>&nbsp;&nbsp;&nbsp; end_media_session();<BR>&nbsp; };<BR>&nbsp; ##--<BR>&nbsp; # mensagens subsequentes dentro de um dialogo deveriam tomar um caminho pre-determinado<BR>&nbsp; # pela gravacao das rotas (record route)<BR>&nbsp; ##--<BR>&nbsp; if (loose_route()) {<BR>&nbsp;&nbsp;&nbsp; # marca a logica de roteamento no pedido<BR>&nbsp;&nbsp;&nbsp; append_hf("P-hint: rr_enforced\r\n");&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; if (has_totag() &amp;&amp; (method=="INVITE" || method=="ACK")) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Main Route: Fixing SDP to $fu $rm (loose route)\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (client_nat_test("3") || isflagset(5)) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setbflag(6);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use_media_proxy();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>&nbsp;&nbsp;&nbsp; };&nbsp; <BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Main Route:
 Loose Route relaying\n");<BR>&nbsp;&nbsp;&nbsp; route(1);<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; if (!uri==myself) {<BR>&nbsp;&nbsp;&nbsp; # marca a logica de roteamento no pedido<BR>&nbsp;&nbsp;&nbsp; append_hf("P-hint: rr_enforced\r\n");&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Main Route: Relaing mesage to proxy destination \n");<BR>&nbsp;&nbsp;&nbsp; route(4);<BR>&nbsp;&nbsp;&nbsp; route(1);</DIV>
<DIV>&nbsp; };<BR>&nbsp; ##--<BR>&nbsp; # Verifica baseado na tabela de dominios se a parte host da R-URI comtem um dos dominios<BR>&nbsp; # quais o proxy eh responsavel<BR>&nbsp; ##--<BR>&nbsp; if (!is_uri_host_local()) {<BR>&nbsp;&nbsp;&nbsp; if (is_from_local() || allow_trusted()) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(4);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(1);<BR>&nbsp;&nbsp;&nbsp; } else {&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("403", "Forbinden...");<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; ##--<BR>&nbsp; # A rotina abixo eh chamada para marcar o registro com NAT<BR>&nbsp; ##--<BR>&nbsp; if (method=="CANCEL") {<BR>&nbsp;&nbsp;&nbsp; route(1);<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; } else if (method=="REGISTER") {<BR>&nbsp;&nbsp;&nbsp; route(2);<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; } else if (method=="INVITE") {<BR>&nbsp;&nbsp;&nbsp; route(3);<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp;
 };<BR>&nbsp; ##--<BR>&nbsp; # Verifica se existem aliases para este endereco e se eles nao pertencem<BR>&nbsp; # a teste dominio encaminhamos para frente<BR>&nbsp; ##--<BR>&nbsp; lookup("aliases");<BR>&nbsp; if (uri!=myself) {<BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Main Route: aliases relayin to other domain proxy\n");<BR>&nbsp;&nbsp;&nbsp; route(4);<BR>&nbsp;&nbsp;&nbsp; route(1);<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; ##--<BR>&nbsp; # Verifica se encontra o usuario na base de localizacao<BR>&nbsp; ##--<BR>&nbsp; if (!lookup("location")) {<BR>&nbsp;&nbsp;&nbsp; sl_send_reply("404", "Usuario nao encontrado");<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; route(1);<BR>&nbsp; exit;<BR>}<BR>&nbsp;&nbsp;&nbsp; <BR>route[1] {<BR>&nbsp; ##--</DIV>
<DIV>&nbsp; # Envie isto agora; use "statefull fowarding" pois funciona de forma confiavel de UDP para TCP<BR>&nbsp; # Ativa a contabilizacao das chamadas<BR>&nbsp; ##--<BR>&nbsp; xlog("L_ERR", "Route[1]: Relaying message\r\n");<BR>&nbsp; setflag(2);<BR>&nbsp; ##--<BR>&nbsp; # Ativa a contabilizacao das chamadas perdidas<BR>&nbsp; ##--<BR>&nbsp; setflag(3);<BR>&nbsp; t_on_reply("1");<BR>&nbsp; if (!t_relay()) {<BR>&nbsp;&nbsp;&nbsp; if (method=="INVITE" || method=="ACK") {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end_media_session();<BR>&nbsp;&nbsp;&nbsp; };<BR>&nbsp;&nbsp;&nbsp; sl_reply_error();<BR>&nbsp; }; <BR>}&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>route[2] {<BR>&nbsp; ##--<BR>&nbsp; # Tratamento padrao para as mensagens de Register<BR>&nbsp; ##--<BR>&nbsp; sl_send_reply("100", "Registrando....");<BR>&nbsp; xlog("L_ERR", "Route[2]: Trying Auth: $fu $si\n");<BR>&nbsp; if (isflagset(5) &amp;&amp; client_nat_test("7")) {<BR>&nbsp;&nbsp;&nbsp;
 xlog("L_ERR", "Route[2]: Client behind NAT - flag(6)\n");<BR>&nbsp;&nbsp;&nbsp; setbflag(6);<BR>&nbsp;&nbsp;&nbsp; fix_nated_register();<BR>&nbsp;&nbsp;&nbsp; force_rport();<BR>&nbsp;&nbsp;&nbsp; # se quiser usar natping options descomente a linha abaixo<BR>&nbsp;&nbsp;&nbsp; # setbflag(7);<BR>&nbsp; };<BR>&nbsp; if (!radius_www_authorize("")) {<BR>&nbsp;&nbsp;&nbsp; www_challenge("", "0");<BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Route[2]: Client Unauthorized: $fu $si\r\n");<BR>&nbsp;&nbsp;&nbsp; sl_send_reply("401", "Unauthorized");<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; if (!check_to()) {<BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Route[2]: Client Unauthorized: $fu $si\r\n");<BR>&nbsp;&nbsp;&nbsp; sl_send_reply("401", "Unauthorized");<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Route[2]: Authenticate: $fu $si\r\n");<BR>&nbsp; };<BR>&nbsp; consume_credentials();<BR>&nbsp; if (!save("location"))
 {<BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Route[2]: Can't save register location\r\n");<BR>&nbsp;&nbsp;&nbsp; sl_reply_error();<BR>&nbsp; };<BR>}</DIV>
<DIV>route[3] {<BR>&nbsp; ##--<BR>&nbsp; # Tratamento padrao para as mensagens de INVITE<BR>&nbsp; ##--<BR>&nbsp; xlog("L_ERR", "Route[3]: INVITE: $fu -&gt; $tu $ci\r\n");<BR>#&nbsp; setflag(1);<BR>&nbsp; if (!allow_trusted()) {<BR>&nbsp;&nbsp;&nbsp; if (!radius_proxy_authorize("")) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_challenge("", "0");&nbsp; # Realm will be autogenerated<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp;&nbsp;&nbsp; } else if (!check_from()) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("403", "Usue from=ID");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Route[3]: Error 403 $fu -&gt; $tu\r\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp;&nbsp;&nbsp; };<BR>&nbsp; }<BR>&nbsp; consume_credentials();<BR>&nbsp; ##--<BR>&nbsp; # Verifica se existem aliases para este endereco e se eles nao pertencem<BR>&nbsp; # a teste dominio encaminhamos para frente<BR>&nbsp; ##--<BR>&nbsp; lookup("aliases");<BR>&nbsp; if (uri!=myself)
 {<BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Main Route: aliases relayin to other domain proxy\n");<BR>&nbsp;&nbsp;&nbsp; route(4);<BR>&nbsp;&nbsp;&nbsp; route(1);<BR>&nbsp; };&nbsp; <BR>&nbsp; ##--<BR>&nbsp; # VoIP Local<BR>&nbsp; ##--<BR>&nbsp; if (uri=~"sip:[1-9][0-9]+@.*") {<BR>&nbsp;&nbsp;&nbsp; xlog("L_NOTICE", "OpenSER: Ligacao VoIP local: $fU -&gt; $tu\n");<BR>&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp; ##--<BR>&nbsp;&nbsp;&nbsp; # Nacional<BR>&nbsp;&nbsp;&nbsp; ##--<BR>&nbsp;&nbsp;&nbsp; if (uri=~"sip:0[1-9][0-9]+@.*") {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_NOTICE", "OpenSER: Ligacao Nacional: $fU -&gt; $tu\n");<BR>&nbsp;&nbsp;&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ##--<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Internacional<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ##--<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (uri=~"sip:00[1-9][0-9]+@.*") {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_NOTICE", "OpenSER: Ligacao Interacional: $fU -&gt;
 $tu\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>&nbsp;&nbsp;&nbsp; };<BR>&nbsp;&nbsp;&nbsp; route(5);<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; if (!lookup("location")) {<BR>&nbsp;&nbsp;&nbsp; append_hf("P-hint: usuario nao encontrado\r\n");</DIV>
<DIV>&nbsp;&nbsp;&nbsp; sl_send_reply("404", "Usuario nao encontrado"); <BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; append_hf("P_hint: usrloc applied\r\n");<BR>&nbsp; t_on_failure("1");<BR>&nbsp; route(4);<BR>&nbsp; route(1);<BR>}<BR>&nbsp;<BR>route[4] {<BR>&nbsp; ##--<BR>&nbsp; # Secao de travessia do nat<BR>&nbsp; ##--<BR>&nbsp; if (isflagset(5)) {<BR>&nbsp;&nbsp;&nbsp; setbflag(6);<BR>&nbsp; };<BR>&nbsp; if (isflagset(5) || isbflagset(6) || isbflagset(7)) {<BR>&nbsp;&nbsp;&nbsp; use_media_proxy();<BR>&nbsp;&nbsp;&nbsp; xlog("L_ERR", "Rota[4]: Travessia de NAT mediaproxy\n");<BR>&nbsp; };<BR>}&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>route[5] {<BR>&nbsp; ##--<BR>&nbsp; # Encaminhamento para a rede publica (PSTN)<BR>&nbsp; ##--<BR>&nbsp; xlog("L_ERR", "Route[5]: Relaying to PSTN\n");<BR>&nbsp; rewritehostport("201.32.70.21");<BR>&nbsp; route(4);<BR>&nbsp; route(1);<BR>}<BR>&nbsp;<BR>route[6] {<BR>&nbsp; force_rport();<BR>&nbsp; if
 (nat_uac_test("19")) {<BR>&nbsp;&nbsp;&nbsp; if (method=="REGISTER") {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fix_nated_register();&nbsp; <BR>&nbsp;&nbsp;&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fix_nated_contact();<BR>&nbsp;&nbsp;&nbsp; };<BR>&nbsp;&nbsp;&nbsp; setflag(5);<BR>&nbsp; };<BR>}&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>failure_route[1] {<BR>&nbsp; if (t_check_status("487")) {<BR>&nbsp;&nbsp;&nbsp; exit;<BR>&nbsp; };<BR>&nbsp; if (isbflagset(6) || isflagset(5)) {<BR>&nbsp;&nbsp;&nbsp; end_media_session();</DIV>
<DIV>&nbsp;&nbsp;};</DIV>
<DIV>onreply_route[1] {<BR>&nbsp; ##--<BR>&nbsp; # Bloco de tratamento de respostas<BR>&nbsp; ##--<BR>&nbsp; if ((isflagset(5) || isbflagset(6)) &amp;&amp; status=~"(180)|(183)|(2[0-9][0-9])") {<BR>&nbsp;&nbsp;&nbsp; use_media_proxy();<BR>#&nbsp;&nbsp;&nbsp; search_append('Contact:.*sip:[^&gt;[:cntrl:]]*', ';nat=yes');<BR>&nbsp; }<BR>&nbsp; if (isbflagset(6)) {<BR>&nbsp;&nbsp;&nbsp; fix_nated_contact();<BR>&nbsp; }<BR>}</DIV>
<DIV>
<DIV class=Section1>
<DIV>
<TABLE border=0>
<TBODY>
<TR>
<TD colSpan=4>
<DIV>
<SPAN style="width:100%;height:2px;border-bottom:1px solid rgb(212,208,200); border-top:1px solid rgb(128,128,128);background-color:black;overflow:hidden; margin:8px 0px;"></SPAN>

<DIV align=center><STRONG><FONT face="Arial, Helvetica, sans-serif" size=2><SPAN lang=PT-BR style="FONT-FAMILY: Arial">Alcindo Schleder</SPAN></FONT></STRONG></DIV></DIV></TD></TR>
<TR>
<TD colSpan=4>
<DIV>
<P align=center><FONT face="Arial, Helvetica, sans-serif" size=1><A href="http://www.sistemaprocessa.com.br/" target=_blank rel=nofollow>Sistema Processa Acessoria e Comunicações Ltda. </A></FONT></P></DIV></TD></TR>
<TR>
<TD colSpan=4>
<DIV class=style3 align=center>
<UL>
<LI>
<DIV align=left>MSN: a_schleder@hotmail.com</DIV></LI>
<LI>
<DIV align=left>Skipe: alcindo_schleder</DIV></LI></UL></DIV></TD></TR>
<TR>
<TD colSpan=4><FONT face="Arial, Helvetica, sans-serif" size=1>Demétrio P. dos Santos, 705 - 95670-000 - Gramado-RS-Brasil</FONT></TD></TR>
<TR>
<TD width=32><FONT face="Arial, Helvetica, sans-serif" size=1>Celular</FONT></TD>
<TD noWrap width=95><FONT face="Arial, Helvetica, sans-serif" size=1><SPAN class=GramE>+</SPAN> <B>55 54 9966 7591 </B></FONT></TD>
<TD width=145 colSpan=2><FONT face="Arial, Helvetica, sans-serif" size=1><SPAN lang=PT-BR style="FONT-FAMILY: Arial"><A href="mailto:alcindo@processa.org" target=_blank rel=nofollow ymailto="mailto:alcindo@processa.org">alcindo@processa.org</A></SPAN></FONT><FONT size=1><SPAN lang=PT-BR style="FONT-FAMILY: Arial"></SPAN></FONT></TD></TR>
<TR><FONT face="Arial, Helvetica, sans-serif" size=1><SPAN lang=PT-BR style="FONT-FAMILY: Arial">
<TD>Fone</TD>
<TD noWrap>+55 54 3286-1738</TD>
<TD colSpan=2><A href="mailto:comercial@processa.org" target=_blank rel=nofollow ymailto="mailto:comercial@processa.org">comercial@processa.org</A></TD></SPAN></FONT></TR></TBODY></TABLE><FONT face="Arial, Helvetica, sans-serif" size=1></FONT></DIV>
<P class=MsoNormal><SPAN lang=PT-BR></SPAN></P></DIV></DIV><!-- kill -->
<DIV><BR><BR>-----Anexo incorporado-----<BR><BR>_______________________________________________<BR>Users mailing list<BR><A href="mailto:Users@lists.openser.org" ymailto="mailto:Users@lists.openser.org">Users@lists.openser.org</A><BR><A href="http://lists.openser.org/cgi-bin/mailman/listinfo/users" target=_blank>http://lists.openser.org/cgi-bin/mailman/listinfo/users</A><BR></DIV></DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: arial, helvetica, sans-serif"><BR></DIV></div></body></html>