Hagamos que México crezca..

Prefiere el consumo de lo Hecho en México

Visitantes








Conversación

  • Elvin: Estimado ando muy preocupado me compre el USRP2 y las tarjetas de GSM cuando me entere que no trabaja openbts con usrp2, help me :(  
  • Phylevn: Si claro, hay un software israelí que es gratuito no recuerdo como se llama, solo tienes que compilar asterisk-addons para que también guarde en el CDR el ID de la llamada para asi despues relacionarla con la grabación.  
  • Cesar: Que ta amigo... sobre la pregunta de ligar una extencion a una troncal o hice con customcontext en freepbx.
    solo tengo una duda, hay algun plugin para freepbx para poder monitorear las llamadas grabadas como en elastix?
    gracias.. y saludos  
  • Sergio: Hola!!
    Oie al parecer hay errores en las entradas sobre la Facturacion Electronica del SAT, hace unos dias lei los Post y hoy YA NO PUEDO ENTRAR, me marca que la pagina no se encontro.
    Gracias  
  • Conmutador IP: @Max: Para que tu Tel IP haga y reciba llamadas necesitas configurarlo, si tu teléfono usa el protocolo SIP entonces necesitas configurar usuario, password, dominio o proxy, outbound proxy en algunos casos y puerto que el default es 5060, estos datos te los da el proveedor IP con los que contrates el servicio como puede ser Alestra en México, o callcentric.com en estados unidos por ejemplo  
  • Max: hola tengo una duda, tengo un telefono IP pero nose si se requiere alguna configuracion para que trabaje con el modem de infinitum, es decir que tengo q hacer para que pueda hacer y recibir llamadas con el.
    espero puedas ayudarme  
  • Phylevn: Si lo puedes hacer, busca lo que son los contextos en asterisk.  
  • Cesar: Que tal, si me funciono, solo que curiosamente con no-ip o ddns solo fuinciona cuando son isp diferentes, aquí en Nayarit, Telmex y Megacable, si lo hago solo con Megacable debo poner la ip de la der de Megacable, 10.163.x.x no tengo idea por que solo así funciono... Otra duda, en asterisk se puede hacer que por ejemplo la extensión 500 solo use la troncal 1 y todas las demás extensiones utilizen otra troncal? Esto sin teniendo el mismo plan de marcado en ambas troncales, es decir, poder hacer que una troncal y una extensión estén vinculadas para hacer llamadas.  
  • Angel Reyes: Hey Filein,
    Quiero conversar contigo sobre una oportunidad de negocio. ¿me pasas tu email?
    Saludos.  
  • Comutador IP: @Cesar: Si es posible, solo requieres poner el puerto SIP de tu Conmutador IP Asterisk en una IP Pública, puedes usar DynDNS para este caso junto con DDClient y ya solo el SPA lo apuntas a la IP Pública de tu conmutador IP Asterisk siguiendo los mismos pasos de configuración de siempre. Eso es todo.  

Escribe el código Captcha que estás viendo

Software Libre

  • Script en PHP para organizar archivos por Fecha

    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.

    El script es el siguiente:

    <?php
    $busqueda= "/var/spool/asterisk/monitor/*.wav";
    $directorio= "/var/spool/asterisk/monitor/";
    echo $comando = " ls -l $busqueda | awk    '{print \$6\"#\" \$8}' " ;
    $_result  = shell_exec( $comando );
    $_info = preg_split('[\n]', $_result);
    $count = 0;
    while($count<count($_info)){
            if( isset( $_info[$count] ) and  $_info[$count]!="" ){
                    echo $_info[$count]."\n";
                    $_data = split('#',$_info[$count] );
                    if(count($_data)==2){
                            if( !file_exists("$directorio/$_data[0]")){
                                    exec("mkdir -p $directorio/$_data[0] ");
                            }
                            exec("mv $_data[1] $directorio/$_data[0]/");
                            //echo "mv $_data[1] $directorio/$_data[0]/";
                    }
            }
            $count++;
    }
    ?>
     


    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.. face-smile.png
  • Intercepción de llamadas móviles GSM con Asterisk & OpenBTS

    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:

  • Configurar Zona horaria en Servidores Ubuntu Linux

    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
    sudo mv /etc/localtime /etc/localtime-old.old
    #Crear un enlace dinámico de la zona horaria de México a la zona horaria actual
    sudo ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime
    #Instalar vía apt-get un sincronizador de horario
    sudo apt-get --yes install 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
     
  • Asterisk Click2Dial Plugin para marcar cualquier número desde Firefox

    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.

    Más info en este sitio: https://addons.mozilla.org/en-US/firefox/addon/78238/
  • Curso de Integración de Telefonía de Voz sobre IP con la Plataforma Asterisk PBX sobre Linux.

    Curso de Integración de Telefonía de Voz sobre IP con la Plataforma Asterisk PBX sobre Linux.

    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

    Temario Costos y Fecha para Curso-Asterisk-Basico-Intermedio-Avanzado.pdf

    O contactarnos directamente en http://www.oaxrom.com
  • Resolviendo el problema de unexpected T_GOTO, expecting T_STRING in phpagi.php

    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)
     
  • Convirtiendo archivos de audio en formato AAC a Wav c

    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

    sudo apt-get --yes install faad
     
    Y posteriormente convertir los archivos

    faad  archivo.aac -o archivo.wav
     
  • Twinkle un práctico y funcional Softphone SIP para Linux.

    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.

    sudo apt-get --yes install twinkle
    sudo apt-get --yes install libcommoncpp2-dev
    sudo apt-get --yes install libccrtp-dev
    sudo apt-get --yes install libccrtp1-1.7-0
    sudo apt-get --yes install libzrtpcpp-1.4-0
    sudo apt-get --yes install libboost-dev
     


    Más info en :

    http://www.twinklephone.com/
  • Como hacer llamadas en automático usando AMI y el comando originate en Asterisk PBX

    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 {
                                                                           
                                    fputs($oSocket, "Action: login\r\n");
                                    fputs($oSocket, "Events: off\r\n");
                                    fputs($oSocket, "Username: $strUser\r\n");
                                    fputs($oSocket, "Secret: $strSecret\r\n\r\n");
                                    fputs($oSocket, "Action: originate\r\n");
                                    fputs($oSocket, "Channel: $strChannel\r\n");
                                    fputs($oSocket, "WaitTime: $strWaitTime\r\n");
                                    fputs($oSocket, "CallerId: $strCallerId\r\n");
                                    fputs($oSocket, "Exten: $number\r\n");
                                    fputs($oSocket, "Context: $strContext\r\n");
                                    fputs($oSocket, "Priority: $strPriority\r\n\r\n");
                                    fputs($oSocket, "Action: Logoff\r\n\r\n");
                                    sleep(2);
                                    fclose($oSocket);
                            }
                            if (!isset($_REQUEST['exten'])){
                                    echo "";
                            } else {
                                    echo "$strChannel  enlazando a $number." ;
                            }
                    else :
                            exit() ;
                    endif ;
    ?>
     
    El código anterior es muy fácil de entender, básicamente lo que hace es parametrizar el comando originate del protocolo AMI de Asterisk [ http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Originate ]

    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.
  • Software Comercial vs Software Hecho en Casa vs Software de Codigo Abierto

    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.
Anterior página 1 2 3 4 ... 11 Siguiente página
101 entradas

Estadísticas de visitantes

185876

Emblemas

Energizado por Jaws Project
Soporta RSS2
Energizado por Software Libre
Energizado por Mozila Firefox
Energizado por Ubuntu Linux
Energizado por PHP
Energizado por Apache Web Server
Energizado por MySQL
Energizado por SQLite
atom

¿ Where The Hell Am I ?

Mi Flickr







Aquí Mis Mejores Fotos

Eventos

Encuesta

¿Que medio de comunicación usas más ?

Comentarios Recientes