Coloquei pra rodar.. Posto novidades.<br><br><div><span class="gmail_quote">2006/11/29, Claudio Polegato Junior &lt;<a href="mailto:cpolegatojr.asterisk@gmail.com">cpolegatojr.asterisk@gmail.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Rodolfo Santos escreveu:<br>&gt; Talvez eu não tenha entendido direito o propósito, e peço desculpas<br>&gt; caso esteja equivocado. Mas o que vcs estão se propondo a fazer já não<br>&gt; existe no Asterisk?<br>&gt;<br>&gt; * Math( )*
<br>&gt;<br>&gt; Exemplo:<br>&gt;<br>&gt; ; somar dois números e dizer o resultado<br>&gt; exten =&gt; 666,1,Math(SUM,50000000.2+0.8)<br>&gt; exten =&gt; 666,2,SayNumber(${SUM})<br>&gt;<br>&gt; Math aceita ponto flutuante e todos os operadores matemáticos
<br>&gt; existentes na linguagem C : +,-,/,*,%,&lt;,&gt;,&gt;=,&lt;=.<br>&gt;<br>&gt; P.S.: Caio, a sua idéia de fazer uma calculadora tipo notação polonesa<br>&gt; (HP 12C), é bastante interessante. Posso imaginar o quão útil seria em
<br>&gt; um sistema IPBX que atendesse uma mesa de operações de um banco ou de<br>&gt; uma corretora de valores.<br><br>Olá,<br><br>&nbsp;&nbsp;Claro, acho que a idéia é mostrar e/ou exercitar as funções presentes<br>no Asterisk. Acho que se sair para AGI fica fora de cogitação, pois será
<br>feito em outra linguagem e não vai exercitar/exemplificar as funções do<br>Asterisk. Depois ir crescendo para funções, tipo torná-la científica,<br>financeira ou até sistema polonês (como você disse).<br>&nbsp;&nbsp;Já que começou, podemos ir aperfeiçoando (não tenho como testar, só
<br>depois do fim do expediente) minha estúpida calculadora:<br><br>[calculadora_ura]<br>; Atende a chamada<br>exten =&gt; s,1,Answer<br>; Depois de um dígito identificado, espera até 2 segundos para o próximo<br>exten =&gt; s,n,Set(TIMEOUT(digit)=2)
<br>; Se nada for digitado em 5 segundos, dá &quot;timeout&quot; (vai para exten 't')<br>exten =&gt; s,n,Set(TIMEOUT(response)=5)<br>; Qual número estamos perguntando<br>exten =&gt; s,n,SetVar(Numero=1)<br>; Define Num_Op para Número (1), usado no &quot;timeout&quot;
<br>exten =&gt; s,n(numero),SetVar(Num_Op=1)<br>; Mensagem para o usuário digitar um número<br>exten =&gt; s,n,BackGround(digite_numero)<br>; Espera pelo número de acordo com os tempos acima configurados<br>exten =&gt; s,n,WaitExten
<br>; Define Num_Op para Operador (2), usado no &quot;timeout&quot;<br>exten =&gt; s,n(operador),SetVar(Num_Op=2)<br>; Mensagem para o usuário digitar um operador: 1-&gt;+, 2-&gt;-, 3-&gt;*, 4-&gt;/...<br>exten =&gt; s,n,BackGround(digite_operador)
<br>; Espera pelo operador de acordo com os tempos acima configurados<br>exten =&gt; s,n,WaitExten<br><br>; Caso não digite nada em 5 segundos configurados, pergunta novamente<br>exten =&gt; t,1,GotoIf($[${Num_Op} = 1]?s|numero:s|operador)
<br><br>; Trata o que foi digitado, desviando o fluxo se for esperado operador<br>exten =&gt; _X.,1,GotoIf($[${Num_Op} = 2]?operador)<br>; Se for o segundo número, passar para o cálculo<br>exten =&gt; _X.,n,GotoIf($[${Numero} = 2]?segundo)
<br>; Guardo o primeiro número em Num1<br>exten =&gt; _X.,n,SetVar(Num1=${EXTEN})<br>; Define que será perguntado pelo segundo número<br>exten =&gt; _X.,n,SetVar(Numero=2)<br>; Desvia o fluxo para perguntar pelo operador<br>
exten =&gt; _X.,n,Goto(s|operador)<br><br>; Guardo o segundo número em Num2<br>exten =&gt; _X.,n(segundo),SetVar(Num2=${EXTEN})<br>; Calcula e guardo o resultado em Resultado<br>exten =&gt; _X.,n,SetVar(Resultado=$[${Num1} ${Op} ${Num2}])
<br>; Fala o primeiro número<br>exten =&gt; _X.,n,SayNumber(${Num1})<br>; Fala o operador<br>exten =&gt; _X.,n,SayAlpha(${Op})<br>; Fala o segundo número<br>exten =&gt; _X.,n,SayNumber(${Num2})<br>; Fala &quot;igual&quot;
<br>exten =&gt; _X.,n,SayAlpha(&quot;=&quot;)<br>; Fala o Resultado<br>exten =&gt; _X.,n,SayNumber(${Resultado})<br>; O primeiro número agora é o resultado<br>exten =&gt; _X.,n,SetVar(Num1=${Resultado})<br>; Desvia o fluxo para perguntar pelo operador
<br>exten =&gt; _X.,n,Goto(s|operador)<br><br>; Verifica se o operador é inválido, desviando o fluxo caso for<br>exten =&gt; _X.,n(operador),GotoIf($[${EXTEN} &gt; 4]?op_invalido)<br>; Se digitado 1, guarda o operador de adição em Op
<br>exten =&gt; _X.,n,ExecIf($[${EXTEN} = 1],SetVar,Op=&quot;+&quot;)<br>; Se digitado 2, guarda o operador de subtração em Op<br>exten =&gt; _X.,n,ExecIf($[${EXTEN} = 2],SetVar,Op=&quot;-&quot;)<br>; Se digitado 1, guarda o operador de multiplicação em Op
<br>exten =&gt; _X.,n,ExecIf($[${EXTEN} = 3],SetVar,Op=&quot;*&quot;)<br>; Se digitado 1, guarda o operador de divisão em Op<br>exten =&gt; _X.,n,ExecIf($[${EXTEN} = 4],SetVar,Op=&quot;/&quot;)<br>; Desvia o fluxo para perguntar pelo próximo número
<br>exten =&gt; _X.,n,Goto(s|numero)<br><br>; Retorna uma mensagem dizendo que o operador é inválido<br>exten =&gt; _X.,n(op_invalido),PlayBack(operador_invalido)<br>; Desvia o fluxo para perguntar novamente o operador<br>
exten =&gt; _X.,n,Goto(s|operdor)<br><br><br><br><br>Quem será o primeiro a testar?<br><br><br>--<br>Atenciosamente<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Junior Polegato - Claudio Polegato Junior<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Engenheiro Autônomo - Ribeirão Preto e Região
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mestre em Física Aplicada à Medicina e Biologia - USP<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Engenheiro Computacional e Eletrônico - USP<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Página Pessoal: <a href="http://cpolegatojr.no-ip.org">http://cpolegatojr.no-ip.org
</a><br><br>Um peregrino de problemas; Um pergaminho de soluções!<br><br>----------------------------------------<br>Estação VoIP 2006<br>5 e 6 Dezembro<br>Curitiba PR<br><a href="http://www.estacaovoip.com.br">http://www.estacaovoip.com.br
</a><br><br>_______________________________________________<br>LIsta de discussões AsteriskBrasil.org<br><a href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</a><br><a href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil">
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</a><br><br>_______________________________________________<br>Acesse o&nbsp;&nbsp;wiki AsteriskBrasil.org:<br><a href="http://www.asteriskbrasil.org">http://www.asteriskbrasil.org
</a><br></blockquote></div><br><br clear="all"><br>-- <br>Whinston Saura Rodrigues<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BoxBrasil