OaxRom Admin

Explicando como conectar un dspositivo móvil como extensión remota de un conmutador por red privada virtual.

Hace tiempo nos contactaron para implementar un conmutador IP a una entidad religiosa, su premura, fue que ofrecen múltiples servicios religiosos(bodas, VX años, confirmaciones, primeras comunicaciones, confesiones, recepción de donaciones, etc.) y la gran cantidad de demanda los obligaba a tener un sistema que proveyera información de forma automática vía telefónica a sus clientes, perdón, digo feligreses. En este aspecto ha funcionado bien.

Hace unos días me contactaron de nuevo, ya que esa parroquia tiene varios sacerdotes, todos ellos de origen extranjero, y les urgía que el sistema les permitiera desde su país de origen hacer y recibir llamadas como si estuvieran en la misma parroquia, esto ya que son de un país donde tienen las más altas tarifas internacionales del mundo, como pista en ese país producen el mejor cedro del mundo. El detalle es que no querían desembolsar ni un peso por implementarles este servicio, por lo que no me quedó más que ofrecerles un servicio de configuración remota y mandarles los pasos de configuración de sus equipos móviles.

Así que después de implementar la seguridad para encriptar la red a través de un túnel seguro y tratar de evitar que algún hacker se les colara a su red, les mandé el siguiente tutorial, el cuál pongo como explicación general por si alguien dedicado al ramo le interesa o también para recibir recomendaciones sobre como explicarle tecnología a personas que tienen nulo conocimiento al respecto.

Traté de ser lo menos tecnófilo posible, aunque eso es imposible al tratar de explicar conectividad de redes.


***********
Inicio del correo.
***********

Buen día.

Me comunico para hacerle llegar el procedimiento de configuración del smartphone Android o iPhone para conectar una extensión remotamente.

El procedimiento se divide en dos fases:
Conexión segura de red
Configuración de extensión en softphone.

Dar en ver más, para continuar con el post completo.

Restaurando el blog con post de hace 10 años

Después de casi 10 años en funcionamiento, a principios de este 2016 se me cayó la página web, y por muchas situaciones no me di el tiempo de volver a levantar el sitio, por lo que después de casi 9 meses fuera de línea, vuelvo a montar el blog de OaxRom.

Aunque esto no fue tan fácil, ya que hace 10 años el blog estuvo montado sobre un Jaws-Project muy básico, y ahora intentando montar la última versión, es completamente diferente su funcionalidad y esquema de base de datos, por lo que me tomó unas líneas de código adicionales poder incorporar la información de hace tiempo con la nueva versión de Jaws.

Para importar la información, básicamente tuve que pasar las tablas jaws_blog_category, jaws_blog_entrycat y jaws_blog. No importe más información como comentario, vistas, etc.

La importación de los posts lo hice a tráves del siguiente script:
 
<?php
$oaxrom  = mysql_connect("localhost", "user", "password");
 mysql_select_db("blogDB", $oaxrom);
 
$temp  = mysql_connect("localhost", "user", "password", true);
mysql_select_db("antiguoBlog", $temp);
 
$mysql = "select * from jaws_blog; ";
$_result = mysql_query($mysql, $temp);
$post=0;
while($_info = mysql_fetch_array($_result)){
     foreach(array_keys($_info) as $field ){
                $_info[$field]=addslashes($_info[$field]);
     }
     $query = "insert into jaws_blog(id,user_id,title,summary,text,image,comments,clicks,allow_comments,trackbacks,fast_url,meta_keywords,meta_description,categories,published,publishtime,createtime,updatetime)
                    values( \"$_info[id]\",\"$_info[user_id]\",\"$_info[title]\",\"$_info[summary]\",\"$_info[text]\",\"$_info[image]\",\"$_info[comments]\",\"$_info[clicks]\",\"$_info[allow_comments]\",\"$_info[trackbacks]\",\"$_info[fast_url]\",\"$_info[meta_keywords]\",\"$_info[meta_description]\",\"$_info[categories]\",\"$_info[published]\",\"$_info[publishtime]\",\"$_info[createtime]\",\"$_info[updatetime]\"); "
;
    $error = mysql_query($query, $oaxrom);
        echo $post++.":::$error\n";
}
 
?>
 

Voces de Mbrola y Asterisk

Una de las ventajas del uso de la plataforma de comunicaciones Asterisk PBX es el desarrollo de aplicaciones que permitan interactuar con bases de datos para leer información con base a una consulta introducida por voz o desde el teclado de un teléfono y regresar la información hablada a través de un robot.


Actualmente existen múltiples sintetizadores de voz comerciales y open source, en el lado open source esta festival el cuál tiene voces en diferentes idiomas aunque se distingue la calidad robotizada de la voz, por otra parte existen versiones comerciales como son LumenVox, Cepstral, Loquendo, verbio, etc., que tienen voces en diversos idiomas aunque el costo de la licencia por canal de voz va de los 100 dólares en adelante, aunque dependiendo del proyecto a la larga puede ser una cifra muy bien justificada y asequible.


En el lado Open Source existen unas voces con una calidad muy aceptable llamada MBROLA, la cual incluye voces en español, inglés, italiano, francés, etc.


Actualmente existen versiones en inglés de MBROLA que pueden ser usadas junto con la plataforma de festival y a través de esta ser implementadas en Asterisk PBX para dar respuestas e voz automatizadas con una voz aceptable.


Aunque el desarrollo de los wrappers de MBROLA son solo para voces en Inglés, esto no impide que se puedan usar otras voces desde las famosas AGIs de Asterisk y desarrollar aplicaciones de voz.


En este caso al no tener los wrappers de voces en español implementamos un pequeño código que nos permitió desde cualquier AGI de Asterisk PBX usar las voces en español de MBROLA.


Primero se instaló la versión de MBROLA, las voces en español de mbrola, la utilería espeak y ffmpeg.


Actualmente se puede conseguir MBROLA y los paquetes de voz en español de mbrola-es1, mbrola-es2, mbrola-mx2 y mbrola-vz1 en internet para diversas distribuciones de Linux.


espeak permite generar un archivo de audio con base a un texto a través de mbrola


ffmpeg permite convertir ese archivo de audio a un formato legible por Asterisk PBX: WAV, PCM 16 Bits 8000 Hertz Mono.


Este es un codigo ejemplo de como usar mbrola, espeak, ffmpeg y phpagi en un AGI para Asterisk con PHP.
 
//generamos un nombre único temporal para el archivo de audio a generar
$archivo = md5(date("ymdhis"));
//desde el AGI llamamos a una aplicación externa que convierte un texto a un audio en el archivo indicado.
 exec("espeak -s 160 -p 60 -v mb-vz1 \"$TextoAConvertirAVoz\" -w /var/lib/asterisk/sounds/custom/$archivo.wav");
//Con ffmpeg convertimos el archivo al formato WAV permitido por Asterisk PBX
exec(" ffmpeg -i /var/lib/asterisk/sounds/custom/$archivo.wav -ar 8000 -ac 1 -ab 64  /var/lib/asterisk/sounds/custom/8000_$archivo.wav -ar 8000 -ac 1 -ab 64 -f mulaw ");
//Ejecutamos el comando background de Asterisk a través de la función Exec de phpagi y reproducimos el archivo generado
$agi->exec('background', "custom/8000_$archivo");
//borramos los archivos temporales de audio  generados
 


Y con esto podemos tener una aplicación de texto a voz usando el TTS de MBROLA, con esto tenemos voces con mejor calidad que las voces de Festival sin pagar licencias por x canales de voz requeridos.


Pueden obtener más voces para MBROLA en la siguiente URL:



http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html

Ghost 4 Linux La herramienta para clonar discos bit por bit

En muchas ocasiones me ha tocado tener que respaldar discos duros completos de servidores, esto ya que por cuestión de uso durante años, los discos mecánicos llegan a caducar su vida útil, por lo que antes de sufrir algún desastre es siempre recomendable tener un respaldo del sistema, y para esto la mejor opción rápida y económica es clonar un disco duro en perfecto funcionamiento.


En este caso la herramienta que prefiero siempre usar es G4L Ghost For Linux, mucho más práctica que Clonezilla y que tiene la ventaja de clonar bit por bit el disco duro, por lo que no importa el tipo de partición que use el disco duro


Pueden descargar este ISO desde la siguiente URL:
https://sourceforge.net/projects/g4l/


Solo queman el *.iso a un CD, conectan el disco duro a respaldar y el disco duro destino, arrancan con el CD de G4L, tienen cuidado al seleccionar el disco origen, seleccionan el disco destino e inician la clonación.


Rápido y sencillo.

Configurar servidor NTP para redes locales

Hace unos días migramos más de 60 teléfonos IP Cisco 7940, 7911 y 7960 de firmware SCCP a firmware SIP para que funcionaran con Asterisk.

El detalle es que estos teléfonos estaban en una VLAN que no tenía conexión a internet, por lo que no podían conectarse a servidores NTP externos, por lo que hacía falta montar un servidor NTP para que le asignara la hora automáticamente a los teléfonos.

En Cent OS solo se instaló NTP
 
yum -y install ntp
 
 
Se configuró el archivo /etc/ntp.conf
 
 
restrict default nomodify notrap noquery
restrict -6 default nomodify notrap noquery
 
restrict 127.0.0.1
restrict -6 ::1
 
restrict 192.168.200.0 mask 255.255.255.0 nomodify notrap
 
fudge   127.127.1.0 stratum 10
server  127.127.1.0
 
driftfile /var/lib/ntp/drift
broadcastdelay  0.008
 
keys            /etc/ntp/keys
 
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst
 
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 2.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 3.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
 
broadcastclient
 
Con esto solo bastó reiniciar el proceso
 
/etc/init.d/ntpd restart
 
Obviamente el segmento de red local 192.168.200.0 tenía habikitado cualquier puerto TCP/UDP en el firewall. Y desde una máquina cliente se probó la sincronización del reloj con el comando:
 
ntpdate -u 192.168.200.252
 
Con esto ya quedó funcionando un servidor NTP interno para proporcionar la hora automática a los teléfonos IP Cisco.

NMON una excelente utilería para monitorear el uso del CPU

Hace unos días necesité identificar el uso del CPU de un servidor ya que tenía algunas fallas y necesitaba ir descartando errores, busqué en google diversas herramientas y probé algunas, pero la que me pareció amena fue NMON.


Había intentando instalarlas desde YUM, pero no estaba en los repositorios, por lo que la bajé directamente desde su directorio web:


http://pkgs.repoforge.org/nmon/


En este caso bajé la versión para CentOS 5.9 ya que tenía problemas con un Elastix 2.5


http://pkgs.repoforge.org/nmon/nmon-14f-1.el5.rf.i386.rpm


Es bastante útil y permite obtener información en tiempo real del servidor. Vale la pena instalarla.

Codigo para ejercicio en Arduino de "Piano" Electrónico inalámbrico.

Este es el código de un ejercicio en Arduino que intenta simular un piano electrónico inalámbrico.


El proyecto trata que a través de un sensor ultrasónico calcular la distancia a la que se encuentre mi mano del sensor, con base a la distancia entre el sensor ultrasónico y mi mano calcula el tono y semitono correspondiente tomando como base La4 a 432 hertz, a mayor distancia más agudo el tono y a menor distancia más grave el tono. El tono será emitido a través de un speaker sencillo conectado al Arduino.



El ejercicio también intenta simular un estado sinestésico, la sinestesia es la interferencia de varios sentidos al percibir un olor, color, sonido, etc., de tal forma que la mezcla de los sentidos genera diversas percepciones en los individuos que poseen esta cualidad. En este caso el ejercicio tratará que al momento de emitir un sonido, se generará un color diferente por cada tono, este color se genera con base a la frecuencia del tono y la frecuencia del color será codificada con en hexadecimal combinando los colores de un Led RGB.


Código

 
 
 
int redPin = 10;
int greenPin = 11;
int bluePin = 12;
 
int melody[] = {  432, 457, 484 ,513, 544, 576,  610, 647, 685, 726, 769, 815};
int RGB[][12] = {
          {255, 255, 139,  00,  00,  00,  00,  00, 153, 255, 255,  255},
          {00,   00,  00,  00, 128, 255, 255, 255, 255, 255, 127,  00},
          {128, 255, 255, 255, 255, 255, 128,  00,  00,  00,  00,  00}
        };
int nota = 0;
int color = 0;  
 
const int pingPin = 8;
const int pingEcho = 9;
 
void setup() {
    pinMode(pingEcho, INPUT);
    pinMode(pingPin, OUTPUT);
     
    pinMode(redPin, OUTPUT);
    pinMode(greenPin, OUTPUT);
    pinMode(bluePin, OUTPUT);
 
}
 
void loop()
{
 
  long duration, inches, cm;
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);
 
  duration = pulseIn(pingEcho, HIGH);
  cm = microsecondsToCentimeters(duration);
 
  if(cm >=1 && cm<=80){
    nota = map(cm,1,80,0,11);
    color =map(cm,1,80,11,0);
    tone(2, melody[nota],250);
   
    analogWrite(redPin, RGB[0][color]);
    analogWrite(greenPin, RGB[1][color]);
    analogWrite(bluePin, RGB[2][color]);
       
    delay(100);
  }else{
    noTone(2);
    analogWrite(redPin, 0);
    analogWrite(greenPin, 0);
    analogWrite(bluePin, 0);
 
  }
   
}  
 
long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}
 


Esquema de conexión de componentes electrónicos en Arduino
  • Speaker: Pin 2 ; GND
  • Sensor Ultrasónico: 5v; Echo-Pin 9; Trigger- Pin 8; GND;
  • Led RGB: Red - Resistencia 220 - Pin 10; Green - Resistencia 220 - Pin 11; Blue - Resistencia 220 -
    Pin 12; Cátodo común - GND.
  • Arduino Nano


    Video demo del proyecto

  • Conmutador IP ¿Cuál elegir?

    Gracias a la tecnología abierta del software de comunicaciones unificadas Asterisk PBX [http://www.digium.com] han salido múltiples appliances de hardware y software que disminuyen el costo de las empresas en cuanto a infraestructura de tecnología y comunicaciones al mismo tiempo brindándoles incluso superando características que antes solo tenían las grandes marcas.


    En la actualidad, en especial en el mercado mexicano, existen diversas opciones basadas en Asterisk PBX que brindan excelentes funciones de comunicaciones para pequeñas, medianas y grandes empresas a una fracción del costo de las grandes marcas extranjeras. Entre las opciones que tenemos en el mercado mexicano comparando las versiones para pequeñas y medianas empresas podemos lista las siguientes :

  • a) MyPBX SOHO Standar [ http://www.yeastar.com/Products/MyPBX-Standard ]
  • b) Xorcom IP XR1000 SOHO [ http://xorcom.com/products/product-catalog/pbx-appliances/soho-ip-pbx-xr1000 ]
  • c) CloudVoox SOHO [ http://www.cloudvoox.com ]
  • d) Elastix MiniUCS [ http://www.elastix.com/portfolio-item/miniucs/ ]


    En el siguiente cuadro comparativo mostramos las principales características de cada una de las plataformas de servidores de comunicaciones basados en Asterisk PBX.


    Tabla Comparativa


    Característica/Marca-Modelo Yeastar MyPBX Xorcom IP SOHO Cloudvoox SOHO Elastix MiniUCS
    Llamadas simultáneas SIP 25 55 60 32
    Puertos FXO/FXS Ninguno, opcional hasta 16 FXO/FXS Ninguno, opcional hasta 16 FXO/FXS Ninguno, opcional hasta 48 FXO/FXS Ninguno, opcional hasta 8 FXO/FXS
    Disco duro SSD NO SI - 16 Gb SI - 120 Gb SI - 16 Gb
    Minutos grabación de llamadas 3,000 8,000 100,000 8, 000
    Correo de Voz SI SI SI SI
    IVRs o Menús interactivos SI SI SI SI
    Colas o ACD SI SI SI SI
    Marcador automático NO SI SI SI
    Robot de voz & marcador automático de mensajes NO SI(costo adicional) SI(costo adicional) NO
    SMS Marketing SI NO SI NO
    Cancelador de eco por software NO SI SI SI
    Interfaz de administración Yeastar GUI FreePBX FreePBX FreePBX
    Extensiones remotas seguras SI( SSIP) SI( VPN & IDS & SSIP) SI( VPN & IDS & SSIP) SI( VPN & IDS & SSIP)
    Soporte E1 SI SI SI SI
    Soporte de desarrollo de terceros AGI & AMI NO SI SI SI
    Voces TTS NO SI SI SI
    Video Conferencia SI SI SI SI
    Audio Conferencia SI SI SI SI
    Salida para voceo externo NO NO SI NO
    Firewall SI SI SI SI
    Fax to email SI SI SI SI
    Música en espera SI SI SI SI
    Multiples proveedores de telefonia SI SI SI SI
    Enrutamiento por costo y límite de llamadas NO NO SI NO
    Monitoreo y Coacheo SI SI SI SI
    Reporte de llamadas SI SI SI SI
    Correo de voz a email NO SI SI SI
    Instalación de software adicional NO SI SI SI
    Energía 12V 120 Volts - 350 Watts 120 Volts - 400 Watts 120 Volts - 14Watts
    Ethernet Gigabit SI SI SI SI
    Hardware Atom 1.8Ghz/RAM 2Gb AMD X4 2.5Ghz/4Gb RAM 1.6Ghz/2GB Ram
    G729 Codec incluido NO SI SI SI
    Costo aproximado
    Soporte profesional en México SI SI SI SI
    Gabinete rackeable SI SI NO SI



    Con esta lista de características principales se puede elegir el mejor appliance por costo beneficio para cada empresa de acuerdo a las necesidades de comunicaciones y presupuesto que dispongan.
  • Jugando con un Arduino y haciendo un dispositivo musical inalámbrico con sensor ultrasónico

    El sábado pásado no tenía mucho que hacer, por lo que intenté emular la frecuencia de 432 Hertz, la cuál se dice produce 12 tonos armónicos. Los humanos tenemos una frecuencia audible entre los 20Hertz y los 20Kilohertz, usé la 4 escala, ya que el espectro visible va de los 380nm hasta los 780nm y la frecuencia visible es muy corta comparada a la audible y se mide en TeraHertz. La idea fue usar un sensor ultrasónico el cuál emite un sonido no audible y calcula el tiempo entre ida y regreso, teniendo como referencia la velocidad del sonido es posible calcular la distancia de un objeto, con esto, dependiendo de la distancia de la mano al sensor, a través de un algoritmo calculaba el tono musical correspondiente incluyendo semitonos, aunque sobre los 432 hertz los tonos son más armónicos que con la escala estándar de 440 hertz, y también calculaba la combinación necesaria de Rojo, Verde y Azul para generar el color adecuado para cada tono musical.


    Aquí el resultado del experimento.

    Protector de descargas para líneas telefónicas

    Con estas lluvias es muy común que haya descargas eléctricas y por ende sitios no protegidos puedan llegar a tener problemas con equipos eléctricos, y esto suele pasar mucho con sistemas de cómputo que llegan a dañarse fuentes de poder en el menor de los casos, motherboards o peor aún discos duros con información no respaldada.


    Pero no solo las descargas eléctricas llegan desde la corriente eléctrica, también estas pueden llegar desde una línea telefónica, más común en líneas telmex que llegan desde cables que vienen de un poste de luz. Ya que en algún momento ese cable puede sufrir una subida de voltaje y llegar a dañar un teléfono o conmutador telefónico.





    Para el caso de conmutadores IP Asterisk PBX sobre la cuál está montada la plataforma CloudVoox PBX, hemos recomendado siempre protectores de líneas para descargas eléctricas, ya que el voltaje de una línea colgada es de 50-60 volts y en llamada es de 6-13 volts, pero una descarga eléctrica puede llegar a incrementar el voltaje y las tarjetas al no tener la circuitería adecuada pueden llegar a dañarse. Por ello siempre es recomendable anteponer entre la línea telefónica y la tarjeta para líneas analógicas: un protector para descargas eléctricas.


    De esta manera se evitaría que las tarjetas para líneas analógicas(Sangoma, Digium, OpenVox, etc.) se lleguen a dañar y así no hacer una nueva inversión de cientos de dólares por un fallo eléctrico, solo se reemplaza el protector y a seguir funcionando.


    Estos protectores de líneas pueden ser para un puerto, dos, cuatro, ocho, diez, doce, dieciséis y veinticuatro puertos. Los de cuatro o más puertos incluyen cartuchos que al llegar a quemarse, solo se reemplazan.


    ¡Definitivamente recomendamos estos protectores!.
    Previous page 1 2 3 4 ... 49 Next page
    487 entries

    Emblems