Etapas de instalación

 

1. Instalación previa de paquetes para Asterisk

Los paquetes necesarios para instalar asterisk-1.2.10, en Debian Sarge son:

El paquete linux-headers-$(uname-r) es solo optativo, se recomienda para programas cuyo proceso de instalación requieren un enlace del kernel en el directorio /usr/src.

 

2. Instalación de Asterisk

Lo siguiente es descomprimir el código fuente de asterisk-1.2.10 modificado por nosotros con el fin de hacer la tarea de instalación y configuración mucho más fácil.

2.1)  Copiar el archivo asterisk-1.2.10.tar.gz en el directorio /usr/src

2.2)  Descomprimir archivo asterisk-1.2.10.tar.gz (como root)
     ~# tar -zxvf asterisk-1.2.10.tar.gz
Ahora se necesita crear un enlace simbolico a los archivos fuentes de asterisk para luego compilar correctamente asterisk-addons (optativo).

     ~# ln -s /usr/src/asterisk-(version) /usr/src/asterisk

Si se cumple todo lo anterior, se procede compilar asterisk...

2.3 )  Compilar asterisk-1.2.10 (ojo por defecto se instalara en /usr/local)
     ~# cd asterisk-1.2.10 /

Editar el archivo cdr/Makefile cambiando la linea:
MODS=cdr_csv.so cdr_manager.so cdr_custom.so
Por:
MODS=cdr_csv.so cdr_manager.so cdr_custom.so cdr_odbc.so

A demás editar el archivo res/Makefile cambiando la línea:
MODS=res_indications.so res_monitor.so res_adsi.so res_agi.so res_features.so
Por:
MODS=res_indications.so res_monitor.so res_adsi.so res_agi.so res_features.so res_odbc.so res_config_odbc.so

     ~# make

Antes de instalar, verificar en el directorio res/ si existen los archivos:
res_odbc.so y res_config_odbc.so. Y en el directorio cdr/ si existen los archivos:
cdr_odbc.so

     ~# make install
     ~# make samples
     ~# make config             

La configuracion por defecto (start in boot time) fue probada en Ubuntu.
Para cambiar el directorio de instalacion, editar la variable PREFIX_INSTALL en Makefile.

Ahora si todo termino bien, ya se puede correr asterisk.
2.5)   Ingresar a la consola de asterisk. (una vez que asterisk ya se haya iniciado)
      ~# /usr/src/asterisk-1.2.10/asterisk -r
Para detener asterisk: ~# /usr/usrc/asterisk- 1.2.10/asterisk -rx "stop now"
Para iniciar asterisk: ~# /usr/usrc/asterisk-1.2.10/asterisk -vvvc

 

3. Instalación de Apache2 y PHP

Lo siguiente es descomprimir el código fuente de asterisk-1.2.10 modificado por nosotros con el fin de hacer la tarea de instalación y configuración mucho más fácil.

3.1) Instalar los siguientes paquetes como root.
apt-get install apache2 php4 libapache2-mod-php4 php4-gd

En Kubuntu se instala php5, por lo debes reemplazar donde diga php4 por php5.
3.2) Configurar archivo /etc/apache2/apache2.conf para crear enlace a una cuenta de usuario.

Luego editar las siguientes líneas:
# UserDir is now a module
#UserDir public_html
#UserDir disabled root

#<Directory /home/*/public_html>
#AllowOverride FileInfo AuthConfig Limit
#Options Indexes SymLinksIfOwnerMatch IncludesNoExec
#</Directory>
a:
# UserDir is now a module
UserDir WWW
#UserDir disabled root

<Directory /home/*/WWW>
AllowOverride FileInfo AuthConfig Limit
Options Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>

Y al final del archivo agregar la siguiente línea, para crear un enlace a nuestra cuenta de usuario de debian.
Alias /<link_name> /home/<usuario>/WWW

guardar y reiniciar apache2:
# /etc/init.d/apache2 restart

Luego crear el directorio WWW en la cuenta <usuario> y darle los permisos:
#chmod 755 WWW

listo, abrir el browser favorito y colocar locahost/<link_name>

3.3) Probar configuracion de PHP4
Se debe crear el archivo index.php y editarlo con lo siguiente:

<html>
<head>
</head>
<body>
<?php
phpinfo()
?>
</body>
</html>

Guardar, salir y probar en localhost. Debe salir la pagina de informacion de PHP.

Para quitar la pagina de apache2 por defecto cuando llamamos a localhost, editar el archivo /etc/apache2/sites-available/default, comentando la siguiente linea.

RedirectMatch ^/$ /apache-default/
quedando asi:
#RedirectMatch ^/$ /apache-default/
guardar y reiniciar apache:
# /etc/init.d/apache2 restart

Archivos de configuracion para apache2: /etc/apache2/apache2.conf y
/etc/apache2/sites-available/default

 

4. Instalación de PostgreSQL y ODBC

4.1) Instalar paquetes para postgresql y odbc

unixodbc (our version is 2.2.4-11)
unixodbc-dev
postgresql (our version is 7.4.7-6sarge1)
postgresql-client
postgresql-contrib
postgresql-dev
postgresql-doc
postgresql-autodoc
odbc-postgresql (our version is 07.03.0200-5)

4.2) Instalar paquete para php4-pgsql, php4-cli, php4-apd, php-fpdf

# apt-get install php4-pgsql
# apt-get install php4-cli
# apt-get install php4-apd
# apt-get install php-fpdf

Luego correr dpkg-reconfigure php4-pgsql y darle SI a todo.

4.3) Probar funcionamiento de postgres.

Se crea por defecto el usuario postgres, del cual solo podemos acceder desde root.
# su postgres

Ingresar a la base de datos template1 de psql:
postgres~$ psql -d template1

Debe salir los siguiente:
Bienvenido a psql 7.4.7, el terminal interactivo de PostgreSQL.

Digite: \copyright para ver los términos de distribución
\h para obtener ayuda sobre comandos SQL
\? para obtener ayuda sobre comandos internos
\g o termine con punto y coma (;) para ejecutar consulta
\q para salir
template1=#

Si todo bien, se procede a salir.

4.4) Configuracion de Postgresql

Editamos el archivo: /var/lib/postgresql/data/pg_hba.conf

En un Kubuntu la ruta es: /etc/postgresql/7.4/main/pg_hba.conf

Se descomenta la línea:
host  all  all   127.0.0.1         255.255.255..255 password
y agregamos la línea:
host  all  all  192.168.0.114   255.255.255..255 md5

En la linea que dice:

# All other connections by UNIX sockets
local all all                        password

# All IPv4 connections from localhost
colocar:
host all all 127.0.0.1         255.255.255.255 password
host all all 192.168.0.114  255.255.255.255 md5

Luego se edita el archivo: /var/lib/postgresql/data/postgresql.conf
En Kubuntu la ruta es: /etc/postgresql/7.4/main/postgresql.conf

La línea: tcpip_socket = false
Descomentamos y lo cambiamos por tcpip_socket = true

Guardamos y reiniciamos el servidor postgresql
# /etc/init.d/postgresql restart
En un Kubuntu es: # /etc/init.d/postgresql-7.4 restart

Ahora creamos una base de datos:
# su postgres
# createdb -E LATIN1 <dbname>
# psql -d dbname
dbname# create user <username>;
dbname# alter user <username> with password '<userpasswd>';
dbname# select * from pg_shadow;
dbname# alter user <username> createdb createuser;
dbname# \q

Listo, ahora se puede comprobar haciendo:
# psql -U <username> -W -d <dbname>
Debe aparecer:
<dbname>#

Para que corra phppgadmin4.01, debe estar instalado el paquete:
php4-ps.
# apt-get install php4-ps
En Kubuntu es php5-pspell

Reiniciar postgresql y apache2.

Listo, ir a instalacion de phppgadmin

La version que se instaló es phppgadmin 4.01, es en codigo fuente (.zip) y se descargo del sitio oficial de phppgadmin (http://phppgadmin.sourceforge.net/)

Una vez descargado, se descomprime:
# unzip phpPgAdmin-4.0.1.zip


En el caso de no tener el comando unzip, debemos instalarlo:
# apt-get install unzip.

Luego movemos el directorio phpPgAdmin-4.0.1 a /var/www
# mv phpPgAdmin-4.0.1 /var/www

Entramos a dicho directorio, y editamos el archivo: conf/config.inc.php

y cambiamos:
$conf['server'][0]['desc'] = 'PostgreSQL';
$conf['server'][0]['defaultdb'] = 'template1';
por:
$conf['server'][0]['desc'] = 'ServerNameSQL';
$conf['server'][0]['defaultdb'] = 'dbname';

Guardamos y corremos el browser preferido, para ver phppgadmin.
Reiniciamos apache2 y postgresql.

 

5. Conexión PHP – PostgreSQL

Una vez que tenga todo instalado y configurado previamente: apache2, php4, postgresql; se puede probar si todo esta funcionando segun lo que se quiera. Se crea una pagina php (connect.php), y se edita lo siguiente:

<html>
<head>
</head>
<body>
<?php
$conn = pg_connect("host=localhost port=5432 password=<passwd> user=<username> dbname=<dbname>");
if (pg_ErrorMessage($conn)) { echo "<p><b>Ocurrio un error conectando a la base de datos: .</b></p>"; exit; }
else{
echo "Conexion OK<br>";
}
?>
</head>
</html>

Se ejecuta este este desde algún browser browser, si se pudo conectar a la base de datos, entonces saldrá el mensaje "OK"

5. Configuración ODBC-PostgreSQL-Asterisk

5.1) Configuracion UnixODBC

Configurar el driver ODBC, nuestro caso es UnixODBC.
# odbcinst -i -d -f /usr/share/psqlodbc/odbcinst.ini.template
# cat /usr/share/doc/odbc-postgresql/examples/odbc.ini.template >> /etc/odbc.ini

Editar el archivo: odbcinst.ini,
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/lib/odbc/psqlodbc.so
Setup = /usr/lib/odbc/libodbcpsqlS.so
Debug = 0
CommLog = 1
FileUsage = 1

Editar el archivo: odbc.ini,

[ODBC Data Sources]
<drivername> = PostgreSQL ODBC driver

[<drivername>]
Description = PostgreSQL <drivername>
Driver = /usr/lib/odbc/psqlodbc.so
Trace = Yes
TraceFile = /tmp/psqlodbc.log
Debugging = Yes
DebugFile = /tmp/odbcdebug.log
Database = <dbname>
Servername = localhost
UserName = <username>
Password = <passwd>
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =

* IMPORTANTE:
<dbname> es el nombre de la base de datos ya creada con anterioridad, descrito en el mail  "Instalar postgresql.".
<username> propietario de <dbname>.
<passwd> clave de <username>.

5.2) Configurar PostgreSQL
* IMPORTANTE:
S i <dbname> no tiene tablas podemos cargar un script .sql creado previamente (en el caso de asterisk cargamos el script  "dbasterisk.sql") mediante el phpPgAdmin4.0.1, ya instalado y configurado previamente, también darle los accesos al usuario <username>.

5.3) Editar los archivos de configuracion de asterisk ubicados en /etc/asterisk: res_odbc.conf y extconfig.conf.

editar res_odbc.conf,
;;; odbc setup file
[<dbcontext>]
dsn => <drivername>
username => <username>
password => <passwd>
pre-connect => yes
enable => yes

*IMPORTANTE
<dbcontext> nombre del contexto y que sera usado en  extconfig.conf 
<drivername> nombre del driver ODBC, definido en /etc/odbc.ini
<username> dueño de la base de datos <dbname> y que fue definido en /etc/odbc.ini
<passwd> clave de <username>

Editar extconfig.conf 

[settings]
extensions => odbc,<dbcontext>,extensions_conf
sipusers => odbc,<dbcontext> ,sip_conf
sippeers => odbc,<dbcontext>,sip_conf
iaxusers => odbc, <dbcontext>,sip_conf
iaxpeers => odbc,<dbcontext> ,sip.conf
queues => odbc,<dbcontext>,queue_table
queue_menbers => odbc, <dbcontext>,queue_member_table
voicemail => odbc,<dbcontext>,voicemail_users

*IMPORTANTE
El archivo extconfig.conf es solo un ejemplo tomado de la instalacion de
asterisk.

5.4) Prueba de conexion ODBC-Asterisk

Una vez hecho todo los pasos anteriores, reiniciar postgresql y luego iniciar asterisk (previamente detenido),
actualizar las configuraciones.
*CLI> reload
*CLI> odbc show
y debe salir el siguiente mensaje:
Name: <dbcontex>
DSN: <drivername>
Connected: yes

Ahora está todo listo, ya se tiene la conexión.


* IMPORTANTE
Si exite un problema y no lee el driver ODBC,  revisar el nombre que le asignamos en /etc/odbc.ini.
En /etc/asterisk/res_odbc.conf donde dice "dsn", deben tener el mismo nombre, revisar tb los nombres de usuarios, claves, nombres de la base de datos en los diferentes archivos todos deben ser iguales.