<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RenatoMalta.Com.Br &#187; Voip</title>
	<atom:link href="http://renatomalta.com.br/tag/voip/feed/" rel="self" type="application/rss+xml" />
	<link>http://renatomalta.com.br</link>
	<description>Linux, Asterisk, Shell Script e muito mais!</description>
	<lastBuildDate>Thu, 01 Oct 2009 00:24:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Curso Basico Asterisk Parte 1</title>
		<link>http://renatomalta.com.br/curso-basico-asterisk-parte-1/</link>
		<comments>http://renatomalta.com.br/curso-basico-asterisk-parte-1/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 23:55:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Curso]]></category>
		<category><![CDATA[Voip]]></category>

		<guid isPermaLink="false">http://renatomalta.com.br/?p=17</guid>
		<description><![CDATA[Começa agora uma série de posts que vão ajudar a iniciar no universo do Asterisk .
Exclusivamente neste post não vou entrar em detalhes pela quantidade de material disponivel na net sobre esta parte do curso.
Conteudo do post:
Instalar e compilar o Asterisk
Entender o o plano de discagem
Criar um plano de discagem simples
Vamos aos trabalhos!
Comece baixando os [...]]]></description>
			<content:encoded><![CDATA[<p>Começa agora uma série de posts que vão ajudar a iniciar no universo do <a href="http://www.asterisk.org" target="_blank">Asterisk</a> .<br />
Exclusivamente neste post não vou entrar em detalhes pela quantidade de material disponivel na net sobre esta parte do curso.<br />
Conteudo do post:</p>
<p>Instalar e compilar o Asterisk<br />
Entender o o plano de discagem<br />
Criar um plano de discagem simples</p>
<p>Vamos aos trabalhos!</p>
<p>Comece baixando os codigos fonte do asterisk e do asterisk-addons</p>

<div class="wp-terminal">renato@v0id:# wget <a href="http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.4-current.tar.gz">http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.4-current.tar.gz</a><br/></div>


<div class="wp-terminal">renato@v0id:# wget <a href="http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.4-current.tar.gz" target="_blank">http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.4-current.tar.gz</a><br/></div>

<p>Descompacte os sources:</p>

<div class="wp-terminal">renato@v0id:# tar xvfz asterisk-1.4-current.tar.gz<br/></div>

</pre>

<div class="wp-terminal">renato@v0id:# tar xvfz asterisk-addons-1.4-current.tar.gz<br/></div>

</pre>
<p>Entre no diretório e compile:</p>

<div class="wp-terminal">renato@v0id:# cd asterisk-1.4.VERSAO<br/></div>


<div class="wp-terminal">renato@v0id:# ./configure && make && make install && make config && make samples<br/></div>

<p>Vamos ver se funcionou:</p>

<div class="wp-terminal">renato@v0id:# asterisk start<br/><br/></div>

<p>Vamos entrar na CLI para confirmar que funcionou.</p>

<div class="wp-terminal">renato@v0id:# asterisk -rvvv<br/>Asterisk 1.4.22.1, Copyright (C) 1999 - 2008 Digium, Inc. and others.<br/>Created by Mark Spencer <markster@digium.com><br/>Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.<br/>This is free software, with components licensed under the GNU General Public<br/>License version 2 and other licenses; you are welcome to redistribute it under<br/>certain conditions. Type 'core show license' for details.<br/>=========================================================================<br/>== Parsing '/etc/asterisk/asterisk.conf': Found<br/>== Parsing '/etc/asterisk/extconfig.conf': Found<br/>Connected to Asterisk 1.4.22.1 currently running on v0id (pid = 8935)<br/>Verbosity is at least 3<br/>v0id*CLI><br/><br/></div>

<p>Agora que o Asterisk está instalado vamos começar o que interessa.<br />
Montar um Dialplan!</p>
<p>O dialplan é o coração de qualquer sistema asterisk. Ele é quem direciona as ligações para os destinos corretos, ele quem chama as aplicações e  scripts que veremos mais adiante. Por enquanto vamos focar no basico do dialplan, aprendendo esta parte tudo vai ficar mais claro depois.</p>
<p>Primeira mente deixe eu apresentar a voces o coração do Asterisk que é o extensions.conf, é la onde o dialplan é feito, é la que as coisas acontecem.. literalmente!</p>
<p>O dialplan contem quatro partes principais que são os contextos, as prioridades, as extensões e as aplicações.</p>
<p>O contexto são as seções do dialplan, isso é o separador, ele quem faz com que uma parte do dialplan não interfira na outra. Por exemplo se voce abrir o seu arquivo extensions.conf irá encontrar logo no inicio o contexto [general]. Isso! Palavras entre colchetes são os contextos. o que define onde começa e acaba cada sessão.</p>
<p>As extensões são as instruções que seu sistema deverá executar em determinada situação, deixa eu exemplificar pra ficar melhor.</p>
<p>exten => 6010,1,Answer()<br />
exten => 6010,2,Playback(goodbye)<br />
exten => 6010,3,Hangup()</p>
<p>Neste exemplo quando colocado dentro do contexto [default] ao receber uma ligação na extensão 6010 o primeiro passo é atender(Answer()) deepois tocar o arquivo goodbye(Playback()) e depois desligar(Hangup()).</p>
<p>A sintaxe é a seguinte: exten => EXTENSAO,PRIORIDADE,APPLICACAO</p>
<p>As prioridades são as sequências de números que controlam cada passo da ação. Cada prioridade chama uma aplicação.</p>
<p>As aplicações são quem executam as ações no canal especifico que foi chamado. No exemplo acima as aplicações usadas foram Answer, Playback e Hangup. Atender, Tocar e Desligar respectivamente. <img src='http://renatomalta.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Outra parte importante do sistema são os arquivos referentes as tecnologias, o sip.conf e o iax.conf. Os dois são bem parecidos exceto pelo fato de um tratar da tecnologia <a href="http://www.voip-info.org/wiki/view/SIP">Sip</a> e a outra <a href="http://voip-info.org/wiki-IAX">IAX</a></p>
<p>Não vamos entrar nos detalhes destes arquivos neste post, vou dedicar um post somente para os arquivos de configuração.</p>
<p>O importante no momento é saber como configurar um canal SIP ou IAX para ver o dialplan funcionando. Nada melhor do que ver as coisas funcionando para estigar a curiosidade.</p>
<p>Vamos dar uma olhada no sip.conf</p>

<div class="wp-terminal">renato@v0id:# cat sip.conf<br/>[general]<br/>context=default<br/>srvlookup=yes<br/><br/>[6000]<br/>type=friend<br/>secret=senha<br/>qualify=yes<br/>nat=yes<br/>host=dynamic<br/>canreinvite=no<br/>context=default<br/><br/>[6001]<br/>type=friend<br/>secret=senha<br/>qualify=yes<br/>nat=yes<br/>host=dynamic<br/>canreinvite=no<br/>context=default<br/><br/>renato@v0id:#<br/><br/></div>

<p>Desta forma temos duas extensões SIP que podemos usar em qualquer <a href="http://www.voip-info.org/wiki/view/VOIP+Phones?navmenu">Voip Phone</a>,  a 6000 e 6001 ambas com a senha: 'senha'.</p>
<p>Configure dois sotfphones com estas extensões e tente ligar uma para outra.<br />
Agora tente ligar pra extensão 6010. Voce deverá escutar a gravação goodbye e a ligação será desligada.<br />
Deu pra entender mais ou menos como funciona?<br />
Vou entrar nos detalhes destas configurações nos proximos posts.<br />
Sugestões, dúvidas e comentários são bem vindos!</p>
]]></content:encoded>
			<wfw:commentRss>http://renatomalta.com.br/curso-basico-asterisk-parte-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IVR utilizando Asterisk e MySQL</title>
		<link>http://renatomalta.com.br/ivr-utilizando-asterisk-e-mysql/</link>
		<comments>http://renatomalta.com.br/ivr-utilizando-asterisk-e-mysql/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 14:51:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Voip]]></category>

		<guid isPermaLink="false">http://renatomalta.com.br/?p=4</guid>
		<description><![CDATA[Neste post vou dar um rápido exemplo de como fazer uma URA com consulta a banco de dados, neste caso o MySQL.
é um exemplo bem simples que foi meu primeiro teste com com mysql é legal para ver como funciona.. e apartir dele da pra criar várias coisas legais.
Uma atendente digital que solicita o numero [...]]]></description>
			<content:encoded><![CDATA[<p>Neste post vou dar um rápido exemplo de como fazer uma URA com consulta a banco de dados, neste caso o MySQL.<br />
é um exemplo bem simples que foi meu primeiro teste com com mysql é legal para ver como funciona.. e apartir dele da pra criar várias coisas legais.</p>
<p>Uma atendente digital que solicita o numero de contrato do cliente, caso o numero esteja no banco de dados ele é direcionado para a fila de suporte.</p>
<p>Caso não esteja no banco é solicitado que digite novamente o numero e retorna pro comeco do dialplan.</p>
<p><strong>Comecei criando um banco que no meu caso chamei de clientes:</strong></p>

<div class="wp-terminal">root@v0id:# <br/>mysql&gt; create database clientes;<br/>Query OK, 1 row affected (0.01 sec)<br/>mysql&gt; use clientes<br/>Database changed<br/><br/></div>

<p><strong>Depois criei a tabela chamada de contratos:</strong></p>

<div class="wp-terminal">root@v0id:# <br/>mysql&gt; create table contratos ( id int(10) not null auto_increment, numero varchar(20) not null, nome varchar(20) not null, primary key (id));<br/>Query OK, 0 rows affected (0.01 sec)<br/>mysql&gt;<br/></div>

<p><strong>Inseri um cliente com o numero de contrato 0000000010</strong></p>

<div class="wp-terminal">root@v0id:# <br/>mysql&gt; INSERT into contratos SET id=0, numero="0000000010" ,nome="Renato Malta";<br/>Query OK, 1 row affected (0.00 sec)<br/>mysql&gt; select * from contratos;<br/>+----+------------+--------------+<br/>| id | numero���� | nome�������� |<br/>+----+------------+--------------+<br/>|� 1 | 0000000010 | Renato Malta |<br/>+----+------------+--------------+<br/>1 row in set (0.00 sec)<br/>mysql&gt;<br/><br/></div>

<p><strong>E vamos inserir isto no seu dialplan no contexto de entrada:</strong></p>
<p>exten =&gt; s,1,Playback(bemvindo)<br />
exten =&gt; s,2,MYSQL(Connect connid localhost root senha clientes)<br />
exten =&gt; s,3,Playback(insiranumerodecontrato)<br />
exten =&gt; s,4,Read(numerodecontrato,,10)<br />
exten =&gt; s,5,MYSQL(Query resultid ${connid} SELECT\ id\ from\ contratos\ where\ numero=${numerodecontrato})<br />
exten =&gt; s,6,MYSQL(Fetch fetchid ${resultid} idcontrato)<br />
exten =&gt; s,7,GotoIf($["${idcontrato}" = ""]?9:8)<br />
exten =&gt; s,8,Queue(suporte)<br />
exten =&gt; s,9,Playback(contratonaoencontrado)<br />
exten =&gt; s,10,Goto(3)</p>
<p><strong>Segue uma breve explicação das linhas pelo número das prioridades:</strong></p>
<p>1 &#8211; Mensagem de boas vindas. **<br />
2 &#8211; Conexao com o servidor MySQL. *<br />
3 &#8211; Mensagem solicitando o numero de contrato. **<br />
4 &#8211; Parte em que o usuário digita algo para ser consultado no banco. Ex. numero do contrato.<br />
5 &#8211; Consulta no banco se existe o id digitado.<br />
6 &#8211; Armazena o resultado da consulta na variavel idcontrato.<br />
7 &#8211; Testa se existe o numero do contrato ou se o resultado voltou em branco. Caso seja em branco ele pula para a prioridade 9 caso exista ele continua na prioridade 8.<br />
8 &#8211; Direciona para a fila de atendimento do suporte por exemplo<br />
9 &#8211; Mensagem informando que o numero de contrato nao foi encontrado. **<br />
10 &#8211; Volta para a prioridade 3 onde ele escutara novamente a mensagem solicitando o numero de contrato.</p>
<p>*: É necessária a instalação do pacote de addons do Asterisk para que o comando MYSQL exista.<br />
**: Os nomes das mensagens de voz nas prioridades 1, 3 e 9 nao existem por padrão no diretório do Asterisk. Crie as suas <img src='http://renatomalta.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>Mais informações sobre o comando MYSQL do Asterisk:</strong> <a href="http://www.voip-info.org/wiki/view/Asterisk+cmd+MYSQL" target="_blank">http://www.voip-info.org/wiki/view/Asterisk+cmd+MYSQL</a></p>
<p>Então é isso!</p>
<p>Dúvidas, sugestões?</p>
]]></content:encoded>
			<wfw:commentRss>http://renatomalta.com.br/ivr-utilizando-asterisk-e-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
