Interesante información sobre los requerimientos detallados a considerar durante la instalación en producción de un sistema de telefonía basado en Asterisk.
Considerando desde tarjetas, cpus, motherboars, redes, cableado, electricidad, etc.,
Asterisk es una plataforma de Telefonía IP, la cuál en los últimos años está teniendo un avance tremendo en el mundo de las comunicaciones, tan es así que se han desarrollado múltiples aplicaciones alrededor de esta plataforma, tales como sistemas de videoconferencia, crm's, webphones, calendarios, reporteadores, interfaces gráficas, hardware, etc.
De ahí este post para comentar sobre un sitio que recopilo las mejores aplicaciones libres que se han desarrollado para interactuar con esta fantástica plataforma de telefonía IP, algunas de ellas ya las tenemos integradas en CloudVoox. http://www.venturevoip.com/news.php?rssid=2184
Al momento de hacer una relación m:m en vTiger con 2 módulos personalizados e intentar seleccionar los registros de un módulo detalle desde un módulo maestro vTiger me generaba el siguiente error:
vTiger Warning: Invalid argument supplied for foreach() in /var/www/vtigercrm/include/utils/ListViewUtils.php on line 1418
Este error se generaba en esta porción del código de vTiger
Al parecer esto ya que al definir las variables en la clase MiModulo.php estas las definía en minúsculas, por lo que vTiger buscaba en el arreglo un nombre de campo con la primer letra mayúscula, por lo que si todo estaba en minúscula no encontraba el registro y por ende mandaba el error, por ello solo entre a la clase del módulo y definí el nombre de los campos con la primer letra mayúscula, con esto se resolvió el problema.
Hace unos días en OaxRom nos contactó un cliente el cuál me comentó que tenía un servidor Asterisk que se lo habían implementado pero que últimamente tenía algunos problemas en su funcionamiento, esto ya que al parecer por unas fallas de energía había afectado su operación.
Por lo que la propuesta fue implementarle un servidor Asterisk reutilizando sus teléfonos IP y Tarjetas E1 ya que tiene una troncal digital de 30 canales con Axtel con señalización R2, en este caso dispone de una tarjeta OpenVox D115E.
El detalle es que esta tarjeta no está del todo soportada por el driver de Dahdi, por lo que hay que descargar unos drivers adicionales de OpenVox, instalarlos y parchar DAHDI para que se integre dentro de la plataforma de DAHDI & Asterisk, para esto lo primero que se descargó fueron los drivers de la siguiente página:
Aquí se omiten algunos pasos de instalación de Asterisk y solo se enfoca a la parte de OpenVox, en este blog ya tengo algunos tutoriales de como instalar Asterisk form Scratch en Debian & Ubuntu Server y se pueden complementar con este How to.
Instalar OSLEC como cancelador de eco por software, si no se tiene una tarjeta con módulo de eco por hardware se recomienda OSLEC, previamente hay que compilar OSLEC.
#OpenVOX D115 sudotar-xzvf ~/asterisk/openvox_dahdi-linux-complete-2.4.0+2.4.0.tar.gz sudorm-rf/usr/src/dahdi sudoln-s/usr/src/asterisk/dahdi-linux-complete-2.4.0+2.4.0/linux//usr/src/dahdi #Instalación de OpenVox-Dahdi y Dahdi Tools. cd/usr/src/asterisk/dahdi-linux-complete-2.4.0+2.4.0 sudomake clean && sudomake&& sudomakeinstall&& sudomake config #copia del módulo de OpenVox-Dahdi para la versión del kernel de Linux que estemos utilizando cd .. mkdir-p/lib/modules/`uname -r`/dahdi/opvxd115 sudocp/usr/src/asterisk/dahdi-linux-complete-2.4.0+2.4.0/linux/drivers/dahdi/opvxd115/opvxd115.ko /lib/modules/`uname -r`/dahdi/opvxd115/ #Descarga del firmware de OpenVox cd ~/asterisk wget http://downloads.openvox.cn/pub/firmwares/opvx-dahdi-fw-oct6114-032-1.07.01.tar.gz #Instalación del firmware de OpenVox para Dahdi cd/usr/src/asterisk sudotar-xzvf ~/asterisk/opvx-dahdi-fw-oct6114-032-1.07.01.tar.gz sudocp dahdi-fw-oct6114-032.bin /lib/firmware/ sudomkdir-p/usr/lib/hotplug/firmware/ sudomv dahdi-fw-oct6114-032.bin /usr/lib/hotplug/firmware/ #instalación de OpenR2 para E1 Modificado cd ~/asterisk/ sudowget http://openr2.googlecode.com/files/openr2-1.3.1.tar.gz cd/usr/src sudotar zxvf ~/asterisk/openr2-*tar.gz cd openr2-* sudo ./configure &&sudomake&&sudomakeinstall # compilacion de Asterisk sin MFC R2, la versión de Asterisk 1.6.2 ya incluye soporte para R2 cd/usr/src/asterisk/asterisk-1.6.*&& #sudo patch -p0 < ~/asterisk/openr2-asterisk-1.4.32-p1.patch && #sudo ./bootstrap.sh && sudomake clean && sudo ./configure --prefix=/usr && #Desactivar módulos que no se utilizarán (mgcp, skinny, codec_dahdi) activar(ilbc) sudomake menuconfig && sudomake all &&sudomakeinstall&& #Ejecuta si es la primera vez que instalas asterisk en el servidor, de lo contrario reescribirá tus archivos de configuración sudomake samples &&sudomake progdocs
Con lo anterior ya podemos instalar la tarjeta y tenerlo soportado en DAHDI, así como instalar Asterisk y tener soporte de R2.
Para la parte de la configuración del E1 es el mismo procedimiento que con una Tarjeta Sangoma A102 o una Digium.
Por ejemplo para un R2 de 30 canales quedaría así /etc/dahdi/system.conf
Cómo comenté al inicio en este tutorial se omiten detalles sobre la instalación y configuración de Asterisk, pues solo nos enfocamos a la parte de OpenVox que para algún usuario con un poco de experiencia sabrá cómo organizar la información que aquí incluímos.
Espero alguien le sirva este tutorial y cualquier duda pueden postearla para irlas resolviendo.
Actualmente Asterisk se está convirtiendo en el Software Líder de SoftSwitch, siendo el favorito desde pequeñas empresas hasta grandes corporativos, por lo que su amplio uso e implementación en diversos países del mundo lo ha hecho un blanco importante para los "hackers" que desean obtener acceso a estos servidores y poder conseguir llamadas gratuitas.
Instalar un Asterisk es cosa sencilla con múltiples proyectos "All in One" como lo es Elastix por ejemplo, la distro más famosa que ya incluye diversas aplicaciones alrededor de la platforma de Asterisk, por lo que para muchos usuarios nóveles les es muy fácil implementar PBX bajo esta plataforma pero sin conocimientos avanzados que los ayude a proteger sus servidores al estar expuestos en internet, esto ya que muchos les es fácil ponerlos en DMZ para tener un acceso remoto.
Actualmente existen varias herramientas de auditoría SIP que permite detectar vulnerabilidades en servidores Asterisk, herramientas que también son usadas por los crackers para detectar cuentas SIP y explotarlas. Una de estas herramientas es SIP Vicious la cuál permite escanear un sevidor SIP y detectar que cuentas SIP están disponibles, cuáles requieren passwords y cuáles no, así como también pueden llegar a obtener el passwords de cuentas SIP cuánto estos no son complejos.
Una de las formas más rápidas de dar el primer portazo a escaners SIP es mediante una opción que se coloca en SIP.CONF o sip_custom.conf para los usuarios de FreePBX y Elastix.
Esa opción es:
alwaysauthreject=yes
Esta debe ser la primer opción en el proceso de asegurar un Asterisk, posteriormente estaré posteando sobre un Detector de Intrusos para SIP.
Hace unos días le instalé un Marcador Predictivo a un cliente basado en ViciDial, todo esto funcionando sobre la plataforma de Telefonía IP Asterisk, todo funcionó bien Colas, Marcador Predictivo, Llamadas Grabadas, Reportes, Agentes, CRM, Call Notification, etc., Solo faltaba la cereza en el pastel,
¿ Como descargar el archivo de las llamadas grabadas desde el CDR de FreePBX ?
Para esto me metí a revisar el archivo call-log.php, que es el reporteador del CDR de FreePBX. Este archivo se encuentra debajo de la ruta de instalación de FreePBX en admin/cdr/call-log.php, para mi sistema CloudVoox PBX lo tenemos en /var/www/cloudvoox/admin/cdr/call-log.php.
En esta parte debajo de /* --AMP Begin-- */ agregamos la siguiente línea
En lo anterior agregamos un campo dentro de la configuración, y este campo contiene "cdr/audio.php?id=", lo que al momento de que el CDR de FreePBX despliegue la información esto nos generará una URL en ese registro pasándole como parámetro el uniqueid de la llamada para porcesarla en el archivo audio.php.
También modificamos la consulta y quedó de la siguiente forma:
En este mismo archivo hicimos una modificación en el despliegue de la información del registro, este cambio se hizo despues de la siguiente línea (~685):
Con lo anterior en el reporte veríamos el UNIQUEID de la llamada y desde ahí nos permitiría descargar el archivo de AUDIO de la llamada grabada.
Ahora solo faltaría poner el archivo audio.php dentro del mismo directorio dónde está call-log.php, el archivo audio.php tendría el siguiente código:
<?php $uniqueid=$_GET["id"]; $directorio="/var/spool/asterisk/monitor/"; $error=""; if(is_numeric($uniqueid)){ $busqueda="find $directorio -iname \"*$uniqueid.*\""; $audio=exec($busqueda,$_info); if(file_exists($audio)){ $filename=basename($audio); $_extension=split("\.",$filename); $extension=$_extension[count($_extension)-1]; //echo "$audio::$filename::$extension";
getAudio($audio,$filename,$extension); }else{ $error="<b>Error 404</b> Archivo no existe para descarga"; } }else{ $error="<b>Error 403</b> Error en Tipo de Archivo"; } echo$error; function getAudio($audio,$filename,$filetype){ header('Content-Type: application/'.$filetype); header('Content-Disposition: attachment; filename="'.$filename); header('Content-Length: '.filesize($audio)); echofile_get_contents($audio,false); } ?>
En lo anterior solo habría que modificar el directorio dónde FreePBX guarda las llamadas, por default Asterisk coloca las llamadas grabadas en /var/spool/asterisk/monitor.
Espero lo anterior sirva de algo, si tienes alguna duda puedes enviarme un correo en fileinleon del correo de google.
Esta semana que pasó 5-8 de Octubre del 2010 se llevó en ESIME IPN Zacatenco el Congreso Nacional de Software Libre 2010, en la cuál tuve la fortuna de poder participar con 2 pláticas:
vTiger CRM & Asterisk: Dónde hablamos como un CRM puede ser de utilidad en una empresa para la relación con sus clientes, mejor atención, así como su integración con Asterisk para tener información del cliente que llama en la pantalla de nuestra computadora.
Fotografía Digital & Software Libre: Fué una plática dónde comparto mi gusto por la fotografía y como hago uso de herramientas libres para darle mayor realce a mis capturas fotográficas.
Nuestro Training ha Evolucionado, ahora incluye lo mejor de Asterisk PBX-IP, junto a los mejores Temas de Programación Avanzada.
Curso Edición Especial Intermedio-Avanzado
del 8 al 11 de Diciembre
¡4 días de Entrenamiento!
Éste es un curso intensivo de Asterisk que abarcará todo lo que necesitas aprender para entender, instalar, configurar, soportar y administrar una central telefónica IP con Asterisk, incluyendo su interacción con las tarjetas de telefonía, líneas telefónicas, proveedores de telefonía y teléfonos IP. Te daremos todo el conocimiento sobre la Tecnología IP con Asterisk y como sacarle el mayor provecho.
Además aprenderás las mejores formas de integrar Asterisk con Lenguajes de Programación y Bases de Datos, lo que te dará el potencial para crear Sistemas Telefónicos de alto desempeño y complejidad.
En el curso Intermedio-avanzado conocerás la forma de poder desarrollar Aplicaciones Avanzadas y sacar mayor provecho de tu Solución con Asterisk. Te enseñaremos las funciones claves que hacen de Asterisk la mejor solución de Telefonía de todos los tiempos.
!Oferta¡ Descuento 10% a Grupos de 3 o más personas
AsterBilling SL permite mostrar el costo de la llamada en las pantallas de los Teléfonos IP que soporten SIP Messages como el Atcom 530, esto en base al destino, tiempo y tarifa configurada en la administración del sistema.
Para poder habilitar esta característica es necesario primero instalar el software de Tarificación de AsterBilling SL
#Después de instalado el software de Tarificación, ir al directorio de instalación cd/var/www/tarificador #Editar el archivo extensions-voip.php sudo editor /var/www/tarificador/extensions-voip.php #Cambiar los siguientes valores por los datos del Asterisk Manager Interface definido en /etc/asterisk/manager.conf $amiHost = "localhost"; //servidor de AMI $amiUser = "cloudvoox"; //login AMI $amiSecret = "cloudvoox";//password AMI $amiContext = "from-internal";//contexto #También asignar los datos de acceso a la base de datos del Tarificador creados anteriormente $mysql_server = "localhost"; $mysql_user = "tarificador"; $mysql_secret = "tarificador"; $mysql_db = "tarificador"; #Ahora solo ejecutar el script
php -q/var/www/tarificador/extensions-voip.php #Para probarlo puede usar un Teléfono IP Atcom 530 o un Atcom 620 el cuál tiene una Pantalla con BackLight. #Para que se ejecute el script al inicio del sistema ponerlo en /etc/init.d o gestionarlo a traves de /etc/crontab #Con esto ya podemos tener un visor en tiempo real del costo de la llamada que esté realizandose desde la cabina(Locutorio). Si se modifica en la administración las tarifas, automáticamente el sistema envía los costos configurados a las pantallas de los teléfonos IPs. La información del tiempo cambia cada vez que se completa el periodo de cargo de la tarifa.
Pongo este post para comentar y compartir un proyecto sobre un Tarificador Web basado en AsterBilling, el cuál he modificado para quitar la parte del pago de licencias por canal monitorerado de la versión original y ligar el tarificador con la base de datos MySQL del CDR de Asterisk, entre otras características que se le han añadido al Tarificador y la traducción al español de las interfaces de administración y operación..
TARIFICADOR para Asterisk "ASTERBILLING SL"
Historia
AsterBilling SL está basado completamente en AsterBilling (http://www.astercrm.org). La versión original de AsterBilling está incluída dentro del proyecto AsterCC que incluye un CRM y Tarificador para Asterisk.
AsterBilling originalmente se diseño para ser un tarificador para Asterisk en tiempo real, en este caso tiene una interfaz de administración y otra de configuración.
En la interfaz de administración se configuran las casetas, cabinas y las tarifas.
En la interfaz de Operación AsterBilling usa un mecanismo que no es OpenSource y se paga por licencias por canal para poder mostrar en tiempo real el costo de la llamada en el cajón de la cabina correspondiente de acuerdo a la configuración de las tarifas realizadas en la parte de administración.
Las interfaces Web de Administración y Operación original de AsterBilling están liberadas como Software Libre.
El motor de AsterCC es software cerrado, esta parte es la que monitorea las llamadas en Asterisk y provee a la interfaz de operación, información en tiempo real del tiempo y costo de la llamada en curso, AsterCC se cobra por el número de canales a monitorear.
¿Porqué se derivó un proyecto a partir de AsterBilling ?
Las 2 principales razones son:
*AsterBilling requiere un pago de licencias por el número de canales a monitorear.
*Algunas ocasiones AsterBilling no tarificaba el tiempo correcto (billsec) de las llamadas realizadas, esto ya que cortaba antes el conteo ó a veces paraba el conteo segundos después de que terminaba la llamada.
Otras razones:
Junto con un amigo del bachillerato (Bernardo Rodríguez Alamilla) planeamos poner un negocio de casetas telefónicas usando la plataforma de Asterisk para ruteo inteligente de llamadas, tarificación, impresión de tickets, facturación y visor en tiempo real de costo de llamadas en teléfonos IP ya que desistimos usar tarificadores chinos y argentinos.
Algunos otros aspectos por el que quitamos el motor AsterCC de AsterBilling es que consumía procesamiento de CPU adicional. No generaba e imprimía tickets ni los foliaba. Idiomas de las interfaces estaban solo en Chino e Ingles.
¿Que cambios realizamos en AsterBilling?
Se desligó la interfaz del operador del motor de AsterCC y se conectó con la base de datos de MySQL usando el CDR de Asterisk.
Se agregó impresión de Tickets usando impresoras de tickets conectadas a un puerto paralelo.
Por motivos fiscales se permite foliar los tickets.
Permite identificar si un número móvil es de Telcel, Movistar u otra compañía en base a una base de datos de la COFETEL y tarificar por compañía.
Ruteo de llamadas identificando a que compañía pertenece un número móvil.
Traducción al español de interfaz de Administración y Operación.
Se modificó el reporteador de CDR Stats para listas, filtrar y graficar llamadas, también para buscar llamadas cobradas y facturadas.
Se usan las pantallas de los teléfonos IP como Visores, para esto se creo un scripts que permite identificar que extensiones IP son tarificadas y enviarles en tiempo real el costo de la llamada en base al destino marcado y duración de la llamada.(Requiere teléfonos que soporten SIP MESSAGES).
Al realizar modificaciones de las tarifas en la administración del sistema, en automático muestra el cambio del costo de llamada en las pantallas de los teléfonos IP que estén llamando.Video Demo [ http://www.youtube.com/watch?v=hoWp4_hpFK4].
Como Mostrar Costo de Llamadas en tiempo real en las pantallas de Teléfonos IP que soporten SIP Messages (Ej. Atcom 530 )
Por ahora el proyecto aun no se sube a SourceForge.Net, pero por via de mientras enviame un correo a fileinleon ARROBA gmail DOT com para que a vuelta de correo te replique el proyecto completo con el manual de instalación y configuración.
Comentarios Recientes