View
8
Download
0
Category
Preview:
Citation preview
Asterisk: Gestión de Campañas
Pag. 1
Al departamento de Redes, Telecomunicaciones y Base de Datos del BCRP, por todo el apoyo y enseñanza. A kmla, que aún me sigue ayudando sin darme cuenta.
Asterisk: Gestión de Campañas
Pag. 2
Asterisk
Gestión de Campañas
Autor: Raúl Alejandro Mescua Huamaní
Especialidad: Redes y Comunicaciones de Datos
TECSUP
2006 - II
Asterisk: Gestión de Campañas
Pag. 3
Índice
Pág.
Introducción 4
Capitulo I: Resumen y Objetivos del Proyecto 5
Capitulo II: Fundamentos del Proyecto 7
Antecedentes del Problema 7
Situación Actual 7
Impacto a Futuro 8
Capitulo III: Determinación de la solución Optima 9
Capitulo IV: Desarrollo de la Solución 12
Instalación del Sistema Base 12
Configuración del Sistema Base 13
Pasos previos a instalar Asterisk 14
Empezando la Instalación de Asterisk 15
IV.1: Configuración de Archivos 18
Instalación y configuración de Apache, Mysql y PHP 22
Creando los archivos PHP para la campaña 24
Dialer 31
Dial Plan (Plan de llamada) 31
Auto Dial Out 32
Estructura del archivo.call 33
Prueba del sistema de Dial Out 34
Capitulo V: Estableciendo soluciones basadas en situaciones locales 35
Aplicando VPN con SSL 37
Configuración del Túnel VPN 39
Capitulo VI: Estableciendo Número de Líneas 41
Concepto de Erlang 41
Determinando número de líneas para una campaña 42
Bibliografía: 43
Anexo Nº 1: Cuadro Comparativo de Posibles Soluciones 44
Anexo Nº 2: Esquema General de una Central Asterisk 45
Anexo Nº 3: Diagrama Lógico de la Solución 46
Anexo Nº 3: Diagrama Lógico de la Solución (Aplicando VPN) 47
Asterisk: Gestión de Campañas
Pag. 4
Introducción
Los servicios de telefonía tradicionalmente han evolucionado muy lentamente,
actualmente se esta dando una convergencia a las redes IP. La telefonía IP supone
una ventaja a la tradicional por la reducción de costees y por la facilidad de desarrollo
de nuevas funcionalidades y aplicaciones.
El software en los últimos años ha recibido la consideración merecida en el ámbito
empresarial. El porcentaje de servidores Linux ha aumentado mucho y
específicamente, en lo que se refiere a servidores Web, Apache es el dominante. Las
grandes empresas de servidores dan soporte para las principales distribuciones de
Linux y muchas empresas han creado nuevos modelos de negocio basados en
software libre.
Tanto la telefonía IP como el software libre se consideran oportunidades para las
empresas. El objetivo de este proyecto Final de Titulacion es demostrar la vialidad
económica-financiera y tecnológica de una nueva empresa cuyo producto es un
Sistema de Telefonía Privada IP basado en software libre y los servicios asociados. La
empresa ficticia se llamará ”Kmla”.
El primer capítulo es un resumen a los conceptos que se tratarán a lo largo del
proyecto, así como los objetivos y principales temas a tratar. Se explica el
significado de la voz sobre IP dentro del marco global del servicio telefónico.
El segundo capítulo expresa los fundamentos del proyecto. La empresa venderá
sistemas de telefonía privados IP; los servicios de instalación, mantenimiento y
consultoría. Además el conocimiento y desarrollo de estos productos permitirán el
desarrollo de nuevos productos y servicios de una forma muy natural.
El tercer capitulo hace referencia a determinar las solución optima, tomando como
referencia algunas posibles soluciones a analizar y optar por una de ellas,
especificando los respectivos pro y contra de cada una de ellas.
El cuarto capitulo expresa en sí el desarrollo de la solución, especificando los
métodos, herramientas utilizadas tanto en software y hardware.
El Quinto y Sexto capitulo pretende establecer soluciones basadas en situaciones
locales y como influyen en las empresas.
Asterisk: Gestión de Campañas
Pag. 5
Asterisk Gestión de Campañas CAPITULO I: RESUMEN Y OBJETIVOS DEL PROYECTO
En 1876 Alexander Graham Bell solicitó en Estados Unidos una patente para un
teléfono electromagnético revolucionando los sistemas de comunicación humana. Más
de un siglo después tras nuevas revoluciones tecnológicas en el campo de las
comunicaciones, la telefonía sigue siendo un servicio totalmente indispensable para
particulares y empresas.
Las PBX (Private Branch Exchange) o, popularmente, centralitas son sistemas de
conmutación que permiten a varios usuarios compartir las líneas telefónicas externas.
Estos sistemas, además incorporan servicios de utilidad para la empresa, como puede
ser la tarificación, música en espera o grupos de extensiones entre muchos otros. Son
elementos totalmente indispensables para la atención al cliente y la comunicación
interna y externa de prácticamente cualquier empresa.
Tradicionalmente los sistemas PBX se han basado en componentes hardware de
conmutación. El mercado está dominado por unos pocos fabricantes y sus sistemas
propietarios lo que provoca una dependencia del usuario con ellos. Este hecho
también ha frenado la innovación de servicios por parte de los usuarios al ser
plataformas completamente cerradas. Son sistemas caros en los que el usuario no
solo paga por el hardware sino que también debe pagar por licencias de uso por
usuario de cada aplicación.
Asterisk: Gestión de Campañas
Pag. 6
OBJETIVOS
• Proveer de una solución PBX sobre software a la empresa.
• Automatizar la PBX a fin de efectuar llamadas a los clientes cuando sea
requerido (campañas propias de la empresa).
• Demostrar la confiabilidad y efectividad del software.
• Cubrir la demanda de sistemas de telefonía privada ofreciendo un producto de
calidad, flexible y de bajo coste.
• Extender el volumen y control de llamadas a usuarios móviles, utilizando
mecanismos de seguridad y valiéndose de métodos de acceso como VPN’s
Fundamentos:
Debido a la posible falta de comunicación que una empresa tenga con sus clientes o
personal en si; al momento de querer hacer publica algún tipo de información a fin de
que el cliente este al tanto informado, es que opte por implementar esta solución para
una empresa que decida contar con un sistema de llamadas para emitir campañas
emitidas por llamadas telefonicas, logrando una completa comunicación empresa -
usuario.
Principales Temas a tratar:
• Auto-Dial Out.
• Dialer.
• Dial plans (planes de Marcación).
• VPN
Asterisk: Gestión de Campañas
Pag. 7
CAPITULO II: FUNDAMENTOS DEL PROYECTO
CRM es una manera de establecer una relación directa entre dos entidades, usuario y
empresa.
Incluye la administración de la relación comercial de la empresa con sus usuarios.
Opte por esta solución debido a la importancia hoy en día de que las empresas
manejen una comunicación directa sin intermediarios con sus usuarios a fin de
mantenerlos ya sea informados con novedades de la empresa, o informarse a si
mismo del estado del usuario.
Antecedentes del Problema.
Las empresas se valen de la telefonía para la comunicación, pero cuando sus clientes
quieren mantenerse informados sobre alguna novedad en la empresa, algún nuevo
servicio, alguna información que ayude a los negocios de los mismos, tenemos lo
siguiente:
• Usuarios desinformados.
• La empresa establece un área especial para realizar esta tarea de informar y
atender las consultas del cliente.
• Clientes deseando tener una comunicación 24 x 7, 365 días del año.
• ¿Que empresa no desea proporcionarle a sus usuarios información de manera
económica, rápida y automática?
• Distancias geográficas que pueden separar; usuario – empresa.
• Usuarios Móviles con enlaces de acceso reducidos en cuanto a BW.
Situación Actual.
Las empresas hoy en día han puesto mucho énfasis en este tema, del cual han
logrado comprender que es vital para su vigencia y desarrollo.
La gran crisis de la economía, está obligando a las empresas que quieran permanecer
en el mercado, a realizar grandes ajustes económicos, lo que en ciertas oportunidades
termina en una reducción de personal, generando un cierto recambio de la línea de
ventas de las empresas, y a su vez, el clima organizacional no es estable, haciendo
que la gran mayoría de la gente esté intranquila, buscando otro trabajo. Estas
situaciones hacen que los vendedores, no puedan dedicarse de la forma que debieran
al cliente, quién al percibir el servicio deficiente, se dedicará inmediatamente a la
Asterisk: Gestión de Campañas
Pag. 8
búsqueda de nuevas alternativas. Algunas estadísticas dicen que el 65 % de los
clientes que se alejan es debido a una pobre atención al cliente. También se conoce
que el costo de hacer un nuevo cliente es entre 5 y 10 veces mayor que el costo de
retenerlos.
Por otra parte el rápido avance de las alternativas de comunicación, como son los
mails, las páginas Web, las extranets, etc. obligan a que la empresa desarrolle
eficientes medios de comunicación en cada uno de los distintos canales de manera de
poder brindar un servicio homogéneo.
A nivel mercado, también es importante conocer como están las demás empresas del
giro ya que son parte importante del contexto en que nos toca interactuar y
generalmente no se cuenta con una buena información al respecto.
Impacto a Futuro.
El futuro del CRM, tiende a la verticalización de soluciones, es decir a la
especialización de los procesos de negocios asociados a la gestión de relación con los
clientes para cada modelo de industria.
Mucho dependerá también de la difusión de las mismas empresas de Tecnología, la
manera en que el CRM, se convierta en una herramienta indispensable para todas
aquellas empresas que quieran realmente poseer una ventaja competitiva a la vez que
se diferenciaría de los competidores. Se espera que hasta el 2006, las ventas de
CRM, continúen en pleno crecimiento. Cabe resaltar los tres países que más gastaron
en Software de CRM, en el 2001, y ellos son:
Gasto de CRM en millones de $./
JAPÓN 111.9
AUSTRALIA 52.7
CHINA 18.3
Asterisk: Gestión de Campañas
Pag. 9
CAPITULO III: DETERMINACION DE LA SOLUCION ÓPTIMA
Posibles Soluciones:
1. Implementar un servicio de llamadas.
Características:
• Capacitar al personal apropiado, que se encargara de efectuar llamadas a los
clientes y usuarios moviles, informándoles sobre cualquier novedad en la empresa.
• Establecer tecnología capaz de satisfacer esta necesidad, como establecer anexos
dentro de la empresa.
• Priorizar cuales son los clientes realmente importantes para la empresa, y sobre
quienes se tendrá preferencia.
Ventajas:
• Clientes y usuarios comunicados en todo momento.
• Las relaciones con el cliente no estaran descuidadas.
• Cualquier llamada del cliente para pedir información o ayuda, será atendida de
inmediato por el personal capacitado.
• La empresa podrá orientarse a seguir brindando servicios sabiendo que el tema de
atención e información al cliente esta cubierto.
Desventajas:
• Costos considerables en cuanto a la implementación de este centro de atención al
cliente.
• Las llamadas serán efectuadas en horario laboral, no pudiendo atender alguna
necesidad del cliente en horas fuera de la establecida.
• Capacitación de personal considerable.
Recursos a utilizar: (Hardware)
• Teléfonos analógicos.
• Central telefónica analógica.
• Teléfonos IP, para algunas áreas.
• Auriculares y micrófonos.
• PC, que para anotar los registros y posibles consultas.
Asterisk: Gestión de Campañas
Pag. 10
Recursos a utilizar: (Software)
• El necesario dentro de una PC, para registrar la fecha y la consulta del cliente.
2. Implementar un CallCenter con Asterisk.
Características:
• Instalar y configurar el software en una PC aislada, cuyo rol será el de una PBX
Privada.
• Establecer un cuadro de llamadas, indicando los clientes.
Ventajas:
• Clientes se mantendrán informados.
• Las relaciones con el cliente no estaban descuidadas.
• Cualquier llamada del cliente para pedir información o ayuda, será atendida de
inmediato, a trabes de una anexo interno.
• Solo se necesitara de un empleado/a capacitado a fin de manejar el software, y
efectuar las llamadas.
• Uso de la Amplia Red de Internet para establecer enlaces con los clientes móviles.
• Ahorro en costo en cuanto a consumo de llamadas telefónicas salientes.
Desventajas:
• Mantenimiento del Servidor Asterisk, cuando se considere necesario.
• Considerable atención a la data, y Backups de la Información.
Recursos a utilizar: (Hardware)
Sugerencia: Se recomienda tener una PC aislada cuya disponibilidad en cuanto a
Disco duro sea total.
Para este ejemplo se advierte que el número de llamadas concurrentes influye en la
PBX, por lo que se toma una muestra para 40 llamadas concurrentes.
• PC con hardware necesario: Monitor, Teclado, tarjeta de Sonido, Lectora de CD)
• 1GB de RAM (mínimo), 2 GB Recomendado.
• Espacio en Disco Duro para el Sistema (5 GB mínimo).
• Espacio en Disco Duro de 5 GB para los mensajes (mínimo)
• Interfaces análogas: FXS y FXO. (Digium o Sangoma recomendado)
• Tarjeta de RED (3COM o Intel recomendado).
Asterisk: Gestión de Campañas
Pag. 11
Recursos a utilizar: (Software)
• Asterisk-1.XX (para el servidor IP PBX)
• Asterisk-addons (para tonos, música en espera, etc).
• Asterisk-sounds (para algunos sonidos extras – opcional)
• Libpri (librerías para utilizar interfaces RDSI)
• Zaptel (módulos para utilizar interfaces analogas)
Asterisk: Gestión de Campañas
Pag. 12
CAPITULO IV: DESARROLLO DE LA SOLUCION
Esta solución se desarrollo sobre un Sistema Debian GNU/Linux debido a la completa
administración de paquetería (programas precompilados) que maneja y que hoy en día
constituye una de las distribuciones mas completas, fue que se desarrollo el presente
documento. Sin embargo, el proceso de instalación de Asterisk es aleatorio a cualquier
distribución Linux que se utilice.
Observación: De tener ya instalado un Sistema Debian GNU/Linux, colocar la tarjeta
análoga (Digium o Sangoma) en una ranura PCI y arrancar el sistema. Debian
automáticamente detecta el nuevo hardware y lo configura de acuerdo a la versión del Kernel
compilado.
Una vez iniciado el sistema, verificar que la tarjeta ha sido reconocida:
Para el caso de una Interfaz Digium (con la cual se desarrollo esta solución), se
visualizara la tarjeta reconocida como: Tiger Jet, de lo contrario, apagar el sistema y
verificar que este correctamente conectada la interfaz Digium.
Para Instalar el Sistema Debian GNU/Linux, hacer lo siguiente:
Instalación del Sistema Base.
� Colocar el CD/1 de la versión estable de Debian (Etch), y reiniciar el sistema.
Puede descargarse la versión estable de Debian desde:
http://mirrors.kernel.org/debian-cd/4.0_r0/
� En el prompt de boot escribir: Linux 26
Esto permite instalar debian con kernel 2.6.18-4-686 (recomendado)
� Elegir parámetros de lenguaje, país o región, teclado.
� Configurar los parámetros de Red.
� Introducir el nombre de la maquina y a que dominio pertenecerá.
Para esta solución se nombro al servidor asterisk como “srv02”
� Editar la tabla de particiones
Este punto es fundamental, sobre todo para definir correctamente el orden del disco duro, y como
administraremos la data.
� Puede efectuarse una Ayuda de Particionamiento o particionar el disco
manualmente.
debian#lspci
Asterisk: Gestión de Campañas
Pag. 13
� De editarse manualmente, tener en consideración dos aspectos:
� Raíz del sistema: “/ “
Capacidad mayor a 3GB (recomendado)
� Área de Intercambio: “SWAP”
Aproximadamente el doble de la capacidad de memoria física; con memorias RAM mayores
a 512 MBytes, esto ya no es necesario.
� El sistema instalara los paquetes necesarios al disco duro, para posteriormente
reiniciar.
� Indicar la contraseña de super-usuario (root), así como el nuevo usuario.
� Elegir la replica para la descarga de paquetería desde un repositorio específico.
Debian actualmente cuanta con mas de 110 repositorios en los cuales almacena una replica de
programas precompilados; los cuales solo algunos veremos mas adelante.
Se asume que hasta este punto, existe una conexión a Internet del servidor Debian.
� En la opción Selección de programas Debian, elegir: “sistema estándar”
Observación: Debian tiene en la actualidad más de 20000 paquetes precompilados, los cuales no
es necesario instalar todos; solamente estamos instalando debian con paquetes necesarios para
que cumpla la función que nosotros le asignemos.
Debido a esto no se instala una interfaz Gráfica, ni herramientas adicionales, que consumirían
recursos innecesarios, los cuales se ven reflejados en “interrupciones” generadas por el sistema, lo
cual se detalla mas adelante.
� Aparecerá la interfase llamada Aptitude, encargada de gestionar los paquetes a
instalar.
� El resto del proceso de instalación, requiere solo aceptar la confirmación para
desempaquetar los programas.
Configuración del Sistema Base.
� Ingresar a la consola como root y sus respectivo password.
� Editar el archivo /etc/apt/sources.lst , comentar (#) la línea que refiere a la fuente
“deb cdrom” y agregar la ultima línea.
srv02#vim /etc/apt/sources.slt deb http://mirrors.kernel.org/debian/ etch main deb-src http://mirrors.kernel.org/debian/ etch main deb http://ftp.us.debian.org/debian etch main deb-src http://ftp.us.debian.org/debian etch main #repositorio para algunas fuentes de asterisk deb http://rapid.sunsite.dk/rapid stable main
Asterisk: Gestión de Campañas
Pag. 14
� Guardamos los cambios: <Esc> + : + wq
� Actualizamos la lista de repositorios:
Pasos Previos a Instalar Asterisk.
� Podemos instalamos ssh, si deseamos manejar el servidor remotamente.
� Crearemos una variable para hacer más fácil el proceso e instalamos los paquetes
necesarios.
� Terminado esto, se debe instalar los programas de audio que necesita asterisk.
(Ubicarse en el directorio /usr/src)
� Con esto se tiene instalado mpg123; este programa permite reproducir archivos
mp3 desde consola.
srv02:/#apt-get update
srv02:/#aptitude install ssh
srv02:/#export kvers=$(uname -r)
srv02:/#apt-get install make g++ bison flex zlib1g-dev openssl libssl-dev libncurses5-dev zip unzip bzip2 kernel-headers-$kvers
srv02:/#cd /usr/src
srv02:/usr/src#wget http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz
srv02n:/usr/src#tar –zxvf mpg123-0.59r.tar.gz
srv02:/usr/src#cd mpg123-0.59r
srv02:/usr/src/mpg123-0.59r#make linux
srv02:/usr/src/mpg123-0.59r#make install
Asterisk: Gestión de Campañas
Pag. 15
Opcional - Instalar SOX. Un programa que permite convertir archivos wav a gsm (utilizados
mayormente por Asterisk).
Ubicarse en /usr/src y descargar SOX de:
http://sourceforge.net/project/showfiles.php?group_id=10706&package_id=10311
� Y listo, se tiene adicionalmente instalado sox, el método para conversión de
archivo wav a gsm, es el siguiente:
� El método para convertir exportar archivos de gsm a wav, es el siguiente:
Empezando la Instalación de Asterisk.
Observación: desde Diciembre del 2005, asterisk ya no soporta mas descargas vía
CVS, en su reemplazo utiliza ahora subversión.
� Procedemos a instalar subversión, para luego descargar las fuentes necesarias.
� Si se esta usando adicionalmente una interfaz T1 o E1, entonces es recomendable
descargar las fuentes de libpri.
srv02:/usr/src#tar –zxvf sox-12.18.2.tar.gz
srv02:/usr/src#cd sox-12.18.2
srv02:/usr/src/sox-12.18.2#./configure
srv02:/usr/src/sox-12.18.2#make
srv02:/usr/src/sox-12.18.2#make install
#sox archivoaimportar.wav archivoexportado.gsm
#sox archivoaimportar.gsm –r 44100 –a archivoexportado.wav
srv02:/usr/src/sox-12.18.2#cd /usr/src
srv02:/usr/src#apt-get install subversion
srv02:/usr/src#svn checkout http://svn.digium.com/svn/asterisk/branches/1.4
asterisk-1.4
srv02:/usr/src#svn checkout http://svn.digium.com/svn/zaptel/branches/1.2
zaptel-1.2
srv02:/usr/src#svn checkout http://svn.digium.com/svn/libpri/branches/1.2
libpri-1.2
Asterisk: Gestión de Campañas
Pag. 16
� Compilamos las fuentes; empezaremos compilando los módulos de zaptel,
asumiendo que la tarjeta Digium ha sido reconocida por el sistema, lo
verificaremos:
� Compilamos zaptel
� Cargamos los módulos respectivos:
� Editamos el archivo zaptel.conf , y ejecutamos un test de señalización.
� Este test muestra la tarjeta con los módulos instalados.
� Para verificar el tipo de señalización:
� Esto mostrara el tipo de señalización asignado a cada modulo FXS/FXO.
srv02:/usr/src#lspci | grep Tiger*
srv02:/usr/src#cd zaptel-1.2/
srv02:/usr/src/zaptel-1.2#make clean
srv02:/usr/src/zaptel-1.2#make linux26
srv02:/usr/src/zaptel-1.2#make install
srv02:/usr/src/zaptel-1.2#modprobe zaptel
srv02:/usr/src/zaptel-1.2#modprobe wctdm
srv02:/usr/src/zaptel-1.2#vim /etc/zaptel.conf
loadzone = es
defaultzone = es
fxols=1 ; Interface FXS 1 de la Tarjeta Didium TDM400P
fxols=2 ; Interface FXS 2 de la Tarjeta Digium TDM400P
fxsls=4 ; Interface FXO 4 de la Tarjeta Digium TDM400P
srv02:/usr/src/zaptel-1.2#ztcfg -vv
srv02:/usr/src/zaptel-1.2#dmesg
Asterisk: Gestión de Campañas
Pag. 17
� Como se menciono antes, las fuentes de libpri pueden ser compiladas si se esta
usando una tarjeta T1 o E1, e aquí el modo de compilación:
� Por último y mas importante, compilamos Asterisk.
� Finalmente se puede arrancar Asterisk con el comando: asterisk –vvvc
� Se notara una serie de mensajes indicando que asterisk esta inicializando, las
vvv pertenecen al mode “very very verbouse”; mientras mas v se le agregue
mayor será la cantidad de operaciones ejecutadas que nos muestre asterisk; la c
nos muestra al final una línea de comandos en modo consola:
*CLI>
� Todos los archivos de configuración se encuentran en: /etc/asterisk
� Listo, se tiene instalado Asterisk en nuestro sistema, sin necesidad de mucho
esfuerzo.
srv02:/usr/src/asterisk-1.4#asterisk –vvvc
srv02:/usr/src#cd libpri-1.2/
srv02:/usr/src/libpri-1.2#make
srv02:/usr/src/libpri-1.2#make install
srv02:/usr/src#cd asterisk-1.2/
srv02:/usr/src/asterisk-1.4#make clean
srv02:/usr/src/asterisk-1.4#make mpg123 ;esto descargara y compilara las
fuentes de mpg123 para asterisk.
srv02:/usr/src/asterisk-1.4#make
srv02:/usr/src/asterisk-1.4#make install
srv02:/usr/src/asterisk-1.4#make samples ;esto creara los archivos de
configuración de ejemplo, para
empezar asterisk con algo de
ayuda.
Asterisk: Gestión de Campañas
Pag. 18
IV.1 Configuración de Archivos.
Como se menciono, los archivos necesarios para la configuración de las aplicaciones
que ejecuta asterisk, se encuentran en: /etc/asterisk
Básicamente se modificaran 4 archivos dentro de este directorio:
extensions.conf
zapata.conf
sip.conf
voicemail.conf
Por motivos de seguridad y respaldo, renombraremos estos 3 archivos como backup:
extensions.conf
El archivo /etc/asterisk/extensions.conf es el núcleo del sistema, encargado de
manejar el “Dial Plan”. Definiremos aquí las extensiones que existen y las líneas de
entrada y salida, así como los buzones de voz. Pongo a continuación el fichero del
entorno de pruebas con los comentarios pertinentes:
� Editamos extensions.conf.
; ; Archivo de configuración de las llamadas que maneja Asterisk
[default]
language = es ;indicamos el lenguaje, que influye en los mensajes de respuesta de
voz
[Internal] ;define un contexto para llamadas internas
exten => 100,1,Dial(zap/1,20,rt) ;llama a trabes del canal 1 al anexo 100
exten => 100,2,Voicemail(u100) ;envía al buzón de correo del anexo 100, la llamada perdida.
exten => 100,3,Playback(dial1) ;establece la prioridad 3; reproduciendo un mensaje pre-grabado
exten => 100,102,Voicemail(b100) ;la prioridad 102 indica que el usuario no esta conectado y salta el
contestador al buzón 100.
srv02:/#cd /etc/asterisk
srv02:/etc/asterisk/#mv extensions.conf extensions.bak
srv02:/etc/asterisk/#mv zapata.conf zapata.bak
srv02:/etc/asterisk/#mv sip.conf sip.bak
srv02:/#vim /etc/asterisk/extensions.conf
Asterisk: Gestión de Campañas
Pag. 19
exten => 119,1,Dial(zap/2,20,rt) ;llama a trabes del canal 2 al anexo 119
exten => 119,2,Voicemail(u119) ;envía al buzón de correo del anexo 119, la llamada perdida.
exten => 119,102,Voicemail(b119) ;la prioridad 102 indica que el usuario no esta conectado y salta el
contestador al buzón 119.
exten => 117,1,Dial(SIP/117,10,t) ;llama al 117 definido en el archivo sip.conf
exten => 117,1,Dial(SIP/117@172.30.10.117)
exten => 118,1,Dial(SIP/118,10,t) ;llama al 118 definido en el archivo sip.conf
exten => 118,1,Dial(SIP/117@172.30.10.118)
exten => 121,1,Dial(SIP/121,10,t) ;llama al 121 definido en el archivo sip.conf, constituye un usuario
móvil
exten => 121,1,Dial(SIP/121@172.40.10.121)
exten => 8500,1,VoiceMailMain ;establece un buzón de voz para este contexto
exten => 8501,1,MusicOnHold ;establece música en espera las extensiones dentro de este
contexto
exten => _9.,1,Dial(zap/4/www${EXTEN:1}) ;permite hacer llamadas al exterior (PSTN), marcando el 9
seguido del número de anexo
exten => _9.,2,Congestion
exten => _6XXX,1,Dial(IAX2/Server@192.168.21.4/${EXTEN},30,r) ;establece una comunicación a
travez del protocolo IAX2, para
comunicarse con otro servidor
Asterisk. Marcando el 6(#anexo)
exten => _6XXX,2,Congestion
Include=outgoing
Include=default
[Incoming] ;define el contexto donde se reciben las llamadas.
Include=default
exten => s,1,Answer ;descolgamos
exten => s,2,Dial(zap/g1,20,rt) ;llama al zap 1 (extension 100)
exten => s,3,Voicemail(u100) ;envía al buzón del anexo 100 la llamada perdida
sip.conf
En el archivo sip.conf definimos también las extensiones que usan SIP como protocolo. � Editamos sip.conf.
Asterisk: Gestión de Campañas
Pag. 20
; Archivo sip.conf de configuración de extensiones que utilizan protocolo SIP
[general] port = 5060 ;puerto donde escucha asterisk las peticiones SIP
binaddr = 0.0.0.0 ;en que ip escucha, así en todas
context = Internal ;nombre del contexto que escucha
language = es
disallow = all ;por defecto todos los codecs fuera
allow = all ;habilita todos
[117] ;define el anexo sip 117 (cliente 117)
type = friend
username = 117 ;establece el nombre de usuario
secret = <password> ;establece el pasword
nat = no ;deshabilita opción de NAT
host = dynamic ;identifica al usuario como cliente móvil
disallow = all ;descarta todos los codecs
allow = ulaw ;habilita el codec ulaw
allow = gsm ;habilita el codec gsm
allow = alaw ;habilita el codec alaw
context = Internal ;contexto al que pertenece el cliente
[118] ;define el anexo sip 118 (cliente 118)
type = friend
username = 118 ;establece el nombre de usuario
secret = <password> ;establece el pasword
nat = no ;deshabilita opción de NAT
host = dynamic ;identifica al usuario como cliente móvil
disallow = all ;descarta todos los codecs
allow = ulaw ;habilita el codec ulaw
allow = gsm ;habilita el codec gsm
allow = alaw ;habilita el codec alaw
context = Internal ;contexto al que pertenece el cliente
[121] ;define el anexo sip 121 (cliente 121)
type = friend
username = 121 ;establece el nombre de usuario
secret = <password> ;establece el pasword
nat = no ;deshabilita opción de NAT
host = dynamic ;identifica al usuario como cliente móvil
disallow = all ;descarta todos los codecs
allow = ulaw ;habilita el codec ulaw
srv02:/#vim /etc/asterisk/sip.conf
Asterisk: Gestión de Campañas
Pag. 21
allow = gsm ;habilita el codec gsm
allow = alaw ;habilita el codec alaw
context = Internal ;contexto al que pertenece el cliente
zapata.conf
El archivo zapata.conf maneja la señalización asignada a cada interfase de la tarjeta
Digium.
� Editamos zapata.conf.
; Archivo zapata.conf
[channels] ;define el contexto para los canales a utilizar
;opciones generales
usecallerid = yes ;habilita y deshabilita el callerid
hidecallerid = yes
callwaiting = yes ;habilita la llamada en espera
threewaycalling = yes
transfer = yes
echocancel = yes
echocancelwhenbridged = yes
rxgain = 0.0 ;volumen RX
txgain = 0.0 ;volumen TX
;FXS Modulos
Group = 1
signalling = fxo_ls ;tipo de señal a utilizar en la interfase FXS
context = Internal
channel = 1-2 ;canales zap conectados a telefonos analogos
;FXO Modulos
Group = 2
echocancel = yes ;cancela el echo producido por las lineas
signalling = fxs_ls ;tipo de señal a utilizar en la interface FXO
context = Incoming ;contexto donde entra la llamada de fuera
busydetected = yes
busycount = 6
answeronpolarityswitch = yes
hanguponpolarityswitch = yes
callprogress = yes
progzone = es
channel = 4 ;canal zap conectado a la PSTN
srv02:/#vi /etc/asterisk/zapata.conf
Asterisk: Gestión de Campañas
Pag. 22
Nota: se debe tener en cuenta que en la tarjeta TDM400P utilizado para este proyecto, la interfaz FXS es
vista por asterisk como FXO, y la interfaz FXO como FXS.
Con esto será suficiente, para establecer la comunicación entre anexos, y permitirles llamar a números
externos (PSTN), también queda la opción de escuchar un mensaje grabado la cual será enviada a los
clientes, asignados con un respectivo anexo.
Instalación y configuración de Apache, Mysql y PHP
Se necesitara estas herramientas para crear un entorno Web, capaz de controlar el
registro de los clientes, permitiendo asignar sus datos y sobre todo el número
telefónico el cual será importante para emitir las llamadas, una vez establecida la
campaña.
� Instalamos apache2, mysql y php
El sistema nos preguntará si queremos configurar mysql para que servidor, elegimos
apache2. Finalmente nos preguntara si queremos reiniciar el servidor apache,
elegimos que si.
� Creamos el directorio donde se alojara el AGI.
� Modificamos apache2.conf
� Reiniciamos apache
srv02:/#apt-get install apache2 mysql-server mysql-client php4 php4-mysql
libapache2-mod-php4 php4-gd
srv02:/#mkdir /var/www/dial
srv02:/#vim /etc/apache2/apache2.conf
##Ubicamos :“AddType application”, e ingresamos lo siguiente:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ##grabamos
srv02:/# /etc/init.d/apache2 restart
Asterisk: Gestión de Campañas
Pag. 23
� Creamos el script para la tabla usuario y dial-out.
� Ingresamos a mysql y validamos el usuario root u algún otro usuario con permisos
suficientes:
� Creamos la base de datos dial y cargamos el script para la tabla usuario y dial-
out.
mysql > create database dial; mysql > use dial mysql > @usuario.sql mysql > @dial-out.sql mysql > quit
srv02:/#mysql -q
mysql > use mysql mysql > UPDATE user SET Password=PASSWORD('contraseña') WHERE User='root'; mysql > FLUSH PRiVILEGES;
srv02:/#vim usuario.sql
CREATE TABLE `usuario` (
`id` INT( 3 ) NOT NULL AUTO_INCREMENT ,
`nombres` VARCHAR( 40 ) NOT NULL ,
`apellidos` VARCHAR( 50 ) NOT NULL ,
`direccion` VARCHAR( 60 ) NOT NULL ,
`telefono` INT( 3 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;
srv02:/#vim dial-out.sql
CREATE TABLE `dialout` (
`id` INT( 3 ) NOT NULL AUTO_INCREMENT ,
`nombre` VARCHAR( 40 ) NOT NULL ,
`hora` INT( 50 ) NOT NULL ,
`minuto` INT( 60 ) NOT NULL ,
`dia` INT( 10 ) NOT NULL ,
`mes` INT( 10 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;
Asterisk: Gestión de Campañas
Pag. 24
Creando los archivos PHP y directorios para la campaña.
Se crearan diversos archivos PHP, que hagan la consulta a la base de datos “dial”,
ingresen el usuario y la llamada la cual será programada, para posteriormente ser
ejecutada por Asterisk.
Nota: dentro del AGI, quien interactúa entre la interfaz Web y asterisk es el usuario www-data, el cual se
configura en “apache2.conf”.
� Creando el directorio temporal para el ingreso de datos de los usuarios.
� Asignamos un password al usuario www-data y cambiamos de dueño al directorio
outgoing/
� Creamos los archivos de conección.
srv02:/#mkdir /var/spool/asterisk/dial-out
srv02:/#cd /var/www/dial/
srv02:/var/www/dial#vim conex.phtml
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","root","<password>")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("dial",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
?>
srv02:/#passwd www-data
srv02:/#chown www-data /var/spool/asterisk/outgoing
Asterisk: Gestión de Campañas
Pag. 25
� Creamos los archivos de ejecución.
srv02:/var/www/dial#vim conex-campania.phtml
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","root","<password>")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("dial",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}?>
srv02:/var/www/dial#vim ejem07d-campana.php
<html>
<head>
<title>Lista de Usuarios y Campanias</title>
</head>
<body>
<table width="65%" border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td width="3%"> </td>
<td width="97%"> </td>
</tr>
<tr>
<td> </td>
<td><H1></H1>
<FORM ACTION="procesar.phtml">
<TABLE>
<TR>
<TD width="79">nombres</TD>
<TD width="147"><INPUT TYPE="text" NAME="nombres" SIZE="25" MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>apellidos:</TD>
<TD><input type="text" name="apellidos" size="25" maxlength="30"></TD>
</TR>
<TR>
Asterisk: Gestión de Campañas
Pag. 26
<TD width="79">direccion:</TD>
<TD width="79"><INPUT TYPE="text" NAME="direccion" SIZE="25" MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>telefono:</TD>
<TD><input type="text" name="telefono" size="25" maxlength="30"></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" NAME="accion2" VALUE="crear">
</FORM></td>
</tr>
<tr>
<td height="140"> </td>
<td><p>
<?php
include("conex.phtml");
$link=Conectarse();
$result=mysql_query("select * from usuario",$link);
?>
</p>
<table border=1 cellspacing=1 cellpadding=1>
<tr>
<td> <b>nombres</b></td>
<td> <strong>apellidos</strong> </td>
<td> <strong>direccion</strong> </td>
<td> <strong>telefono</strong> </td>
</tr>
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td> %s</td> <td> %s </td><td> %s</td>
<td> %s </td></tr>", $row["nombres"], $row["apellidos"],
$row["direccion"],$row["telefono"]);
}
mysql_free_result($result);
mysql_close($link);
?>
</table>
<p><a href="ejem07e.phtml">borrar el usuario</a> </p>
<p> </p></td>
</tr>
</table>
<p> </p>
Asterisk: Gestión de Campañas
Pag. 27
<TABLE><TR>
<TD width="72">nombre</TD>
<TD width="157"><INPUT TYPE="text" NAME="nombre" SIZE="15" MAXLENGTH="30"></TD>
</TR> <TR>
<TD>Hora:</TD>
<TD><input type="text" name="hora" size="15" maxlength="30"></TD>
</TR><TR>
<TD width="72">minuto:</TD>
<TD width="157"><INPUT TYPE="text" NAME="minuto" SIZE="15" MAXLENGTH="30"></TD>
</TR> <TR>
<TD>dia:</TD>
<TD><input type="text" name="dia" size="15" maxlength="30"></TD>
</TR><TR>
<TD>mes:</TD>
<TD><input type="text" name="mes" size="15" maxlength="30"></TD>
</TR></TABLE><INPUT TYPE="submit" NAME="accion" VALUE="Enviar la Campaña">
<br>
<?php
include("conex-campania.phtml");
$link=Conectarsecampana();
$result=mysql_query("select * from dialout",$link);
?>
</FORM><TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR><TD> <B>nombre</B></TD>
<TD> <strong>hora</strong> </TD>
<TD> <strong>minuto</strong> </TD>
<TD> <strong>dia</strong></strong> </TD>
<TD> <strong>mes</strong> </TD></TR>
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td> %s</td><td> %s </td><td> %s</td><td> %s </t
d><td> %s </td></tr>", $row["nombre"], $row["hora"], $row["minuto"], $row["dia"],
$row["mes"]);
}
mysql_free_result($result);
mysql_close($link);
?>
</table><p><a href="ejem07e-campania.phtml">Eliminar la campania</a></p>
<p> </p>
<H1> </H1>
<p> </p>
</body>
</html>
Asterisk: Gestión de Campañas
Pag. 28
srv02:/var/www/dial#vim ejem07e.phtml
<html>
<head>
<title>Kmila NetCom</title>
</head>
<body>
<H1>Eliminar el usuario:</H1>
<?php
include("conex.phtml");
$link=Conectarse();
$result=mysql_query("select * from usuario",$link);
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD> <B>direccion</B></TD>
<TD> <B>telefono</B> </TD> <TD> <B>Borrar</B> </TD></TR>
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td> %s</td><td> %s </td><td><a
href=\"borra.phtml?id=%d\">Borra</a></td></tr>", $row["direccion"],$row["telefono"],$row["id"]);
}
mysql_free_result($result);
mysql_close($link);
?>
</table>
<p><a href="ejem07d-campania.php">regresar</a> </p>
</body>
</html>
srv02:/var/www/dial#vim borra.phtml
<?php
include("conex.phtml");
$link=Conectarse();
$id=$_GET['id'];
mysql_query("delete from usuario where id = $id",$link);
header("Location: ejem07e.phtml");
?>
Asterisk: Gestión de Campañas
Pag. 29
srv02:/var/www/dial#vi ejem07e-campania.phtml
<html>
<head>
<title>Kmila NetCom</title>
</head>
<body>
<H1>Eliminar la campania: </H1>
<?php
include("conex-campania.phtml");
$link=Conectarsecampana();
$result=mysql_query("select * from cdial-out",$link);
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD> <B>nombre</B></TD>
<TD> <B>dia</B> </TD><TD> <B>mes</B> </TD>
<TD> <B>Borrar</B> </TD></TR>
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td> %s</td><td> %s </td><td> %s </td><td><a
href=\"borra-campana.phtml?id=%d\">Borrar</a></td></tr>",
$row["nombre"],$row["dia"],$row["mes"],$row["id"]);
}
mysql_free_result($result);
mysql_close($link);
?>
</table>
<p><a href="ejem07d-campania.php">regresar</a> </p>
</body>
</html>
srv02:/var/www/dial#vim borra-campania.phtml
<?php
include("conex-campania.phtml");
$link=Conectarsecampana();
$id=$_GET['id'];
mysql_query("delete from dial-out where id = $id",$link);
header("Location: ejem07e-campania.phtml");
?>
Asterisk: Gestión de Campañas
Pag. 30
srv02:/var/www/dial#vim procesar-campania.phtml
<?php
include("conex-campania.phtml");
$link=Conectarsecampana();
$nombre=$_GET['nombre'];
$hora=$_GET['hora'];
$minuto=$_GET['minuto'];
$dia=$_GET['dia'];
$mes=$_GET['mes'];
mysql_query("insert into campaña (nombre,hora,minuto,dia,mes) values
('$nombre','$hora','$minuto','$dia','$mes')",$link);
$file = "/var/www/dial/call.txt";
$fh = fopen($file, 'w');
$string = "$minuto $hora $dia $mes * cp /var/spool/asterisk/dial-out/* /var/spool/asterisk/outgoing/\n";
fwrite($fh, $string);
fclose($fh);
exec('crontab /var/www/dial/call.txt');
header("Location: ejem07d-campania.php");?>
srv02:/var/www/dial#vim procesar.phtml
<?php
include("conex.phtml");
$link=Conectarse();
$nombres=$_GET['nombres'];
$apellidos=$_GET['apellidos'];
$direccion=$_GET['direccion'];
$telefono=$_GET['telefono'];
mysql_query("insert into usuario (nombres,apellidos,direccion,telefono) values
('$nombres','$apellidos','$direccion','$telefono')",$link);
$file = "/var/spool/asterisk/dial-out/$telefono.call";
$fh = fopen($file, 'w');
$string = "Channel: SIP/$telefono\n";
fwrite($fh, $string);
$string = "MaxRetries: 2\n";
fwrite($fh, $string);
$string = "RetryTime: 60\n";
fwrite($fh, $string);
$string = "WaitTime: 30\n";
fwrite($fh, $string);
$string = "Context:Internal\n";
fwrite($fh, $string);
$string = "Extension: 100\n";
fwrite($fh, $string);
$string = "Priority: 3\n";
fwrite($fh, $string);
fclose($fh);
header("Location: ejem07d-campania.php");?>
Asterisk: Gestión de Campañas
Pag. 31
Dialer
Se trata de un programa que marca un número de tarificación adicional (NTA) usando
el módem, estos NTA son números cuyo coste es superior al de una llamada nacional.
Estos marcadores se suelen descargar tanto con autorización del usuario (utilizando
pop-ups poco claros) como automáticamente.
En principio sus efectos sólo se muestran en usuarios con acceso a la Red Telefónica
Básica (RTB) o Red Digital de Servicios Integrados (RDSI) puesto que se establece la
comunicación de manera transparente para el usuario con el consiguiente daño
económico para el mismo. Aunque la tarificación no funcione con los usuarios de
ADSL, PLC, Cablemódem, etc... afecta al comportamiento del ordenador ya que
requiere un uso de recursos que se agudiza cuando se está infectado por más de un
dialer.
Los marcadores telefónicos son legítimos siempre y cuando no incurran en las malas
artes que los ha definido como Malware que son los siguientes trucos:
1. No se avisa de su instalación en la página que lo suministra.
2. Hace una reconexión a Internet sin previo aviso, o lo intenta.
3. Se instala silenciosamente en el ordenador utilizando vulnerabilidades del navegador, programa de correo electrónico (email), otros programas de acceso a Internet o el propio sistema operativo.
4. Puede dejar un acceso directo al escritorio sin conocimiento del usuario.
5. Puede instalarse unido a otros programas como barras de mejora para el navegador.
6. No informa de los costes de conexión.
Dial Plan (Plan de llamadas)
El Dial En sistemas tradicionales de telefonía, un Dial Plan es un sistema de extremo a
extremo, el cual permite que los usuarios se llamen entre si marcando un número en
un teléfono. En el caso excesivo de la voz y de la videoconferencia, un Dial Plan es un
sistema que permite que los participantes punto a punto o conferencias de múltiples
puntos se llamen o que ensamblen conferencias.
Un Dial Plan establece el número y el patrón de los dígitos previstos para un número
de teléfono. Esto incluye códigos de país, códigos de acceso, códigos de área y todas
las combinaciones de los dígitos marcados. Por ejemplo, la red de telefonía pública
norteamericana (PSTN) utiliza un Dial Plan de 10 dígitos que incluya un código de
Asterisk: Gestión de Campañas
Pag. 32
área de 3 dígitos y un número de teléfono de 7 dígitos. Los dial plan deben adaptarse
a la red telefónica con la cual se conectan.
Asterisk maneja esto a través del archivo extension.conf; el cual permite definir la
cantidad de dígitos que hagan referencia al código de área y el número telefónico.
Dentro de Asterisk, un dial plan consiste en un número de extensiones. Cada
extensión consiste en un número de prioridades. Las extensiones son agrupadas en
contextos. Por cada prioridad, una aplicación es llamada.
Por ejemplo:
Auto-Dial Out
El Dial Plan que maneja Asterisk “extensions.conf” responde a la llamada a una
extensión en un canal determinado (anexo). Si se quiere iniciar una llamada de uso
externo, hay varias maneras de hacer esto.
Hay básicamente tres maneras de iniciar llamadas salientes de Asterisk
1. Utilizar los archivos .call. Corresponde a un archivo de texto que cuando está
colocado en la forma correcta dentro del directorio /var/spool/asterisk/outgoing
realiza una llamada saliente.
2. Utilizar un aplicativo API para activar una llamada.
3. Utilizar la línea de comandos por medio de la consola CLI; dicho comando
“Dial” de Asterisk 1.4 contiene la habilidad de bifurcar (crear las llamadas
múltiples), sin embargo podría “ser mal empleado” para iniciar llamadas
salientes.
[contexto]
exten => id, prioridad, comando
contexto : es un nombre alfanumérico, el cual hace referencia a un espacio lógico en donde se iniciara una macro.
exten : permite crear la extensión,
id : identificador alfanumérico que hace referencia al numero de extensión.
prioridad : asigna el orden jerárquico para ejecutar una acción, comienza con 1 y va ascendiendo.
comando : ejecuta una orden acorde a la prioridad asignada.
Asterisk: Gestión de Campañas
Pag. 33
Estructura del archivo.call
Como se observo en cuanto al archivo procesar.phtml, este llama al método fwrite
para escribir sobre un archivo .call el cual contendrá el número telefónico del cliente
recién creado, y lo guardar en el directorio: /var/spool/asterisk/dial-out
Este archivo posteriormente debe ser ubicado dentro del directorio:
/var/spool/asterisk/outgoing/ para que posteriormente asterisk se encargue de lanzar
la llamada a dicho número.
La estructura de un archivo call es la siguiente:
Un ejemplo:
Channel: <canal> ;llama al canal determinado
MaxRetries: <numero> ;numero de veces que intenta hacer la llamada
RetryTime: <numero> ;segundos entre respuesta
WaitTime: <numero> ;Tiempo en segundos de espera por una respuesta
Context: <contexto> ;contexto al cual desea enlazar la llamada
Extension: <exten> ;extension a la cual enlaza la llamada
Priority: <prioridad> ;prioridad de ejecución en la llamada
Channel: SIP/100
MaxRetries: 3
RetryTime: 1
WaitTime: 5
Context: Internal
Extension: 100
Priority: 3
Asterisk: Gestión de Campañas
Pag. 34
Prueba del Sistema de Dial Out.
� Ingresamos por un WebBrowser a la dirección:
http://IPSERVIDORASTERISK/dial/ejemp07d-campania.php
� Ingresar los datos para un nuevo usuario, no olvidar número telefónico.
� Automáticamente se habrá generado la nueva llamada en /var/spool/asterisk/
dial-out/ esperando crear la campaña, para enviarla.
� Ingresar los datos para la campaña, entre ellos la fecha y hora.
� Mediante el archivo ejem07d-campania.phtml, y el boton “Enviar la campaña”; se
llamara al ejecutable procesar-capania.phtml, el cual creara el archivo call.txt
dentro de /var/www/dial/ Posteriormente se lanzará un cron con la tarea
programada:
Dicha tarea corresponde al siguiente script:
� Lo cual lanza la llamada al anexo (usuario/s correspondiente/s) y reproduce el
mensaje pre-grabado.
Aclaración: todos los archivos de audio, generalmente presentan la extensión “.gsm”; los cuales son
almacenados dentro del directorio /var/lib/asterisk/sounds/
Es desde ese directorio de donde asterisk se guía para reproducir alguna grabación; debido a eso se
explico a largo de este documento un método opcional (SOX) para la conversión de cualquier tipo de
formato de audio (generalmente wav) a “gsm”.
<min> <hr> <dia> <mes> <dseman> cp /var/spool/asterisk/llamadas-dial-out/* /var/spool/asterisk/outgoing/
Asterisk: Gestión de Campañas
Pag. 35
CAPITULO V: ESTABLECIENDO SOLUCIONES BASADAS EN
SITUACIONES REALES
Hoy en día para los usuarios de la empresa, el permanecer estáticos es imposible, con
la gran demanda de información que existe, y las tecnologías de acceso en asenso,
cada vez es mayor la cantidad de usuarios móviles.
Sin embargo un factor importante a considerar es la seguridad, es decir, hasta que
punto el usuario puede estar seguro que su información no esta siendo capturada por
terceras personas con fines ajenos a la empresa.
Actualmente, las VPNs pueden aportar grandes beneficios a las empresas, por la
diversidad de servicios que ofrecen y que ayudan a fortalecer los objetivos del
negocio. Una estrategia de VPN debe estar basada en función a las necesidades de la
empresa. En la siguiente Figura, se resume las demandas actuales de los servicios IP
VPN.
Demanda de servicios de una VPN
Adicionalmente, podemos decir que las VPNs ofrecen muchas ventajas sobre las
redes tradicionales basadas en líneas arrendadas. Algunos de sus principales
beneficios son los siguientes:
1. Reducción de costos: El costo total de conectividad se reduce debido a la
eliminación de servicios como líneas arrendadas, equipo de acceso dial-up, tiempo
de staff de TI para configurar y mantener equipos, contratos de mantenimiento de
equipos, equipos PBX (en el que el cliente es propietario), servidor de
Asterisk: Gestión de Campañas
Pag. 36
autenticación dial-up, sistemas UPS para equipos dial-up, números “800”, enlaces
ATM y conexiones ISDN.
Es de hacer notar, que el costo de un enlace dedicado alquilado se incrementa con la
distancia. Sin embargo, Internet puede usarse para suministrar larga distancia de la
conexión y reducir substancialmente el costo de los enlaces WAN.
2. Escalabilidad: Las VPNs son arquitecturas de red más escalables y flexibles que
las WAN tradicionales, debido a que permiten a las corporaciones agregar o
eliminar sus sistemas localizados remotamente, “teletrabajadores” o aliados
comerciales de forma fácil y poco costosa en función de las necesidades del
negocio.
3. Seguridad: Bajo el esquema de VPN la conexión a través de Internet es cifrada. El
servidor de acceso remoto exige el uso de protocolos de autenticación y cifrado.
Los datos confidenciales quedan ocultos a los usuarios de Internet, pero los
usuarios atorizados pueden tener acceso a ellos a través de la VPN.
4. Diseño de red simplificado: Un diseño de red con tecnología VPN se simplifica
en términos de diseño de arquitectura, flexibilidad y mantenimiento, debido a que
se reducen los costos asociados a la gestión de red.
5. Compatibilidad: Como se aceptan la mayor parte de los protocolos de red más
comunes (incluidos TCP/IP, IPX y NetBEUI), las VPNs puede ejecutar de forma
remota cualquier aplicación que dependa de estos protocolos de red específicos.
6. Administración centralizada: Algunos proveedores soportan la característica de
administración centralizada de sus productos VPN. Esto representa una fuerte
característica de seguridad y un buen mecanismo para la resolución de problemas.
Asterisk: Gestión de Campañas
Pag. 37
7. Prioridad de Tráfico: Algunos proveedores ofrecen la funcionalidad de priorizar
tráfico en sus productos VPN. Esto agrega gran flexibilidad a la corporación en
cuanto a la utilización de los enlaces de Internet, debido a que se puede decidir en
qué orden se preserva el ancho de banda según el tipo de tráfico permitido y de
acuerdo a su importancia.
Aplicando VPN con SSL.
Como se menciono antes, se tiene ya configurado el servidor Asterisk. De ahora en
adelante se implementara un servidor adicional VPN con dos tarjetas de Red; el cual
también cumplirá el rol de un firewall y correrá también sobre Debian GNU/Linux.
Nombraremos a este segundo Servidor como: srv01, ubicándolo dentro del mismo
dominio que el servidor Asterisk: kmla.js.
� Configuramos las interfaces de red en ambos servidores.
srv01:/#vim /etc/network/interfaces auto lo eth0 eth1 iface lo inet loopback iface eth0 inet static address 192.168.10.180 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 gateway 192.168.1.5 iface eth1 inet static address 172.30.10.1 netmask 255.255.0.0 network 172.30.10.0 broadcast 172.30.10.255
srv02:/#vim /etc/network/interfaces auto lo eth0 iface lo inet loopback iface eth0 inet static address 172.30.10.20 netmask 255.255.0.0 network 172.30.10.0 broadcast 172.30.10.255 gateway 172.30.10.1
Asterisk: Gestión de Campañas
Pag. 38
Tendremos entonces el siguiente esquema:
� Habilitamos el forwadeo:
� Habilitamos el enmascaramiento para la red interna.
� Reiniciamos los servicios de red en ambos servidores.
� Instalamos las fuentes necesarias para utilizar openvpn ssl
� Instalamos las fuentes y librerías necesarias para utilizar la compresión de datos:
� Cargamos el modulo para probar el túnel.
srv01:/#apt-get install openvpn
srv01:/#apt-get install liblzo2-2
srv01:/#modprobe tun
srv01:/#echo 1 > /proc/sys/net/ipv4/ip_forward
srv01:/#/etc/init.d/networking restart srv02:/#/etc/init.d/networking restart
srv01:/#iptables –t nat –A POSTROUTING –s 172.30.10.0/24 –d 0.0.0.0/24 –j MASQUERADE
Asterisk: Gestión de Campañas
Pag. 39
Configurando el Tunel VPN.
A partir de ahora, editaremos la configuración necesaria para establecer una conexión
vpn.
� Creamos nuestro archivo de configuración:
� Creamos el directorio donde montaremos el tunel y hacemos los cambios
necesarios.
� Generamos la clave simétrica para la VPN entre cliente – servidor y la enviamos a
nuestro cliente movil.
� Reactivamos el servicio vpn y visualizaremos el túnel como una interfase virtual.
Configurando el cliente VPN
Solo nos resta instalar el cliente vpn en la maquina remota (usuario móvil), para ello
instalamos el programa: openvpn-2.0.9-gui-1.0.3-install
Puede ser descargado en el sitio Open Vpn GUI for Windows [http://openvpn.se]
srv01:/#vim /etc/openvpn/vpn_srv01_cliente.conf dev tun # creado por el paquete debian
persist-tun
ifconfig 10.0.1.2 10.0.1.1 #nodo local – nodo remoto
comp-lzo #habilitamos la compresión de datos
keep alive 10 120
ping-restart 120
secret /etc/openvpn/llave_srv02.key #ubicamos la llave
persist-tun
persist-key #necesario al ejecutar como nobody
user nobody
group nogroup
chroot /var/empty #por seguridad habilitamos chroot
srv01:/#mkdir /var/empty
srv01:/#chown nobody.nogroup /var/empty
srv01:/#/etc/init.d/openvpn restart
srv01:/#ifconfig tun
srv01:/etc/openvpn#openvpn --genkey –-secret clave.key
Asterisk: Gestión de Campañas
Pag. 40
� Con un block de notas creamos el archivo “conex_cliente_vpnsrv01.conf” para la
conexión remota, en la siguiente ruta; con el siguiente contenido:
� Asi mismo, copiamos tambien el archivo clave.key del servidor vpn al directorio:
Observación: cabe mencionar que el router cuya ip publica: 200.121.60.73 (utilizada para este
procedimiento) que permite el acceso a la red privada, debe ser nateado hacia el servidor srv01 y permitir
el tráfico por el puerto UDP 1194 utilizado por openvpn.
� Configuramos el softphone e iniciamos la comunicación con el servidor vpn y
recibimos las tramas enviadas por asterisk.
C:\Archivos de programa\OpenVPN\config
remote 200.121.60.73 #ip publica de la red interna a la cual queremos acceder dev tun #creado por el paquete debian ifconfig 10.0.1.1 10.0.1.2 #nodo local – nodo remoto comp-lzo #habilitamos la compresión de datos keep alive 10 120 ping-restart 120 secret llave_srv02.key #ubicamos la llave persist-tun persist-key #necesario al ejecutar como nobody user nobody route 172.30.10.0 255.255.255.0 10.0.1.2 #ruteo que no permita acceder a la red interna
Asterisk: Gestión de Campañas
Pag. 41
CAPITULO VI: ESTABLECIENDO EL NUMERO DE LINEAS
Como se ha visto hasta ahora; se ha determinado una solución para usuarios móviles
los cuales utilizando por un concepto de Teleworker, mantienen un acceso con la
empresa para no desligarse de sus actividades y mantenerse en contacto en todo
momento.
Pero que ocurre con el acceso a Internet, como determinar hasta que punto las líneas
se darán abasto para soportar el número de llamadas que realizará la IP PBX.
Concepto de Erlang
El tráfico telefónico se asocia al concepto de ocupación. Se dice que un circuito
telefónico esta cursando trafico cuando esta ocupado, nunca si esta libre.
Cuando se produce una comunicación telefónica entre 2 abonados se ocupan los
aparatos de los dos abonados, y además una serie de órganos o circuitos
intermedios tanto en las centrales como en las uniones entre las mismas. Estos
órganos o circuitos también cursan tráfico cuando están ocupados.
El tráfico telefónico es medible en términos de tiempo (entendido como tiempo de
ocupación) y que depende del número de comunicaciones y de la duración de las
mismas.
Se puede definir al Erlang; como el porcentaje de uso del recurso telefónico utilizado.
Ejemplo: si tenemos una ruta con dos líneas, y durante una hora la suma de los
minutos utilizados en esta ruta es de 60 minutos, tenemos una medición de flujo de
trafico telefónico en Erlangs del 50%. De lo cual se puede deducir la siguiente
formula:
Erlangs = Tiempo utilizado / Tiempo disponible
Con lo cual se ocupan la formulas para rutas y centros de costo:
Asterisk: Gestión de Campañas
Pag. 42
El máximo en Erlang es de 1 que quiere decir que se ocupo el máximo de un recurso
disponible, o también se puede expresar el 100% de utilización.
Con esta medida de Tráfico se pueden concluir si este se necesitan mas extensiones
en algún área determinada, o mas líneas para un determinado tipo de llamados. Por
ejemplo suponiendo que en el uso de determinada ruta que se ocupa para llamados
de entrada se obtenga como medición un 50% de Erlangs se puede concluir que el
50% seria la probabilidad de que se encuentren todas las líneas ocupadas durante
determinado periodo.
Determinando líneas para una Campaña
Valiéndonos de una calculadora de Erlang, generaremos una consulta, sobre cuantos
erlang necesito para generar cuatro llamadas, ocupando un comunicación de 6 min.
Serán necesarias: 2 Erlang
Es decir: 4 Líneas físicas equivalen solamente a utilizar 2 líneas, para generar 4
llamadas de 6 min. cada una.
Asterisk: Gestión de Campañas
Pag. 43
Bibliografía:
Página del proyecto oficial de Asterisk:
http://www.asterisk.org/about
Información sobre Asterisk y telefonía IP:
http://voip-info.org/wiki/index.php?page=Asterisk
Documentación sobre el proyecto Asterisk
http://www.asteriskdocs.org
Página Web del proyecto FreePBX, una GUI amigable para administración de Asterisk:
http://www.freepbx.org/about/
Página Web del proyecto Trixbox
http://www.trixbox.org
Página Web del proyecto Openvpn
http://openvpn.net
Conceptos de Erlang
http://www.erlang.com/whatis.html
Calculadora Erlang
http://www.erlang.com/calculator/erlb/
http://personal.telefonica.terra.es/web/vr/erlang/cerlangb.htm
Enciclopedia Libre: Wikipedia
http:// wikipedia.org
Asterisk: Gestión de Campañas
Pag. 44
Anexo Nº 1: Cuadro Comparativo de Posibles Soluciones.
Solución 1:
Implementar un servicio de llamadas.
Solución 2
Implementar un CallCenter con Asterisk.
Ventajas: • Clientes se mantendrán informados.
• Las relaciones con el cliente no estaban
descuidadas.
• Cualquier llamada del cliente para pedir información
o ayuda, será atendida de inmediato por el personal
capacitado.
• La empresa podrá orientarse a seguir brindando
servicios sabiendo que el tema de atención e
información al cliente esta cubierto.
Ventajas: • Clientes se mantendrán informados.
• Las relaciones con el cliente no estaban
descuidadas.
• Cualquier llamada del cliente para pedir información
o ayuda, será atendida de inmediato por un sistema
de IVR.
• Solo se necesitara de un empleado/a capacitado a
fin de manejar el software, y efectuar las llamadas.
Desventajas: • Costos considerables en cuanto a la implementación
de este centro de atención al cliente.
• Las llamadas serán efectuadas en horario laboral, no
pudiendo atender alguna necesidad del cliente en
horas fuera de la establecida.
• Capacitación de personal considerable.
• Problema considerable para aquellos clientes cuyo
ubicación esta en otro país, ya que el horario difiere.
Desventajas: • Mantenimiento del Servidor Asterisk, cuando se
considere necesario.
• Considerable atención a la data.
• Mantener copias de seguridad.
Costos: • Costos considerables en cuanto a la implementación
de este centro de atención al cliente.
Costos: • Costos 0, puesto que Asterisk cumple con lo que es
software libre.
Solución Optima
Asterisk: Gestión de Campañas
Pag. 45
Anexo Nº 2: Esquema General de una Central Asterisk.
Asterisk: Gestión de Campañas
Pag. 46
Anexo Nº 3: Diagrama Lógico de la Solución.
Asterisk: Gestión de Campañas
Pag. 47
Anexo Nº 4: Diagrama Lógico de la Solución (Aplicando VPN).
Asterisk: Gestión de Campañas
Pag. 48
Copyright (c) 2007 Raúl Mescua.
Permission is granted to copy, distribute and/or
modify thisdocument under the terms of the GNU
Free Documentation License, Version 1.2 or any
later version published by the Free Software
Foundation; with no Invariant Sections, no Front-
Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section
entitled "GNU Free Documentation License".
Recommended