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..
Buscando alternativas a la conexión de "Infiernitum" y otros proveedores que hay aquí en México y que dejan mucho que desear, encontré por casualidad el servicio de Tangennte.
Lo interesante de este nuevo proveedor de Internet es que ofrece servicios de banda Ancha de 3 Mbits de bajada con 2 Mbits de Subida, un servicio que pocas veces podemos ver con ese ancho de banda de subida, pero lo más interesante es su precio $391.00 mensuales ya con IVA incluído y otros impuestos.
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)
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.
Generalmente quienes hacen esto son phreakers quienes violan sistemas IP inseguros para hacer llamadas a paises dónde los costos por minuto son muy altos como por ejemplo IRAN, COREA DEL NORTE, CUBA, LIBERIA, AFGANISTAN, etc., paises que generalmente tienen el bloqueo y embargo económico de los Estados Unidos.
Por lo que se me ocurre a primera instancia para medio asegurar un sistema de Voz sobre IP mediante los siguiente sencillos y básicos pasos:
La primera es no poner un * en una IP Pública o DMZ.
Segunda en caso de que se quiera tener extensiones remotas, es usar una VPN ya sea como un cliente VPN o si es un teléfono IP alguno que soporte PPTP.
Tercera es pedir password en la marcación a números del extranjero
La cuarta que debería ser la primera nunca usar planes de marcación XX.
La quinta usar iptables para restringir accesos de IP desconocidas a nuestro servidor.
La sexta en lo posible usar IP Fijas en vez de dinámicas.
Séptima poner en cron una aplicación que mida el consumo de alguna extensión y lanzar mediante AMI una alerta a un teléfono.
Octava que debería ser la primera también nunca usar user 101 password 101.
La novena no se me ocurren más ahorita, ¿ Más recomendaciones ?.
Instalar un Asterisk no es solo bajar elastix e instalarlo, hay que llevar a cabo medidas que ayuden a hacer un sistema confiable y seguro para nuestros clientes.
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.
En OaxRom Mobile Computing hemos estado trabajando en diversos proyectos últimamente y uno de ellos ha sido nuestro propio sistema de cotizaciones el cuál ya está terminado y solo le hemos estado agregando cada vez más funcionalidades para la parte de administración, pero la parte del cotizador para los usuarios externos ya está terminada en su primera versión.
Ahora puedes cotizar directamente desde nuestro sitio web http://www.oaxrom.com los productos y servicios que ofrecemos como nuestras soluciones de Conmutador de voz sobre IP CloudVoox, Teléfonos VoIP, Tarjetas Sangoma para puertos FXO & FXS, Telulares IP GSM & Gateways GSM Analogicos, Adaptadores Telefónicos Analógicos(ATAs) Linksys & Atcom, Porteros, Equipos para redes inalámbricas, Software para Call Centers, Tarificadores, etc.
Posteriormente publicaremos la versión 2.0 del cotizador en AJAX.
Por ahora hemos estado publicando los productos más comunes, pero poco a poco iremos capturando la información de toda la gama de productos y servicios que ofrecemos, si deseas conocer nuestros productos o servicios date una vuelta en nuestro cotizador y mándanos un feedback de que te pareció la interfaz.
Desarrollando para un cliente una solución basada en J2ME que es java para dispositivos móviles como teléfonos celulares y smartphones, anduve buscando soluciones de lectores de códigos de barras con soporte bluetooth asi como también adaptadores de códigos de barras para celulares, encontré ambas opciones pero nada baratas, la más económica estaba en $500.00 US Dlls.
Pero buscando y buscando encontré una solución que parece la más interesante a un precio bastante atractivo, el equipo mencionado es el Adaptador Inalámbrico para Lectores de Códigos de Barras, en este caso este adaptador se conecta al puerto del lector de código de barras y de ahí transmite la información vía bluetooth a cualquier dispositivo móvil que soporte bluetooth como puede ser un teléfono celular.
Aquí muestro el modelo SL-BA10 que es para lectores Symbol como puede ser el LS1203. LS2208, LS1902
Este adaptador cuesta menos de $100.00 US Dlls más el costo del lector de código de barras que puede ser el LS1203 que puede costar unos $100.00 US Dlls, por lo que podríamos tener un lector de código de barras inalámbrico bluetooth con valor menor a $200.00 US Dlls.
Este adaptador es específico para Symbol Motorola, pero también los hay para Intermec, Datalogic y Zebex que son otras marcas de lectores de códigos de barras existentes en el mercado.
Esto parece ser una solución económica para la aplicación móvil que estamos desarrollando que es un sistema de pedidos desarrollado en J2ME, por lo que podría integrarse con algún teléfono que soporte Java y Bluetooth de los cuáles cuestan alrededor de $100.00 US Dlls, sin duda una opción económica como Para toma de Pedidos e Inventarios en Batch y quizá usando GPRS hasta en línea mediante web services.
Al parecer Panasonic está aplicando está máxima, ya que Panasonic ha negociado con Digium los creadores de Asterisk para homologar sus terminales SIP como equipos compatibles con Asterisk PBX, esto ya que Panasonic uno de los grandes fabricantes de conmutadores analógicos al parecer se está dando cuenta que si no se mueve a las nuevas olas tecnológicas desaparece, por lo que ha decidido sacar nuevas terminales SIP aprovechando el boom que esta teniendo Asterisk y su tecnología PBX basada en código abierto, por lo que también Panasonic al igual que otras empresas que ya lo están haciendo tal como Siemens quieren aprovechar el nuevo mercado de las Open Communications.
Aquí la pronunciación de Panasonic al respecto.
“We are excited to work with Digium and their fast growing base of customers using open source, standards-based business phone systems,” said Kim Murtagh, Director, Panasonic System Networks Company of America. “As the market leader, Panasonic is committed to delivering innovative features and superior performance.”
“The Digium and Panasonic interoperability partnership and certification of IP phones opens new opportunities for Digium channel partners and integrators,” said Digium’s David Hardy, Director of Business Development. “The Panasonic global footprint and commitment to SIP telephony excellence creates exciting sales opportunities for our partner community and for businesses using Asterisk.”
Comentarios Recientes