<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=iso-8859-1">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","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.apple-style-span
        {mso-style-name:apple-style-span;}
span.EstiloDeEmail19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.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 style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Olá...<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>O seguinte... <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Você tem que ter uma função no banco pra calcular o tempo máximo
que pode durar a ligação de acordo com o saldo do cliente e inserir no
extensions.conf algo como:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>[default]<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>exten 
=&gt; _0X.,1,Mysql(Connect connid sip.server.com.br user senha NomeDoBancoSIP)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>exten 
=&gt; _0X.,2,Mysql(Query resultid ${connid} select\
f_calc_time_balance(&quot;${CALLERID(num)}&quot;\,\
&quot;${SIP_HEADER(TO)}&quot;)\ as\ maxTime)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>exten 
=&gt; _0X.,3,Mysql(Fetch fetchid ${resultid} maxTime)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>exten 
=&gt; _0X.,4,Mysql(Clear ${resultid})<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>exten 
=&gt; _0X.,5,Mysql(Disconnect ${connid})<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>exten 
=&gt; _0X.,6,GotoIf($[${maxTime}=&#8217;&#8217;]|[${maxTime}&lt;=0]?7:8)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>exten 
=&gt; _0X.,7,Hangup<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>exten 
=&gt; _0X.,8,Wait,1<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>switch
=&gt; Realtime/mycontext@extensions<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Digamos que a estrutura da tabela de rotas do banco seja algo
como:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>/*==============================================================*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>/*
Table: routes                                                */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>/*==============================================================*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>create
table routes<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>(<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
pk_routes            int not null,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
dsc_route            varchar(50) not null,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
context              varchar(30) not null,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
exten                varchar(30) not null,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
priority             int not null,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
app                  varchar(30) not null,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
appdata              varchar(128) not null,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
flag_active          smallint not null default,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>  
primary key (pk_routes)<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>);<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>No banco de dados você deve ter uma view que retorna as linhas
das rotas a serem utilizadas pelo Realtime para poder determinar os parâmetros
da aplicação Dial como abaixo:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>/*==============================================================*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>/*
View: vw_extensions                                          */<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>/*==============================================================*/<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>create
view vw_extensions as<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'> 
select pk_routes, context, exten, priority, app, appdata from routes<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'> 
 where flag_active = 1<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'> 
   and exten       is not null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'> 
   and exten       &lt;&gt; ''<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'> 
   and context     is not null<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'> 
   and context     &lt;&gt; ''<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'> 
 order by context, pk_routes;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>+-----------+-----------+---------------+----------+------+----------------------------------------------------------+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>|
pk_routes | context   | exten         | priority | app  |
appdata                                                  |<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>+-----------+-----------+---------------+----------+------+----------------------------------------------------------+<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>|     
   1 | mycontext | _0XX[23456]X. |        9 | Dial | SIP/55${EXTEN}@operadora:5060|90|S|${maxTime}
           | <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>|     
   2 | mycontext | _0XX[789]X.   </span><span style='font-size:8.0pt;
font-family:"Courier New"'>|        9 | Dial | SIP/55${EXTEN}@operadora:5060|90|S(${maxTime}
           | <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>|      
  3 | mycontext | _00X.         </span><span style='font-size:8.0pt;font-family:
"Courier New"'>|        9 | Dial | SIP/55${EXTEN}@operadora:5060|90|S|${maxTime}
           | <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:8.0pt;font-family:"Courier New"'>+-----------+-----------+---------------+----------+------+----------------------------------------------------------+</span><b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'><o:p></o:p></span></b></p>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>A aplicação irá buscar somente os dados da tabela que realmente
interessam ao asterisk e o parâmetro maxTime deve conter o tempo máximo de
duração da chamada. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>O Realtime vai automaticamente fazer a chamada para view que
retornará somente uma das linhas acima que é a rota que combina exatamente com o
parâmetro ${EXTEN}.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>O contexto default está definido na tabela &#8216;sip.conf&#8217;
do asterisk que também deve estar dentro do banco de dados referindo-se, no
caso acima, pela string &#8216;operadora&#8217;.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Observe que o Realtime irá chamar somente o contexto &#8216;mycontext&#8217;
então nesta mesma tabela você poderá ter também rotas entrantes algo &#8216;myfrompstn&#8217;
chamando pela mesma rotina alternado o comando da aplicação (</span><span
style='font-size:8.0pt;font-family:"Courier New"'>switch =&gt; Realtime/myfrompstn@extensions</span><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>).</span><span
style='font-size:8.0pt;font-family:"Courier New"'><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Neste modelo você consegue com uma simples troca do campo
flag_active, sendo 1 rota ativa e 0 rota inativa, ter várias operadoras para
realizar as terminações.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Espero que ajude.<o:p></o:p></span></p>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>De:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
asteriskbrasil-bounces@listas.asteriskbrasil.org [mailto:asteriskbrasil-bounces@listas.asteriskbrasil.org]
<b>Em nome de </b>Alex Tavares Faiotto<br>
<b>Enviada em:</b> terça-feira, 21 de setembro de 2010 16:58<br>
<b>Para:</b> asteriskbrasil@listas.asteriskbrasil.org<br>
<b>Assunto:</b> [AsteriskBrasil] Sip Realtime<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Pessoal, como eu coloco o parametro.<o:p></o:p></p>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal><strong><span style='font-size:9.0pt;font-family:"Verdana","sans-serif"'>call-limit&nbsp;</span></strong><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal><strong><span style='font-size:9.0pt;font-family:"Verdana","sans-serif"'>no
Sip REALTIME na tabela do banco?</span></strong><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span class=apple-style-span><b><span style='font-size:9.0pt;
font-family:"Verdana","sans-serif"'>Vlw</span></b></span><o:p></o:p></p>

</div>

</div>

</body>

</html>