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 /
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 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.