<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ideas de mi materia gris</title>
	<atom:link href="http://demerzel.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://demerzel.wordpress.com</link>
	<description>Peleando con el free software</description>
	<lastBuildDate>Thu, 23 Oct 2008 20:39:03 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='demerzel.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ideas de mi materia gris</title>
		<link>http://demerzel.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://demerzel.wordpress.com/osd.xml" title="Ideas de mi materia gris" />
	<atom:link rel='hub' href='http://demerzel.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Asterisk y E1, experiencias</title>
		<link>http://demerzel.wordpress.com/2008/10/23/asterisk-y-e1-experiencias/</link>
		<comments>http://demerzel.wordpress.com/2008/10/23/asterisk-y-e1-experiencias/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 20:39:03 +0000</pubDate>
		<dc:creator>ciclodetrantor</dc:creator>
				<category><![CDATA[Asterisk]]></category>

		<guid isPermaLink="false">http://demerzel.wordpress.com/?p=45</guid>
		<description><![CDATA[Finalmente le toco a un servidor, instalar un conmutador Asterisk con una tarjeta E1. Para ser la primera vez no estuvo tan mal teniendo en cuenta que actualmente se encuentra operando de manera satisfactoria, uno que otro detalle pero nada con tintes de catástrofe. Para poner las cosas en contexto, desde que inicie en esto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=45&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finalmente le toco a un servidor, instalar un conmutador Asterisk con una tarjeta E1. Para ser la primera vez no estuvo tan mal teniendo en cuenta que actualmente se encuentra operando de manera satisfactoria, uno que otro detalle pero nada con tintes de catástrofe.</p>
<p>Para poner las cosas en contexto, desde que inicie en esto de Asterisk siempre encontré información de que en México y otros países no era algo trivial la instalación de enlaces E1, en caso concreto con Telmex.</p>
<p>Bueno estas cosas son empíricas, hasta que uno no se encuentra con el problema, uno no aprende como resolverlo.</p>
<p>Vamos a ver la tarjeta que se uso fue una Wildcard TE122.</p>
<div id="attachment_46" class="wp-caption alignnone" style="width: 192px"><a href="http://demerzel.files.wordpress.com/2008/10/te122b-lrg.jpg"><img class="size-full wp-image-46" title="te122b-lrg" src="http://demerzel.files.wordpress.com/2008/10/te122b-lrg.jpg" alt="Tarjeta TE122" width="182" height="233" /></a><p class="wp-caption-text">Tarjeta TE122</p></div>
<p>Despues de instalar el Linux de tu preferencia (CentOS y Debian son los que mas uso), nuestro sistema debe reconocer la tarjeta, dando el comando <strong>lspci | grep Digium </strong>podemos ver lo siguiente:</p>
<p><span style="color:#339966;">[root@asteriskcentro ~]# lspci | grep Digium<br />
05:02.0 Ethernet controller: Digium, Inc. Unknown device 8001 (rev 11)<br />
05:04.0 Ethernet controller: Digium, Inc. Unknown device 0800 (rev 11)</span></p>
<p>En este caso aparecen dos, por que también hay una tarjeta analógica TDM800P, con ocho puertos FXO. Hay una serie de aplicaciones que necesitamos instalar para echar a andar esta situación, las cuales son: zaptel, spandsp, libsupertone, libunicall, libmfcr2  y Asterisk. Podemos descargar cada una de estas aplicaciones por separado pero afortunadamente hay alguien (es el desarrollador principal de chan_unicall) que tiene un comprimido con todo lo necesario incluyendo manual de instrucciones, podemos descargarlo desde aquí: <a href="http://www.moythreads.com/astunicall/downloads/">http://www.moythreads.com/astunicall/downloads/</a></p>
<p>La versión que yo use es la1.4.21.2, realmente es fácil la instalación, suponiendo que tienes todas las dependencias, todo se resume a tres cosas: ./configure &#8211;prefix=/usr &amp;&amp; make &amp;&amp; make install.</p>
<p>Terminado esto, y configurado adecuadamente el archivo zaptel.conf tomando como base el ejemplo que acompaña a los archivos de instalación nos queda de la siguiente manera, a lo ultimo hay algo extra con respecto de la tarjeta analógica, en caso de solo tener la tarjeta digital se omite la ultima linea.</p>
<pre><span style="color:#339966;">[root@asteriskcentro ~]# more /etc/zaptel.conf</span><span style="color:#339966;">
</span><span style="color:#339966;"># MFC/R2 requires CAS signaling</span><span style="color:#339966;">
</span><span style="color:#339966;"># channel 16 is required to transmit ABCD bits so is not used for voice</span><span style="color:#339966;">
</span><span style="color:#339966;">span=1,1,0,cas,hdb3</span><span style="color:#339966;">
</span><span style="color:#339966;">cas=1-15:1101</span><span style="color:#339966;">
</span><span style="color:#339966;">dchan=16</span><span style="color:#339966;">
</span><span style="color:#339966;">cas=17-31:1101</span><span style="color:#339966;">
</span><span style="color:#339966;">fxsls=32-39</span></pre>
<p><span style="color:#000000;">Si verificamos con el comando ztcfg, que lee el archivo zaptel.conf, para verificar la configuración, obtendremos algo similar a lo siguiente: </span><span style="color:#008080;"><br />
</span></p>
<pre><span style="color:#339966;">[root@asteriskcentro ~]# ztcfg -v</span>
<span style="color:#339966;">Zaptel Version: 1.4.11</span>
<span style="color:#339966;">Echo Canceller: MG2</span>
<span style="color:#339966;">Configuration</span>
<span style="color:#339966;">======================</span>
<span style="color:#339966;">SPAN 1: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)</span>
<span style="color:#339966;">39 channels to configure.</span></pre>
<p>Eso es en caso de ir bien, si se te presenta un error similar a este:</p>
<pre><span style="color:#ff0000;">ZT_CHANCONFIG failed on channel 2: Invalid argument (22)</span>
<span style="color:#ff0000;">Did you forget that FXS interfaces are configured with FXO signaling</span>
<span style="color:#ff0000;">and that FXO interfaces use FXS signaling?</span></pre>
<p>En mi caso era de que por alguna razón, los módulos no cargaban bien, volviendo a cargar los modulos de zaptel y verificar bien la configuración del archivo, obtenemos que las tarjetas están listas para usarse.</p>
<p>Después de esto, te copias el archivo de ejemplo de unicall.conf, dentro de /etc/asterisk, para modificarlo a tu gusto aunque realmente lo que tienes que verificar es la siguiente linea: <strong>protocolvariant=mx,10,4</strong></p>
<p>Esto significa que estamos en México, que son 10 numeros y que los últimos 4 números son los que envía el proveedor, por ejemplo tenemos las siguientes lineas telefónicas en la ciudad de México (55) 51 41 21 00, 51 41 21 02, 51 41 21 06, 51 41 21 07, etc., son diez dígitos y los que cambian son los últimos 2 que identifican cada linea, estos se denominan dígitos ANI y DNI.</p>
<p>Ahora si, iniciamos Asterisk, y verificamos el estado de las canales, realmente al conectar el enlace a nuestra tarjeta surgirán un montón de mensajes, el color del led pasara de rojo a verde, y directo a probar agarramos un celular y marcamos para ver como se comporta.</p>
<pre>asteriskcentro*CLI&gt; UC show channels
Channel Extension  Context         Status     Language   MusicOnHold
      1 2107       entrantescentro Idle       en         default
      2 2100       entrantescentro Idle       en         default
      3 2110       entrantescentro Idle       en         default
      4 2113       entrantescentro Idle       en         default
      5 2107       entrantescentro Idle       en         default
      6 2120       entrantescentro Idle       en         default
      7            entrantescentro Idle       en         default
      8            entrantescentro Idle       en         default
      9            entrantescentro Idle       en         default
     10            entrantescentro Idle       en         default
asteriskcentro*CLI&gt;</pre>
<p>Configuramos nuestro contexto de llamadas entrantes:</p>
<pre><span style="color:#339966;">[entrantescentro]
include =&gt; ivr

exten =&gt; _X.,1,Background(custom/ivrcentro)
exten =&gt; _X.,n,WaitExten(15)
exten =&gt; _X.,n,Dial(SIP/2100)

exten =&gt; 2102,1,Macro(voicemail,SIP/${EXTEN})
exten =&gt; 2105,1,Macro(voicemail,SIP/${EXTEN})
exten =&gt; 2106,1,Macro(voicemail,SIP/${EXTEN})
exten =&gt; 2107,1,Macro(voicemail,SIP/${EXTEN})
exten =&gt; 2110,1,Macro(voicemail,SIP/${EXTEN})
exten =&gt; 2120,1,Macro(llamar,SIP/${EXTEN})
exten =&gt; 2121,1,Macro(llamar,SIP/${EXTEN})
</span></pre>
<p>Realizamos una llamada de prueba, y vemos el estado de la consola.</p>
<pre>
<pre><span style="color:#339966;">Connected to Asterisk 1.4.21.2 currently running on asteriskcentro (pid = 3281)</span>
<span style="color:#339966;">Verbosity is at least 10</span>
<span style="color:#339966;">[Oct 23 15:10:38] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Detected</span>
<span style="color:#339966;">[Oct 23 15:10:39] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Offered</span>
<span style="color:#339966;">[Oct 23 15:10:39] NOTICE[3395]: chan_unicall.c:2642 handle_uc_event: CRN 33152 - Offered on channel 0 (ANI: , DNIS: 2100, Cat: 1)</span>
<span style="color:#339966;">[Oct 23 15:10:40] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Accepted</span>
<span style="color:#339966;">    -- Executing [2100@entrantescentro:1] NoOp("UniCall/1-1", "2100") in new stack</span>
<span style="color:#339966;">    -- Executing [2100@entrantescentro:2] NoOp("UniCall/1-1", "") in new stack</span>
<span style="color:#339966;">    -- Executing [2100@entrantescentro:3] Set("UniCall/1-1", "CALLERID(all)="Llamada"") in new stack</span>
<span style="color:#339966;">    -- Executing [2100@entrantescentro:4] BackGround("UniCall/1-1", "custom/ivrcentro") in new stack</span>
<span style="color:#339966;">    -- &lt;UniCall/1-1&gt; Playing 'custom/ivrcentro' (language 'en')</span>
<span style="color:#339966;">[Oct 23 15:10:40] NOTICE[13441]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Answered</span>
<span style="color:#339966;">[Oct 23 15:11:02] NOTICE[13441]: chan_unicall.c:1914 unicall_exception: Exception on 23, channel 1</span>
<span style="color:#339966;">[Oct 23 15:11:02] NOTICE[13441]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Far end disconnected</span>
<span style="color:#339966;">[Oct 23 15:11:02] NOTICE[13441]: chan_unicall.c:2790 handle_uc_event: CRN 33152 - far disconnected cause=Normal Clearing [16]</span>
<span style="color:#339966;">    -- Channel 0 got hangup</span>
<span style="color:#339966;">  == Spawn extension (entrantescentro, 2100, 4) exited non-zero on 'UniCall/1-1'</span>
<span style="color:#339966;">    -- Hungup 'UniCall/1-1'</span>
<span style="color:#339966;">[Oct 23 15:11:02] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Drop call</span>
<span style="color:#339966;">[Oct 23 15:11:02] NOTICE[3395]: chan_unicall.c:2518 handle_uc_event: Unicall/1 event Release call</span>
<span style="color:#339966;">    -- Unicall/1 released</span>
<span style="color:#339966;">asteriskcentro*CLI&gt;</span></pre>
</pre>
<p>Lo que hicimos fue marcar al numero cabeza de grupo, el que termina en 2100, si marcamos el numero con terminación 2107 se dirige directamente al usuario sin pasar por el mensaje de bienvenida.</p>
<p>Caso contrario si queremos hacer llamadas creamos un contexto como este:</p>
<pre><span style="color:#339966;">[salientescentro-local]</span>
<span style="color:#339966;">exten =&gt; _XXXXXXXX,1,Dial(Unicall/g1/${EXTEN})</span></pre>
<p>Hasta ahorita todo va bien, conforme pase el tiempo veremos como se comporta esto, y lo pondre por acá.</p>
<p>Date una vuelta por estas paginas y échales un ojo:</p>
<p><a href="http://zarzamora.com.mx/archivo-historico/17" target="_blank">http://zarzamora.com.mx/archivo-historico/17</a></p>
<p><a href="http://www.moythreads.com/astunicall/">http://www.moythreads.com/astunicall/ </a></p>
<p><a href="http://www.voip-info.org/wiki/view/Asterisk+MFC+R2">http://www.voip-info.org/wiki/view/Asterisk+MFC+R2</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/demerzel.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/demerzel.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/demerzel.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/demerzel.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/demerzel.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/demerzel.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/demerzel.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/demerzel.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/demerzel.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/demerzel.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/demerzel.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/demerzel.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/demerzel.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/demerzel.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=45&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://demerzel.wordpress.com/2008/10/23/asterisk-y-e1-experiencias/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c7bef571590009e6d1d91bfc84e5e193?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ciclodetrantor</media:title>
		</media:content>

		<media:content url="http://demerzel.files.wordpress.com/2008/10/te122b-lrg.jpg" medium="image">
			<media:title type="html">te122b-lrg</media:title>
		</media:content>
	</item>
		<item>
		<title>IAXModem en acción.</title>
		<link>http://demerzel.wordpress.com/2008/10/03/iaxmodem-en-accion/</link>
		<comments>http://demerzel.wordpress.com/2008/10/03/iaxmodem-en-accion/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 17:45:09 +0000</pubDate>
		<dc:creator>ciclodetrantor</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Fax]]></category>

		<guid isPermaLink="false">http://demerzel.wordpress.com/?p=38</guid>
		<description><![CDATA[Una de las cosas que mas quebraderos de cabeza me ha ocasionado, es el asunto del fax. Cuando tienes lineas analógicas casi siempre predispones de que el fax pueda fallar. Se me ha presentado ese asunto con Asterisk y una tarjeta TDM410P. No llegan todos los fax enviados y los recibidos fallan con ciertos números. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=38&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Una de las cosas que mas quebraderos de cabeza me ha ocasionado, es el asunto del fax. Cuando tienes lineas analógicas casi siempre predispones de que el fax pueda fallar. Se me ha presentado ese asunto con Asterisk y una tarjeta TDM410P. No llegan todos los fax enviados y los recibidos fallan con ciertos números. Aprovechando esto se me ocurrió probar el tan mencionado IAXModem e Hylafax.</p>
<p>A continuación anexo el comportamiento de Asterisk al detectar que entra un fax y lo redirige al IAXModem, posteriormente solo checo el archivo en el servidor o el PDF adjunto a algún correo electrónico.</p>
<p>Un excelente documento donde puedes encontrar la instalación de esto lo puedes encontrar aquí: <a href="http://www.julianmenendez.es/documentos/asterisk_hylafax_iaxmodem">http://www.julianmenendez.es/documentos/asterisk_hylafax_iaxmodem</a></p>
<pre>Connected to Asterisk 1.2.28.1 currently running on SanJeronimo (pid = 15766)
    -- Remote UNIX connection
Verbosity is at least 30
    -- Starting simple switch on 'Zap/4-1'
Oct  2 12:24:03 NOTICE[19221]: chan_zap.c:6248 ss_thread: Got event 18 (Ring Begin)...
Oct  2 12:24:04 NOTICE[19221]: chan_zap.c:6248 ss_thread: Got event 2 (Ring/Answered)...
    -- Executing Answer("Zap/4-1", "") in new stack
    -- Executing Wait("Zap/4-1", "4") in new stack
    -- Redirecting Zap/4-1 to fax extension
  == Spawn extension (fax, fax, 0) exited non-zero on 'Zap/4-1'
    -- Executing Dial("Zap/4-1", "IAX2/200") in new stack
    -- Called 200
    -- Call accepted by 127.0.0.1 (format slin)
    -- Format for call is slin
    -- IAX2/200-8325 is ringing
    -- IAX2/200-8325 answered Zap/4-1
    -- Hungup 'IAX2/200-8325'
  == Spawn extension (fax, fax, 1) exited non-zero on 'Zap/4-1'
    -- Hungup 'Zap/4-1'</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/demerzel.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/demerzel.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/demerzel.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/demerzel.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/demerzel.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/demerzel.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/demerzel.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/demerzel.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/demerzel.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/demerzel.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/demerzel.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/demerzel.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/demerzel.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/demerzel.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=38&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://demerzel.wordpress.com/2008/10/03/iaxmodem-en-accion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c7bef571590009e6d1d91bfc84e5e193?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ciclodetrantor</media:title>
		</media:content>
	</item>
		<item>
		<title>Correo de voz en PostgreSQL</title>
		<link>http://demerzel.wordpress.com/2008/08/17/correo-de-voz-en-postgresql/</link>
		<comments>http://demerzel.wordpress.com/2008/08/17/correo-de-voz-en-postgresql/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 17:39:58 +0000</pubDate>
		<dc:creator>ciclodetrantor</dc:creator>
				<category><![CDATA[Asterisk]]></category>

		<guid isPermaLink="false">http://demerzel.wordpress.com/?p=30</guid>
		<description><![CDATA[Nos conectamos nuevamente a nuestra base de datos. asteriskpbx:/home/sistemas# psql -U asterisk -h localhost asteriskDB Contraseña para usuario asterisk: Bienvenido a psql 8.1.11, la terminal interactiva de PostgreSQL. Digite:  \copyright para ver los términos de distribución \h para ayuda de comandos SQL \? para ayuda de comandos psql \g o or termine con punto y [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=30&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nos conectamos nuevamente a nuestra base de datos.</p>
<p>asteriskpbx:/home/sistemas# psql -U asterisk -h localhost asteriskDB<br />
Contraseña para usuario asterisk:<br />
Bienvenido a psql 8.1.11, la terminal interactiva de PostgreSQL.</p>
<p>Digite:  \copyright para ver los términos de distribución<br />
\h para ayuda de comandos SQL<br />
\? para ayuda de comandos psql<br />
\g o or termine con punto y coma para ejecutar una consulta<br />
\q para salir</p>
<p>conexión SSL (cifrado: DHE-RSA-AES256-SHA, bits: 256)<br />
asteriskDB=#</p>
<p>Ingresamos las siguientes sentencias para crear el tipo especial donde se almacenaran los mensajes.</p>
<pre>CREATE FUNCTION loin (cstring) RETURNS lo AS 'oidin' LANGUAGE internal IMMUTABLE STRICT;
CREATE FUNCTION loout (lo) RETURNS cstring AS 'oidout' LANGUAGE internal IMMUTABLE STRICT;
CREATE FUNCTION lorecv (internal) RETURNS lo AS 'oidrecv' LANGUAGE internal IMMUTABLE STRICT;
CREATE FUNCTION losend (lo) RETURNS bytea AS 'oidrecv' LANGUAGE internal IMMUTABLE STRICT;

CREATE TYPE lo ( INPUT = loin, OUTPUT = loout, RECEIVE = lorecv, SEND = losend, INTERNALLENGTH = 4, PASSEDBYVALUE );
CREATE CAST (lo AS oid) WITHOUT FUNCTION AS IMPLICIT;
CREATE CAST (oid AS lo) WITHOUT FUNCTION AS IMPLICIT;

CREATE TRUSTED LANGUAGE plpgsql;</pre>
<pre>CREATE FUNCTION vm_lo_cleanup() RETURNS "trigger"
    AS $$
    declare
      msgcount INTEGER;
    begin
      if (TG_OP = 'UPDATE') then
        if ((old.recording = new.recording) or (old.recording is NULL)) then
          raise notice 'Not cleaning up the large object table, as recording has not changed';
          return new;
        end if;
      end if;
      if (old.recording IS NOT NULL) then
        SELECT INTO msgcount COUNT(*) AS COUNT FROM voicemessages WHERE recording = old.recording;
        if (msgcount &gt; 0) then
          raise notice 'Not deleting record from the large object table, as object is still referenced';
          return new;
        else
          perform lo_unlink(old.recording);
          if found then
            raise notice 'Cleaning up the large object table';
            return new;
          else
            raise exception 'Failed to cleanup the large object table';
            return old;
          end if;
        end if;
      else
        raise notice 'No need to cleanup the large object table, no recording on old row';
        return new;
      end if;
    end$$
    LANGUAGE plpgsql;</pre>
<p>CREATE TABLE voicemessages<br />
(<br />
uniqueid serial PRIMARY KEY,<br />
msgnum int4,<br />
dir varchar(80),<br />
context varchar(80),<br />
macrocontext varchar(80),<br />
callerid varchar(40),<br />
origtime varchar(40),<br />
duration varchar(20),<br />
mailboxuser varchar(80),<br />
mailboxcontext varchar(80),<br />
recording lo,<br />
label varchar(30),<br />
&#8220;read&#8221; bool DEFAULT false<br />
);</p>
<p>CREATE TRIGGER vm_cleanup AFTER DELETE OR UPDATE ON voicemessages FOR EACH ROW EXECUTE PROCEDURE vm_lo_cleanup();</p>
<p>asteriskDB=# \d voicemessages<br />
Tabla «public.voicemessages»<br />
Columna     |         Tipo          |                          Modificadores<br />
&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
uniqueid       | integer               | not null default nextval(&#8216;voicemessages_uniqueid_seq&#8217;::regclass)<br />
msgnum         | integer               |<br />
dir            | character varying(80) |<br />
context        | character varying(80) |<br />
macrocontext   | character varying(80) |<br />
callerid       | character varying(40) |<br />
origtime       | character varying(40) |<br />
duration       | character varying(20) |<br />
mailboxuser    | character varying(80) |<br />
mailboxcontext | character varying(80) |<br />
recording      | lo                    |<br />
label          | character varying(30) |<br />
read           | boolean               | default false<br />
Índices:<br />
«voicemessages_pkey» PRIMARY KEY, btree (uniqueid)<br />
Triggers:<br />
vm_cleanup AFTER DELETE OR UPDATE ON voicemessages FOR EACH ROW EXECUTE PROCEDURE vm_lo_cleanup()</p>
<p>asteriskDB=# \q</p>
<p>Verificamos que la conexión sea exitosa para lo anteriormente creado.</p>
<p>asteriskpbx:/home/sistemas# echo &#8220;SELECT uniqueid, msgnum, dir, duration FROM voicemessages WHERE msgnum = 1&#8243; | isql asterisk-connector<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
| Connected!                            |<br />
|                                       |<br />
| sql-statement                         |<br />
| help [tablename]                      |<br />
| quit                                  |<br />
|                                       |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
SQL&gt; +&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
| uniqueid   | msgnum     | dir                                                                             | duration            |<br />
+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
SQLRowCount returns 0<br />
SQL&gt;</p>
<p>Agregamos las siguientes lineas en el archivo de configuración del correo de voz, donde especificamos el nombre del contexto de nuestra conexion y la tabla que contendra los mensajes, asi como la creacion de los buzones para los usuarios anteriormente creados.</p>
<p>asteriskpbx:/home/sistemas# vim /etc/asterisk/voicemail.conf</p>
<p>odbcstorage=asterisk<br />
odbctable=voicemessages</p>
<p>[odbcmail]<br />
5000 =&gt; 1984,Daneel,daneel@loquesea.com<br />
5001 =&gt; 1984,Giskard,giskard@loquesea.com</p>
<p>Reiniciamos el modulo correspondiente,<br />
*CLI&gt; module unload app_voicemail.so<br />
*CLI&gt; module load app_voicemail.so</p>
<p>Visualizamos la creacion de los usuarios.</p>
<p>*CLI&gt; voicemail show users for odbcmail<br />
Context    Mbox  User                      Zone       NewMsg<br />
odbcmail   5000  Daneel                                    0<br />
odbcmail   5001  Giskard                                   0</p>
<p>Realizamos unos cambios a nuestro macro, para que despues de treinta segundos sonando salte al buzon de voz.<br />
[macro-llamar]<br />
exten =&gt; s,1,Dial(${ARG1},30)<br />
exten =&gt; s,n,Goto(s-${DIALSTATUS},1)<br />
exten =&gt; s-NOANSWER,1,Voicemail(${MACRO_EXTEN}@odbcmail,u)<br />
exten =&gt; s-BUSY,n,Voicemail(${MACRO_EXTEN}@odbcmail,b)<br />
exten =&gt; s-CHANUNAVAIL,1,Voicemail(${MACRO_EXTEN}@odbcmail,u)<br />
exten =&gt; s-CONGESTION,n,Voicemail(${MACRO_EXTEN}@odbcmail,b)</p>
<p>Agregamos lo siguiente a nuestro contexto internal para poder acceder a los correos de voz.</p>
<p>exten =&gt; *86,1,VoiceMailMain(@odbcmail)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/demerzel.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/demerzel.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/demerzel.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/demerzel.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/demerzel.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/demerzel.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/demerzel.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/demerzel.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/demerzel.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/demerzel.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/demerzel.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/demerzel.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/demerzel.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/demerzel.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/demerzel.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/demerzel.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=30&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://demerzel.wordpress.com/2008/08/17/correo-de-voz-en-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c7bef571590009e6d1d91bfc84e5e193?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ciclodetrantor</media:title>
		</media:content>
	</item>
		<item>
		<title>Sonido de moto en Asterisk</title>
		<link>http://demerzel.wordpress.com/2008/07/25/sonido-de-moto-en-asterisk/</link>
		<comments>http://demerzel.wordpress.com/2008/07/25/sonido-de-moto-en-asterisk/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 18:04:05 +0000</pubDate>
		<dc:creator>ciclodetrantor</dc:creator>
				<category><![CDATA[Asterisk]]></category>

		<guid isPermaLink="false">http://demerzel.wordpress.com/?p=13</guid>
		<description><![CDATA[Una de las cosas que pueden ocasionar muchos problemas en Asterisk son las lineas analógicas; ruido, eco, cortes de llamadas, llamadas que no se cuelgan, llamadas fantasmas, y un largo etcétera, pero lo de ayer nunca lo había escuchado. En una oficina, reportaron que al entrar una llamada esta hacia un sonido como de &#8220;trompetilla&#8221;, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=13&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Una de las cosas que pueden ocasionar muchos problemas en Asterisk son las lineas analógicas; ruido, eco, cortes de llamadas, llamadas que no se cuelgan, llamadas fantasmas, y un largo etcétera, pero lo de ayer nunca lo había escuchado.</p>
<p>En una oficina, reportaron que al entrar una llamada esta hacia un sonido como de &#8220;trompetilla&#8221;, y que se venia presentando frecuentemente. Grabando con mixmonitor, las llamadas entrantes del contexto de esa linea, me tope con una grabación mas que peculiar.</p>
<p>A primera vista después de verificar todo, la principal sospechosa fue la linea telefónica (TELMEX), cuando se marcaba el numero en cuestión el que realiza la llamada escucha que esta sonando el numero, pero al contestar del otro lado, se oye el sonido de timbrado bastante distorsionado a tal grado que asemejaba a una moto, a una sierra que resultaba siendo bastante chusco. Diagnostico: reportar la falla a la compañía.</p>
<span style='text-align:left;display:block;'><p><object type='application/x-shockwave-flash' data='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' width='290' height='24' id='audioplayer1'><param name='movie' value='http://s0.wp.com/wp-content/plugins/audio-player/player.swf' /><param name='FlashVars' value='&amp;bg=0xf8f8f8&amp;leftbg=0xeeeeee&amp;lefticon=0x666666&amp;rightbg=0xcccccc&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fgabo.web44.net%2Fpublico%2Fmoto.mp3' /><param name='quality' value='high' /><param name='menu' value='false' /><param name='bgcolor' value='#FFFFFF' /><param name='wmode' value='opaque' /></object></p></span>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/demerzel.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/demerzel.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/demerzel.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/demerzel.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/demerzel.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/demerzel.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/demerzel.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/demerzel.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/demerzel.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/demerzel.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/demerzel.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/demerzel.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/demerzel.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/demerzel.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/demerzel.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/demerzel.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=13&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://demerzel.wordpress.com/2008/07/25/sonido-de-moto-en-asterisk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://gabo.web44.net/publico/moto.mp3" length="300093" type="audio/mpeg" />
	
		<media:content url="http://0.gravatar.com/avatar/c7bef571590009e6d1d91bfc84e5e193?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ciclodetrantor</media:title>
		</media:content>
	</item>
		<item>
		<title>Flash Operator Panel</title>
		<link>http://demerzel.wordpress.com/2008/07/11/flash-operator-panel/</link>
		<comments>http://demerzel.wordpress.com/2008/07/11/flash-operator-panel/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 16:27:35 +0000</pubDate>
		<dc:creator>ciclodetrantor</dc:creator>
				<category><![CDATA[Asterisk]]></category>

		<guid isPermaLink="false">http://demerzel.wordpress.com/?p=6</guid>
		<description><![CDATA[Una de las herramientas mas útiles que me ha tocado conocer es el FOP (Flash Operator Panel). Bastante útil para ver el estado de las llamadas, y verificar las lineas analógicas (principalmente cuando se bloquean). En la imagen se muestra un FOP que tengo conectado con cuatro Asterisk.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=6&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">Una de las herramientas mas útiles que me ha tocado conocer es el FOP (Flash Operator Panel).</div>
<div class="mceTemp">Bastante útil para ver el estado de las llamadas, y verificar las lineas analógicas (principalmente cuando se bloquean). En la imagen se muestra un FOP que tengo conectado con cuatro Asterisk.</div>
<div id="attachment_5" class="wp-caption alignnone" style="width: 310px"><a href="http://demerzel.files.wordpress.com/2008/07/fop.png"><img class="size-medium wp-image-5" src="http://demerzel.files.wordpress.com/2008/07/fop.png?w=300&#038;h=187" alt="FOP" width="300" height="187" /></a><p class="wp-caption-text">FOP</p></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/demerzel.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/demerzel.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/demerzel.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/demerzel.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/demerzel.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/demerzel.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/demerzel.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/demerzel.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/demerzel.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/demerzel.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/demerzel.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/demerzel.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/demerzel.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/demerzel.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/demerzel.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/demerzel.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=6&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://demerzel.wordpress.com/2008/07/11/flash-operator-panel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c7bef571590009e6d1d91bfc84e5e193?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ciclodetrantor</media:title>
		</media:content>

		<media:content url="http://demerzel.files.wordpress.com/2008/07/fop.png?w=300" medium="image">
			<media:title type="html">FOP</media:title>
		</media:content>
	</item>
		<item>
		<title>Asterisk CDR con PostgreSQL</title>
		<link>http://demerzel.wordpress.com/2008/02/22/asterisk-cdr-con-postgresql/</link>
		<comments>http://demerzel.wordpress.com/2008/02/22/asterisk-cdr-con-postgresql/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 22:30:06 +0000</pubDate>
		<dc:creator>ciclodetrantor</dc:creator>
				<category><![CDATA[Asterisk]]></category>

		<guid isPermaLink="false">http://demerzel.wordpress.com/?p=4</guid>
		<description><![CDATA[Instalamos la base de datos PostgreSQL y el conector para ODBC. asteriskpbx:/home/sistemas# aptitude install postgresql-8.1 odbc-postgresql Leyendo lista de paquetes&#8230; Hecho Creando árbol de dependencias&#8230; Hecho Leyendo la información de estado extendido Inicializando el estado de los paquetes&#8230; Hecho Leyendo las descripciones de las tareas&#8230; Hecho Construir la base de datos de etiquetas&#8230; Hecho Se [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=4&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Instalamos la base de datos PostgreSQL y el conector para ODBC.</p>
<p>asteriskpbx:/home/sistemas# aptitude install postgresql-8.1 odbc-postgresql<br />
Leyendo lista de paquetes&#8230; Hecho<br />
Creando árbol de dependencias&#8230; Hecho<br />
Leyendo la información de estado extendido<br />
Inicializando el estado de los paquetes&#8230; Hecho<br />
Leyendo las descripciones de las tareas&#8230; Hecho<br />
Construir la base de datos de etiquetas&#8230; Hecho<br />
Se instalarán automáticamente los siguientes paquetes NUEVOS:<br />
postgresql-client-8.1 postgresql-client-common postgresql-common<br />
Se instalarán los siguiente paquetes NUEVOS:<br />
odbc-postgresql postgresql-8.1 postgresql-client-8.1 postgresql-client-common postgresql-common<br />
0 paquetes actualizados, 5 nuevos instalados, 0 para eliminar y 0 sin actualizar.<br />
Necesito descargar 6188kB de ficheros. Después de desempaquetar se usarán 16.4MB.<br />
¿Quiere continuar? [Y/n/?] Y<br />
Escribiendo información de estado extendido&#8230; Hecho<br />
Des:1 http://ftp.de.debian.org etch/main odbc-postgresql 1:08.01.0200-2.1 [334kB]<br />
Des:2 http://ftp.de.debian.org etch/main postgresql-client-common 71 [40.2kB]<br />
Des:3 http://ftp.de.debian.org etch/main postgresql-client-8.1 8.1.11-0etch1 [1422kB]<br />
Des:4 http://ftp.de.debian.org etch/main postgresql-common 71 [102kB]<br />
Des:5 http://ftp.de.debian.org etch/main postgresql-8.1 8.1.11-0etch1 [4289kB]<br />
Descargados 6188kB en 43s (142kB/s).<br />
Preconfigurando paquetes &#8230;<br />
Seleccionando el paquete odbc-postgresql previamente no seleccionado.<br />
(Leyendo la base de datos &#8230;<br />
31472 ficheros y directorios instalados actualmente.)<br />
Desempaquetando odbc-postgresql (de &#8230;/odbc-postgresql_1%3a08.01.0200-2.1_i386.deb) &#8230;<br />
Seleccionando el paquete postgresql-client-common previamente no seleccionado.<br />
Desempaquetando postgresql-client-common (de &#8230;/postgresql-client-common_71_all.deb) &#8230;<br />
Seleccionando el paquete postgresql-client-8.1 previamente no seleccionado.<br />
Desempaquetando postgresql-client-8.1 (de &#8230;/postgresql-client-8.1_8.1.11-0etch1_i386.deb) &#8230;<br />
Seleccionando el paquete postgresql-common previamente no seleccionado.<br />
Desempaquetando postgresql-common (de &#8230;/postgresql-common_71_all.deb) &#8230;<br />
Seleccionando el paquete postgresql-8.1 previamente no seleccionado.<br />
Desempaquetando postgresql-8.1 (de &#8230;/postgresql-8.1_8.1.11-0etch1_i386.deb) &#8230;<br />
Configurando odbc-postgresql (08.01.0200-2.1) &#8230;<br />
Configurando postgresql-client-common (71) &#8230;<br />
Configurando postgresql-client-8.1 (8.1.11-0etch1) &#8230;</p>
<p>Configurando postgresql-common (71) &#8230;<br />
adduser: Warning: that home directory does not belong to the user you are currently creating.</p>
<p>Configurando postgresql-8.1 (8.1.11-0etch1) &#8230;<br />
Creating new cluster (configuration: /etc/postgresql/8.1/main, data: /var/lib/postgresql/8.1/main)&#8230;<br />
Moving configuration file /var/lib/postgresql/8.1/main/postgresql.conf to /etc/postgresql/8.1/main&#8230;<br />
Moving configuration file /var/lib/postgresql/8.1/main/pg_hba.conf to /etc/postgresql/8.1/main&#8230;<br />
Moving configuration file /var/lib/postgresql/8.1/main/pg_ident.conf to /etc/postgresql/8.1/main&#8230;<br />
Configuring postgresql.conf to use port 5432&#8230;<br />
Starting PostgreSQL 8.1 database server: main.</p>
<p>asteriskpbx:/home/sistemas# /etc/init.d/postgresql-8.1 start<br />
Starting PostgreSQL 8.1 database server: main.</p>
<p>Nos logueamos con el usuario postgres.</p>
<p>asteriskpbx:/home/sistemas# su &#8211; postgres</p>
<p>Creamos el usuario asterisk, con el cual trabajaremos.</p>
<p>postgres@asteriskpbx:~$ createuser -s -D -R -l -P -e asterisk<br />
Ingrese la contraseña para el nuevo rol:<br />
Ingrésela nuevamente:<br />
CREATE ROLE asterisk PASSWORD &#8216;babieca&#8217; SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;<br />
CREATE ROLE</p>
<p>Creamos la base de datos asteriskDB, cuyo dueño sera el usuario asterisk.</p>
<p>postgres@asteriskpbx:~$ createdb -O asterisk -e asteriskDB<br />
CREATE DATABASE &#8220;asteriskDB&#8221; OWNER asterisk;<br />
CREATE DATABASE</p>
<p>Es importante dar acceso a la base de datos, por lo cual editamos los permisos del siguiente archivo que debe tener una apariencia similar a las lineas siguientes.</p>
<p>postgres@asteriskpbx:~$ vim /etc/postgresql/8.1/main/pg_hba.conf</p>
<p># &#8220;local&#8221; is for Unix domain socket connections only<br />
local   asteriskDB        asterisk                md5<br />
local   all             all                     ident sameuser<br />
# IPv4 local connections:<br />
host    all         all         127.0.0.1/32          md5</p>
<p>postgres@asteriskpbx:~$ exit<br />
logout</p>
<p>Al hacer los cambios al archivo anterior, reiniciamos la base de datos.</p>
<p>asteriskpbx:/home/sistemas# /etc/init.d/postgresql-8.1 restart<br />
Restarting PostgreSQL 8.1 database server: main.</p>
<p>Realizamos los parametros iniciales de la conexíon con los drivers necesarios para la conexion mediante ODBC con PostgreSQL, editando el archivo siguiente.</p>
<p>asteriskpbx:/home/sistemas# vim /etc/odbcinst.ini</p>
<p>[PostgreSQL]<br />
Description = ODBC for PostgreSQL<br />
Driver = /usr/lib/odbc/psqlodbca.so<br />
Setup = /usr/lib/odbc/libodbcpsqlS.so<br />
FileUsage = 1</p>
<p>Verificamos que los parametros sean correctos, en caso de ser así recibiremos el nombre de la sección, en caso contrario nos mandara un error, que en todo caso sera por algún error de sintaxis.</p>
<p>asteriskpbx:/home/sistemas# odbcinst -q -d<br />
[PostgreSQL]</p>
<p>En el archivo siguiente introducimos los parametros para la conexión con nuestra base de datos.</p>
<p>asteriskpbx:/home/sistemas# vim /etc/odbc.ini</p>
<p>[asterisk-connector]<br />
Description = PostgreSQL connection to &#8216;asterisk&#8217; database<br />
Driver = PostgreSQL<br />
Database = asteriskDB<br />
Servername = localhost<br />
UserName = asterisk<br />
Password = babieca<br />
Port = 5432<br />
ReadOnly = No<br />
RowVersioning = No<br />
ShowSystemTables = No<br />
ShowOidColumn = No<br />
FakeOidIndex = No<br />
ConnSettings =</p>
<p>Realizamos una prueba de conexión.</p>
<p>asteriskpbx:/home/sistemas# echo &#8220;select 1&#8243; | isql -v asterisk-connector<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
| Connected!                            |<br />
|                                       |<br />
| sql-statement                         |<br />
| help [tablename]                      |<br />
| quit                                  |<br />
|                                       |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
SQL&gt; +&#8212;&#8212;&#8212;&#8212;+<br />
| ?column?   |<br />
+&#8212;&#8212;&#8212;&#8212;+<br />
| 1          |<br />
+&#8212;&#8212;&#8212;&#8212;+<br />
SQLRowCount returns 1<br />
1 rows fetched<br />
SQL&gt;</p>
<p>Si nos surge un error similar, verifiquemos que nuestro servidor de base de datos este inicializado, y que este aceptando conexiones por el puerto dado, (por defecto ya se encuentra activado).</p>
<p>asteriskpbx:/home/sistemas# echo &#8220;select 1&#8243; | isql -v asterisk-connector<br />
[08001][unixODBC]could not connect to server: Conexión rehusada<br />
Is the server running on host &#8220;localhost&#8221; and accepting<br />
TCP/IP connections on port 5432?</p>
<p>[ISQL]ERROR: Could not SQLConnect</p>
<p>Iniciamos asterisk, para verificar que los módulos se carguen correctamente, anteriormente ya habíamos compilado asterisk con soporte para ODBC.</p>
<p>asteriskpbx:/home/sistemas# asterisk -c<br />
Asterisk 1.4.21.2, Copyright (C) 1999 &#8211; 2008 Digium, Inc. and others.<br />
Created by Mark Spencer &lt;markster@digium.com&gt;<br />
Asterisk comes with ABSOLUTELY NO WARRANTY; type &#8216;core show warranty&#8217; 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 &#8216;core show license&#8217; for details.<br />
=========================================================================<br />
[ Booting...<br />
[ Reading Master Configuration ]<br />
[ Initializing Custom Configuration Options ]<br />
[Aug 15 18:28:32] NOTICE[5800]: cdr.c:1373 do_reload: CDR simple logging enabled.<br />
[Aug 15 18:28:32] NOTICE[5800]: loader.c:851 load_modules: 146 modules will be loaded.<br />
..[Aug 15 18:28:32] NOTICE[5800]: config.c:1274 ast_config_engine_register: Registered Config Engine odbc<br />
&#8230;&#8230;[Aug 15 18:28:32] WARNING[5800]: res_smdi.c:1335 load_module: No SMDI interfaces are available to listen on, not starting SMDI listener.<br />
[Aug 15 18:28:32] NOTICE[5800]: res_odbc.c:235 load_odbc_config: Adding ENV var: INFORMIXSERVER=my_special_database<br />
[Aug 15 18:28:32] NOTICE[5800]: res_odbc.c:235 load_odbc_config: Adding ENV var: INFORMIXDIR=/opt/informix<br />
[Aug 15 18:28:32] NOTICE[5800]: res_odbc.c:716 load_module: res_odbc loaded.<br />
&#8230;&#8230;&#8230;..[Aug 15 18:28:32] NOTICE[5800]: pbx_ael.c:4131 pbx_load_module: Starting AEL load process.<br />
[Aug 15 18:28:32] NOTICE[5800]: pbx_ael.c:4138 pbx_load_module: AEL load process: calculated config file name &#8216;/etc/asterisk/extensions.ael&#8217;.<br />
[Aug 15 18:28:32] NOTICE[5800]: pbx_ael.c:4146 pbx_load_module: AEL load process: parsed config file name &#8216;/etc/asterisk/extensions.ael&#8217;.<br />
[Aug 15 18:28:32] NOTICE[5800]: pbx_ael.c:4149 pbx_load_module: AEL load process: checked config file name &#8216;/etc/asterisk/extensions.ael&#8217;.<br />
[Aug 15 18:28:32] NOTICE[5800]: pbx_ael.c:4151 pbx_load_module: AEL load process: compiled config file name &#8216;/etc/asterisk/extensions.ael&#8217;.<br />
[Aug 15 18:28:32] NOTICE[5800]: pbx_ael.c:4154 pbx_load_module: AEL load process: merged config file name &#8216;/etc/asterisk/extensions.ael&#8217;.<br />
[Aug 15 18:28:32] NOTICE[5800]: pbx_ael.c:4157 pbx_load_module: AEL load process: verified config file name &#8216;/etc/asterisk/extensions.ael&#8217;.<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..[Aug 15 18:28:32] WARNING[5800]: chan_iax2.c:11111 load_module: Unable to open IAX timing interface: No such file or directory<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..  == No hardware transcoders found.<br />
&#8230;&#8230;. ]<br />
Asterisk Ready.<br />
*CLI&gt; module show like res_odbc.so<br />
Module                         Description                              Use Count<br />
res_odbc.so                    ODBC Resource                            0<br />
1 modules loaded<br />
*CLI&gt;</p>
<p>Editamos el siguiente archivo, habilitando la conexión y poniendo el nombre de nuestro conector.<br />
asteriskpbx:/home/sistemas# vim /etc/asterisk/res_odbc.conf</p>
<p>[asterisk]<br />
enabled =&gt; yes<br />
dsn =&gt; asterisk-connector<br />
pre-connect =&gt; yes</p>
<p>Reiniciamos el modulo, y observamos que se registra de manera optima.</p>
<p>*CLI&gt; module reload res_odbc.so<br />
[Aug 15 18:35:03] NOTICE[5800]: res_odbc.c:578 reload: Adding ENV var: INFORMIXSERVER=my_special_database<br />
[Aug 15 18:35:03] NOTICE[5800]: res_odbc.c:578 reload: Adding ENV var: INFORMIXDIR=/opt/informix<br />
[Aug 15 18:35:03] NOTICE[5800]: res_odbc.c:530 odbc_obj_connect: Connecting asterisk<br />
[Aug 15 18:35:03] NOTICE[5800]: res_odbc.c:544 odbc_obj_connect: res_odbc: Connected to asterisk [asterisk-connector]<br />
[Aug 15 18:35:03] NOTICE[5800]: res_odbc.c:676 reload: Registered ODBC class &#8216;asterisk&#8217; dsn-&gt;[asterisk-connector]<br />
*CLI&gt; odbc show<br />
Name: asterisk<br />
DSN: asterisk-connector<br />
Pooled: no<br />
Connected: yes</p>
<p>*CLI&gt;</p>
<p>Nos conectamos a la base de datos anteriormente creada.</p>
<p>asteriskpbx:/home/sistemas# psql -U asterisk -h localhost asteriskDB<br />
Contraseña para usuario asterisk:<br />
Bienvenido a psql 8.1.11, la terminal interactiva de PostgreSQL.</p>
<p>Digite:  \copyright para ver los términos de distribución<br />
\h para ayuda de comandos SQL<br />
\? para ayuda de comandos psql<br />
\g o or termine con punto y coma para ejecutar una consulta<br />
\q para salir</p>
<p>conexión SSL (cifrado: DHE-RSA-AES256-SHA, bits: 256)<br />
asteriskDB=#</p>
<p>Creamos la tabla cdr, mediante la instruccion siguiente:</p>
<p>CREATE TABLE cdr<br />
(<br />
id bigserial NOT NULL,<br />
calldate timestamptz,<br />
clid varchar(80),<br />
src varchar(80),<br />
dst varchar(80),<br />
dcontext varchar(80),<br />
channel varchar(80),<br />
dstchannel varchar(80),<br />
lastapp varchar(80),<br />
lastdata varchar(80),<br />
duration int8,<br />
billsec int8,<br />
disposition varchar(45),<br />
amaflags int8,<br />
accountcode varchar(20),<br />
uniqueid varchar(40),<br />
userfield varchar(255),<br />
CONSTRAINT asterisk_cdr_id_pk PRIMARY KEY (id)<br />
)<br />
WITHOUT OIDS;</p>
<p>NOTICE:  CREATE TABLE creará una secuencia implícita «cdr_id_seq» para la columna serial «cdr.id»<br />
NOTICE:  CREATE TABLE / PRIMARY KEY creará el índice implícito «asterisk_cdr_id_pk» para la tabla «cdr»<br />
CREATE TABLE<br />
asteriskDB=# \dt<br />
Listado de relaciones<br />
Schema | Nombre | Tipo  |  Dueño<br />
&#8212;&#8212;&#8211;+&#8212;&#8212;&#8211;+&#8212;&#8212;-+&#8212;&#8212;&#8212;-<br />
public | cdr    | tabla | asterisk<br />
(1 fila)</p>
<p>asteriskDB=# \d cdr<br />
Tabla «public.cdr»<br />
Columna   |           Tipo           |                  Modificadores<br />
&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
id          | bigint                   | not null default nextval(&#8216;cdr_id_seq&#8217;::regclass)<br />
calldate    | timestamp with time zone |<br />
clid        | character varying(80)    |<br />
src         | character varying(80)    |<br />
dst         | character varying(80)    |<br />
dcontext    | character varying(80)    |<br />
channel     | character varying(80)    |<br />
dstchannel  | character varying(80)    |<br />
lastapp     | character varying(80)    |<br />
lastdata    | character varying(80)    |<br />
duration    | bigint                   |<br />
billsec     | bigint                   |<br />
disposition | character varying(45)    |<br />
amaflags    | bigint                   |<br />
accountcode | character varying(20)    |<br />
uniqueid    | character varying(40)    |<br />
userfield   | character varying(255)   |<br />
Índices:<br />
«asterisk_cdr_id_pk» PRIMARY KEY, btree (id)</p>
<p>asteriskDB=# \q</p>
<p>Habilitamos el registro de llamadas, editando el siguiente archivo con parametros como el conector que estamos usando, asi como el nombre de la tabla.</p>
<p>asteriskpbx:/home/sistemas# vim /etc/asterisk/cdr_odbc.conf<br />
[global]<br />
dsn=asterisk-connector<br />
username=asterisk<br />
password=babieca<br />
loguniqueid=yes<br />
table=cdr</p>
<p>Reiniciamos el modulo en cuestion.<br />
*CLI&gt; module reload cdr_odbc.so</p>
<p>Verificamos el estado del CDR, para verificar el registro de ODBC.<br />
*CLI&gt; cdr status<br />
CDR logging: enabled<br />
CDR mode: simple<br />
CDR output unanswered calls: no<br />
CDR registered backend: ODBC<br />
CDR registered backend: cdr-custom<br />
CDR registered backend: csv<br />
CDR registered backend: cdr_manager<br />
*CLI&gt;</p>
<p>Creamos dos usuarios SIP para establecer una llamada.</p>
<p>asteriskpbx:/home/sistemas# vim /etc/asterisk/sip.conf</p>
<p>[template2](!)<br />
type=friend<br />
context=internal<br />
host=dynamic<br />
disallow=all<br />
allow=gsm<br />
allow=ulaw<br />
allow=alaw<br />
dtmfmode=rfc2833<br />
secret=holA</p>
<p>[5000](template2)<br />
[5001](template2)</p>
<p>Creamos un pequeño plan de marcado, que consta del contexto internal y un pequeño macro.</p>
<p>asteriskpbx:/home/sistemas# vim /etc/asterisk/extensions.conf</p>
<p>[macro-llamar]<br />
exten =&gt; s,1,Dial(${ARG1},10)<br />
exten =&gt; s,n,Hangup()</p>
<p>[internal]<br />
exten =&gt; _5XXX,1,Macro(llamar,SIP/${EXTEN})</p>
<p>Reiniciamos los archivos modificados.</p>
<p>*CLI&gt; sip reload<br />
*CLI&gt; dialplan reload</p>
<p>Registramos un par de softphones y establecemos una llamada.</p>
<p>*CLI&gt;<br />
&#8211; Executing [5000@internal:1] Macro(&#8220;SIP/5001-08b44b60&#8243;, &#8220;llamar|SIP/5000&#8243;) in new stack<br />
&#8211; Executing [s@macro-llamar:1] Dial(&#8220;SIP/5001-08b44b60&#8243;, &#8220;SIP/5000|10&#8243;) in new stack<br />
&#8211; Called 5000<br />
&#8211; SIP/5000-08b4c2b0 is ringing<br />
&#8211; SIP/5000-08b4c2b0 answered SIP/5001-08b44b60<br />
&#8211; Native bridging SIP/5001-08b44b60 and SIP/5000-08b4c2b0<br />
== Spawn extension (macro-llamar, s, 1) exited non-zero on &#8216;SIP/5001-08b44b60&#8242; in macro &#8216;llamar&#8217;<br />
== Spawn extension (macro-llamar, s, 1) exited non-zero on &#8216;SIP/5001-08b44b60&#8242;<br />
&gt; cdr_odbc: Query Successful!</p>
<p>Un ejemplo de un select de la tabla donde se registran las llamadas.</p>
<p>asteriskDB=# select calldate,src,dst,dcontext,channel,dstchannel,lastapp,duration from cdr;<br />
calldate        | src  | dst  | dcontext |      channel      |    dstchannel     | lastapp | duration<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-<br />
2008-08-16 17:01:00-05 | 5001 | 5000 | internal | SIP/5001-08b4ae58 | SIP/5000-08b4f6f8 | Dial    |       16<br />
2008-08-16 17:08:54-05 | 5000 | 5001 | internal | SIP/5000-08b44b60 | SIP/5001-08b520c8 | Dial    |       16<br />
2008-08-16 17:09:31-05 | 5001 | 5001 | internal | SIP/5001-08b4f6e0 | SIP/5001-08b498c8 | Dial    |        4<br />
2008-08-16 17:09:38-05 | 5001 | 5000 | internal | SIP/5001-08b4f6e0 | SIP/5000-08b498c8 | Dial    |        7<br />
2008-08-16 17:09:53-05 | 5001 | 5000 | internal | SIP/5001-08b44b60 | SIP/5000-08b4c2b0 | Dial    |       11<br />
2008-08-16 17:10:28-05 | 5001 | 5000 | internal | SIP/5001-08b4f6e0 | SIP/5000-08b498c8 | Hangup  |       10<br />
2008-08-16 17:11:03-05 | 5001 | 5000 | internal | SIP/5001-08b44b60 | SIP/5000-08b4c2b0 | Dial    |       11<br />
2008-08-16 17:11:17-05 | 5001 | 5000 | internal | SIP/5001-08b44b60 | SIP/5000-08b520c8 | Hangup  |       10<br />
(8 filas)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/demerzel.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/demerzel.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/demerzel.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/demerzel.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/demerzel.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/demerzel.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/demerzel.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/demerzel.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/demerzel.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/demerzel.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/demerzel.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/demerzel.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/demerzel.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/demerzel.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/demerzel.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/demerzel.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=4&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://demerzel.wordpress.com/2008/02/22/asterisk-cdr-con-postgresql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c7bef571590009e6d1d91bfc84e5e193?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ciclodetrantor</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalación de Asterisk</title>
		<link>http://demerzel.wordpress.com/2007/11/28/instalacion-de-asterisk-primera-parte/</link>
		<comments>http://demerzel.wordpress.com/2007/11/28/instalacion-de-asterisk-primera-parte/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 18:20:15 +0000</pubDate>
		<dc:creator>ciclodetrantor</dc:creator>
				<category><![CDATA[Asterisk]]></category>

		<guid isPermaLink="false">http://demerzel.wordpress.com/2007/11/28/instalacion-de-asterisk-primera-parte/</guid>
		<description><![CDATA[Después de instalar la distribución estable de Debian (etch-and-a-half) nos queda un sistema básico, debido a que se utiliza la versión de net-install el cual prepararemos para la instalación de Asterisk y demás componentes. Esta ultima versión tiene soporte para nuevo hardware. Debido a que el servidor destinado no contendrá monitor, instalaremos SSH para poder [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=3&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Después de instalar la distribución estable de Debian (etch-and-a-half) nos queda un sistema básico, debido a que se utiliza la versión de net-install el cual prepararemos para la instalación de Asterisk y demás componentes. Esta ultima versión tiene soporte para nuevo hardware.</p>
<p>Debido a que el servidor destinado no contendrá monitor, instalaremos SSH para poder manipularlo tranquilamente desde nuestra PC.</p>
<p>asteriskpbx:/home/sistemas# apt-get install openssh-client openssh-server</p>
<p>gabriel@trantor:~$ ssh sistemas@192.9.200.80<br />
sistemas@192.9.200.80&#8242;s password:<br />
Linux asteriskpbx 2.6.24-etchnhalf.1-686 #1 SMP Mon Jul 21 11:17:43 UTC 2008 i686</p>
<p>The programs included with the Debian GNU/Linux system are free software;<br />
the exact distribution terms for each program are described in the<br />
individual files in /usr/share/doc/*/copyright.</p>
<p>Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent<br />
permitted by applicable law.<br />
Last login: Mon Aug 11 13:12:34 2008 from 192.9.200.161<br />
sistemas@asteriskpbx:~$ su<br />
Password:<br />
asteriskpbx:/home/sistemas#</p>
<p>Agregamos un repositorio a nuestro fichero de configuración de APT, (en caso de que en la instalación del sistema no hayamos escogido alguno).</p>
<p>asteriskpbx:/home/sistemas# vim /etc/apt/sources.list</p>
<p>deb http://ftp.de.debian.org/debian etch main</p>
<p>Actualizamos la lista de paquetes.</p>
<p>asteriskpbx:/home/sistemas# aptitude update</p>
<p>asteriskpbx:/home/sistemas# aptitude update</p>
<p>Instalamos los paquetes necesarios junto con sus dependencias.</p>
<p>asteriskpbx:/home/sistemas# apt-get install linux-headers-$(uname -r) g++ libncurses5-dev libssl-dev libnewt-dev initrd-tools make bison unixodbc libltdl3-dev unixodbc-dev</p>
<p>Creamos un directorio para la instalación.</p>
<p>asteriskpbx:/home/sistemas# mkdir /usr/src/IPBX<br />
asteriskpbx:/home/sistemas# cd /usr/src/IPBX/</p>
<p>Descargamos la versión actual de las aplicaciones.</p>
<p>asteriskpbx:/usr/src/IPBX# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.21.2.tar.gz<br />
asteriskpbx:/usr/src/IPBX# wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.11.tar.gz<br />
asteriskpbx:/usr/src/IPBX# wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.5.tar.gz</p>
<p>Descomprimimos.</p>
<p>asteriskpbx:/usr/src/IPBX# tar xvfz asterisk-1.4.21.2.tar.gz<br />
asteriskpbx:/usr/src/IPBX# tar xvfz libpri-1.4.5.tar.gz<br />
asteriskpbx:/usr/src/IPBX# tar xvfz zaptel-1.4.11.tar.gz</p>
<p>Instalamos.</p>
<p>asteriskpbx:/usr/src/IPBX/libpri-1.4.5# make<br />
asteriskpbx:/usr/src/IPBX/libpri-1.4.5# make install</p>
<p>asteriskpbx:/usr/src/IPBX/zaptel-1.4.11# ./configure<br />
asteriskpbx:/usr/src/IPBX/zaptel-1.4.11# make<br />
asteriskpbx:/usr/src/IPBX/zaptel-1.4.11# make install<br />
asteriskpbx:/usr/src/IPBX/zaptel-1.4.11# make config</p>
<p>asteriskpbx:/usr/src/IPBX/asterisk-1.4.21.2# ./configure<br />
asteriskpbx:/usr/src/IPBX/asterisk-1.4.21.2# make<br />
asteriskpbx:/usr/src/IPBX/asterisk-1.4.21.2# make install<br />
asteriskpbx:/usr/src/IPBX/asterisk-1.4.21.2# make samples</p>
<p>Iniciar Asterisk al arrancar el servidor</p>
<p># cd /etc/init.d<br />
# cp /usr/src/IPBX/asterisk-1.4.21.2/contrib/init.d/rc.debian.asterisk ./asterisk<br />
# update-rc.d asterisk defaults</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/demerzel.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/demerzel.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/demerzel.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/demerzel.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/demerzel.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/demerzel.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/demerzel.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/demerzel.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/demerzel.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/demerzel.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/demerzel.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/demerzel.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/demerzel.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/demerzel.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/demerzel.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/demerzel.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=3&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://demerzel.wordpress.com/2007/11/28/instalacion-de-asterisk-primera-parte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c7bef571590009e6d1d91bfc84e5e193?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ciclodetrantor</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://demerzel.wordpress.com/2007/11/16/hello-world/</link>
		<comments>http://demerzel.wordpress.com/2007/11/16/hello-world/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 16:36:53 +0000</pubDate>
		<dc:creator>ciclodetrantor</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Empezamos con esto, a ver que tal nos va.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=1&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Empezamos con esto, a ver que tal nos va.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/demerzel.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/demerzel.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/demerzel.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/demerzel.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/demerzel.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/demerzel.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/demerzel.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/demerzel.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/demerzel.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/demerzel.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/demerzel.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/demerzel.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/demerzel.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/demerzel.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/demerzel.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/demerzel.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=demerzel.wordpress.com&amp;blog=2138471&amp;post=1&amp;subd=demerzel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://demerzel.wordpress.com/2007/11/16/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c7bef571590009e6d1d91bfc84e5e193?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ciclodetrantor</media:title>
		</media:content>
	</item>
	</channel>
</rss>
