Hace un par de meses instalé un conmutador de Voz sobre IP a un cliente el cuál realiza en promedio cerca de 150 llamadas diarias, por lo que me solicitó que en el conmutador se grabaran las llamadas que recibiera e hiciera, esto quedo funcionando bien, el detalle que en ese tiempo se me pasó agregar un parámetro para que después de finalizada la grabación copiara el archivo de la llamada grabada a una carpeta con la fecha actual de la grabación, esto para ir organizando las llamadas, pero como esto no se hizo 40 días después obviamente tenía miles de llamadas grabadas por lo que revisar una por una fue complicado.
Por lo que se me ocurrió rápidamente hacer un script en PHP que listara la información por fecha y en base a la fecha del archivo crear una carpeta si es que este directorio no existiera y mover ahí el archivo grabado.
En el código solo modificar el directorio de búsqueda y el directorio dónde se crearán las carpetas y moverán los archivos, obviamente este script puede funcionar para cualquier tipo de archivo pero aquí lo hice para que busque archivos wav, cree un directorio de la fecha del archivo si esta no existe y mover ahí el archivo, y asi consecutivamente con todos los archivos.
Espero este script pueda serle de utilidad a alguien más y cualquier comentario hacérmelo llegar..
El desarrollo de Asterisk está creciendo a pasos agigantados y también la cantidad de software alrededor de esta plataforma que ya es un Killer App, por lo que buscando hace unos días información sobre USRP encontré información sobre OpenBTS y de ahí di con un vídeo en youtube sobre como interceptar llamadas entre teléfonos celulares, esto mediante un dispositivo USRP el cuál toma la función de un AP GSM, por lo que los móviles se conectan a estos AP pensando que son los verdaderos de Telcel o Movistar, pero lo que no saben es que en realidad es que son Fake AP que si permiten hacer llamadas, más no recibir obviamente, pero las llamadas realizadas son monitoreadas por el sistema Fake que se encuentra en medio.
En youtube se puede encontrar un video que explica aun más este nuevo concepto:
Cuándo instalamos un servidor Linux en modo consola, generalmente solo tiene habilitada 3 Zonas horarias las cuáles no siempre coinciden con las Zonas Horarias especificadas para México, por lo que es necesario actualizar la Zona horaria para que el reloj del sistema quede perfectamente configurado, para eso solo realizar lo siguiente:
#Respaldar la configuración de zona horaria actual sudomv/etc/localtime /etc/localtime-old.old #Crear un enlace dinámico de la zona horaria de México a la zona horaria actual sudoln-sf/usr/share/zoneinfo/America/Mexico_City /etc/localtime #Instalar vía apt-get un sincronizador de horario sudoapt-get--yesinstall rdate #Sincronizar la hora con un servidor de horarios sudo/usr/bin/rdate -s time-a.nist.gov #Sincronizar la hora del sistema con la hora del bios sudo/sbin/hwclock --systohc #Verificar la nueva hora configurada date
Hace un rato revisando mi listado de llamadas perdidas desde el CDR de FreePBX quise regresar algunas llamadas, ya que los números eran de algunos amigos, por lo que comencé a marcar desde mi extensión sus números, pero algo que se me hizo poco ilógico es ¿ Cómo marcar a la antigüita si ya tengo un sistema Asterisk ?, lo primero que pensé fué un sistema Click2Dial, imaginé que primero tendría que programar algo adicional al CDR, pero imaginé que a lo mejor ya habría un plugin en Firefox que ya resolviera este detalle, por lo que me metí al sitio de Addons de Firefox a buscar un plugin y pude encontrar Asterisk Click2Dial.
Asterisk Click2Dial
Solo basta agregar el plugin como extensión de firefox, reiniciar firefox y configurar los parámetros de Asterisk Click2Dial.
En este caso preferí usar el modo AMI para hacer las llamadas, por lo que tuve que introducir el host del servidor de Asterisk, Puerto, Login, Password, Contexto y a que extensión mandaría el número marcado.
Los primeros parámetros los podemos configurar en el archivo de /etc/asterisk/manager.conf.
Ahora solo seleccionar cualquier número y presionar el botón derecho para luego elegir llamar al número seleccionado.
Hemos dividido nuestro curso de Telefonía de Voz sobre IP basada en la plataforma Asterisk PBX en 2 cursos, básico-principiantes e intermedio-avanzado, los cursos están diseñados para que el asistente con el curso de principiantes conozca desde los aspectos básicos de telefonía hasta los conocimientos principales para poder integrar un conmutador de voz sobre IP y ponerlo en producción, dónde podrá integrar un conmutador mediante tarjetas de telefonía Sangoma, Digium así como configurar opciones como son IVRs, Grupos de Marcación, Extensiones, Rutas de llamadas entrantes, salientes, bloqueo de llamadas, correos de Voz, etc .
El curso intermedio avazando se enfoca en cuestiones avanzadas de la telefonía de Voz sobre IP como son integración de Asterisk con CRM, desarrollo de aplicaciones, integración de bases de datos, texto a voz y reconocimiento de voz, videoconferencia, domótica y casas inteligentes entre, monitoreo entre otros temas avanzados que le darán al usuario mayores conocimientos en la integración de soluciones de Voz sobre IP más allá de un conmutador IP.
Para información del Temario, Fechas y Costos puede obtenerse mayor información en el siguiente PDF
Hace unos días instalé Asterisk sobre la nueva versión de servidor de Ubuntu, el detalle con esta versión es que ya trae PHP 5.3 por lo que me salió un problema al instalar mis agis, el error que me salía era el siguiente:
PHP Parse error: syntax error, unexpected T_GOTO, expecting T_STRING in/var/lib/asterisk/agi-bin/phpagi/phpagi.php on line 1184<br>
Esto ya que en el código de phpagi se creó una función llamada goto, función que no existía antes en PHP, pero que desde la versión 5.3 ya existe
T_GOTO goto (available since PHP 5.3.0)<br>
Por lo que había un conflicto con los tipos de parámetros, para esto solo basto editar el código y renombrar la función goto a goto2
function goto($context,$extension='s',$priority=1)
Los archivos AAC son formatos de Audio con alta calidad y buena compresión, por lo que los archivos ocupan poco espacio pero con muy buena calidad de audio.
Queriendo usar unos ringtones para un softphone estuvo buscando algunos y encontré los que trae Nokia por default en sus teléfonos, el detalle es que estos estan en formato AAC y no son soportados por el softphone ya que solo soporta Wav. Por lo que tuve que buscar la forma de convertir estos archivos a formato Wav, para esto encontré la aplicación FAAD que ayuda con esto, solo basta instalarla desde los paquetes
Hace unos días instalé un conmutador de Voz sobre IP para un cliente, el detalle en esta ocasión es que se usarían softphones pero no sobre Windows como se hacía con anteriores clientes, si no sobre Linux.
Al principio no le vi complicación pues existen diversos softphones para Linux, tanto open source, gratuitos y comerciales, pero despues de evaluar varios todos tenían una pega.
En el caso de los comerciales requerían del pago de una licencia por softphone por lo que para el cliente no le era atractivo, los gratuitos estaban muy limitados y los open source no todos funcionaban bien.
Pero buscando y buscando lei la recomendación en varios foros del SoftPhone Twinkle, el cuál es un softphone SIP que funciona solo para Linux y es Open Source.
Su interfaz no es muy atractiva, pero despues de empezar a usarla es muy funcional
Al principio tuve problemas son este softphone ya que al recibir llamadas se me quedaba colgado el softphone, pero buscando info encontré que era por falta de librerías.
Entre las principales características es que te permite elegir un dispositivo de sonido para el timbrado y otro para hablar y escuchar, esto es práctico cuándo se usan diademas ya que asi se puede conectar una diadema usb y hacer que el timbrado suene por el dispositivo principal de sonido y la conversación se realice por las diademas USB. Gracias a lo anterior también es posible elegir un tono para el timbrado por lo que es práctico cuándo se tienen múltiples extensiones en una misma oficina asi ya no se confunden entre los timbrados.
También este softphone permite elegir el tipo de códec a usar soportado G711u, G711a, GSM, iLBC, G726, Speex.
Soporta cancelación de eco, ajuste automático de volúmen de dispositivos.
Entre otras muchas características que lo hacen interesante y práctico para su uso en producción.
Su instalación en debian o Ubuntu se puede realizar por paquetes y es necesario instalar las librerías adicionales para no tener problemas de funcionamiento.
Muchos amigos me han preguntado como lanzar llamadas en automático a través de Asterisk, aparte que es muy común que en diversos foros salgan este tipo de preguntas. Por ello aquí posteo un código muy simple hecho en PHP que permite marcar a un número para luego enlazarlo a un AGI, Un grupo de marcación, grupo de extensiones, IVR, etc.,
<? #Direccion IP del Servidor de Asterisk Manager $strHost="localhost"; #Usuario dado de alta en el Asterisk Manager definido en /etc/asterisk/manager.conf o /etc/asterisk/manager_custom.conf $strUser="cloudvoox"; #Password del usuario del Asterisk Manager definido en /etc/asterisk/manager.conf o /etc/asterisk/manager_custom.conf $strSecret="cloudvoox"; #especificamos el contexto $strContext="from-internal"; #indicamos el tiempo de espera de la marcación $strWaitTime=45; #La prioridad para colocar la llamada $strPriority=1; #maximo de reintentos $strMaxRetry="2"; #Extensión a dónde mandaremos la llamada realizada, previamente debemos definirla extension en /etc/asterisk/extensions_custom.conf, esta puede ser un AGI, un Grupo de marcación, IVR, Extension, Cola de llamadas, etc. $number="1997"; #A partir de aquí podemos crear un ciclo que lea diversos números a marcar, por ejemplo podría ser un mysql_fetch_array que nos obtenga los numeros a marcar y sustituirlos en el número de abajo #Aqui podemos enlazar los destinatarios externos ya sean extensiones internas SIP o IAX, o también pueden ser números de la PSTN que salgamos mediante IAX2, SIP, Zaptel o DAHDI #En este caso estoy llamando a traves de voipjet al número de la ciudad de México 11689818 (+525511689818) $strChannel="IAX2/voipjet/011525511689818"; if($strChannel!=""): $errno=0 ; $errstr=0 ; $strCallerId=" WebCall<$number>"; $oSocket=fsockopen($strHost,5038,$errno,$errstr,20); if(!$oSocket){ echo"$errstr ($errno)<br>\n"; }else{
Ahí previamente debemos tener creada la extensión 1997 en el plan de marcación de asterisk, esa extensión es a dónde vamos a mandar las llamadas contestadas, en este caso por ejemplo se puede crear en /etc/asterisk/extensions_custom.conf en caso de que se use freepbx como lo hacemos a continuación
sudo editor /etc/asterisk/extensions_custom.conf
#Y agregamos lo siguiente o editamos en caso de que ya exista
[from-internal-custom] include=>asterisk-calls [asterisk-calls]
exten =>1997,1,Answer
exten =>1997,n,SetMusicOnHold(Publicidad)
exten =>1997,n,MusicOnHold()
exten =>1997,n,Hangup #guardamos el archivo y reiniciamos el plan de marcación en la consola de asterisk
sudo asterisk -rvvv
dialplan reload
Básicamente lo que hicimos en el plan de marcación es poner la música de fondo llamada publicidad, que previamente debimos haberla creada, aquí también puede ser un AGI, o marcar a un grupo de extensiones, IVR, etc.
Con esto fácilmente podemos subir una lista de números a marcar, para que enseguida ejecutar el script y Asterisk les llame para luego enlazar las llamadas a la extensión 1997 dónde podemos tener cualquier aplicación como puede ser un AGI que haga una encuesta por ejemplo
También podemos crear un script que genere hilos de llamadas dependiendo del número de canales de voz disponibles en nuestro conmutador de Voz sobre IP.
El Software enfocado para empresas tales como los ERP (Enterprise Resource Planning) y los CRM (Customer Relationship Management) tienden a ser únicos. Esto debido a que cada empresa los utiliza de diversa manera, por lo que cada Software ERP y CRM deben ser personalizados de acuerdo a las necesidades de cada organización. Tradicionalmente esto implica desarrollar un Sistema ERP o CRM a la medica para los requerimientos específicos de una organización o la otra opción, comprar un Sistema ERP o CRM existente y personalizarlo.
Ambas opciones tienen significantes detalles.
Software hecho en casa
Un desarrollo hecho en casa generalmente tiende a iniciar desde cero, partiendo de la filosofía de "Nosotros sabemos que necesitamos, asi que hagámoslo", "Hacerlo" en desarrollo de software podría resultar caro y riesgoso, y la mayoría de los proyectos de software hechos en casa últimamente fallan en el conocimiento de las necesidades del usuario.
Pero el más grande riesgo actualmente es "saber lo que tu necesitas", incluso si el desarrollo conoce las necesidades al tiempo que este es desarrollado, ya que quizá un software hecho en casa pueda no seguir las mejores prácticas de la industria o no anticipar los planes a largo plazo de la organización.
Tanto la tecnología y los negocios necesitan cambios, asi que la organización tristetemente tendrá que mantener los cambios del software y cubrir los costos que implica. Estudios muestran que los costos de mantenimiento a largo plazo de un software propio incluso son tres o cuatro veces más del costo original del software.
Software Comercial
Comprar un ERP o CRM Comercial de algún proveedor presenta un conjunto de detalles diferentes. Al principio esta opción aparentemente debería eliminar los riesgos de un software hecho a la medida, pues de inicio obtiene las mejores prácticas de la industria y lo más último en tecnología, hace un lado los costos del desarrollo inicial el software a traves de los distribuidores y hace al distribuidor responsable por el mantenimiento a largo plazao del software.
Aunque en realidad un ERP o CRM comercial podría ser más caro y difícil de personalizar, aparte que podría dejar al usuario vulnerable a depender de un solo proveedor.
El software comercial requiere de un licenciamiento, incluso antes de que la organización sepa si realmente el software cumple con sus necesidades.
El software comercial está basado en la visión del proveedor de lo que podría ser una compañía "ideal", si esa visión se desvía de la realidad del usuario, entonces ahí tenemos una limitacion para cambiar el software esto porque no se tiene acceso al código fuente del software.
Finalmente, si el proveedor es comprado por otra compañía, se sale del negocio o simplemente descontinúa el producto, entonces el usuario se quedará sin algún tipo de soporte para sus aplicaciones.
La alternativa Open Source Code (Software de Código Fuente Abierto)
El Código Abierto brinda una alternativa la cuál direcciona muchos de los problemas clave tanto del software comercial como de software hecho a la medida. De inicio el Open Source ofrece al usuario un código base disponible libremente como punto de inicio. El usuario puede obtenerlo gratis y libremente para probarlo, y saber si cumple con sus requerimientos, sin correr el riesgo de pagar el costo de licenciamiento de un software que podría no funcionarle.
Si ninguna modificación es requerida, el software de código abierto puede ser implementado rápidamente tal como los software comerciales empaquetados.
Si es requerida la adecuación del software, el usuario ya tiene un avance significativo con un existente código base desarrollado, por lo tanto las empresas pueden continuar con la personalización del software a traves de su propio personal o hacer uso de la experiencia de la comunidad de desarrolladores.
La ventaja de un proyecto código abierto es que trae el conocimiento de los requerimientos del negocio debido a la contribución de muchas organizaciones, reduciendo significativamente los típicos riesgos de un software hecho a la medida.
La comunidad de código abierto también ofrece múltiples usuarios y desarrolladores que colaboran en el desarrollaro y pruebas de su software.
El resultado neto es, mejor software en menos tiempo.
A largo plazo el software de código abierto ofrece al usuario el control de un software personalizado y también de recursos externos que solo están disponibles en software comerciales.
Con el código fuente en la mano, el usuario puede decidir sobre un soporte y actualización futura.
Aquí nadie descontinuará el software, ya que el software comparte las mismas raíces del software libre, por lo que las organizaciones pueden obtener soporte y actualizaciones de la comunidad open source o adquirir soporte profesional de múltiples distribuidores en la comunidad.
Asi que el riesgo de llegar a ser abandonado debido a la perdida del distribuidor o de un empleado llave son reducidos significativamente con el código abierto.
Comentarios Recientes