Search
Accesos Rápidos
OaxRom Admin
Traccar vs OpenGTS: Las opciones Open Source para rastreo vehicular satelital.
Hace unos dÃas un familiar me contactó para solicitarme alguna solución que pudiera rastrear vehÃculos, inicialmente le recomendé a SGPSS, un cliente a quien le desarrollamos una interfaz de telefonÃa para su software de rastreo satelital. Pero, este familiar me pidió que la solución fuera Open Source para que el mismo la hospedará, para esto aproveché un tiempo libre y busqué información al respecto, revisé varias soluciones open source de rastreo satelital y las dos que me convencieron fueron Traccar y OpenGTS.
Traccar[http://www.traccar.org
] es un software desarrollado en Java que funciona en modo cliente/servidor. Se instala en un servidor Windows/Linux/MacOSX y los clientes pueden ser smartphones o dispositivos GPS[https://www.traccar.org/devices/
] para vehÃculos, incluso hay versiones desarrolladas con Arduino para vehÃculos compatibles con Traccar. Su funcionamiento es muy sencillo, solo basta identificar el IMEI del dispositivo, configurar la IP o dominio del servidor y el puerto de conexión. Con esto en el servidor ya puede monitorear en tiempo real la actividad del vehÃculo o el objeto GPS monitoreado esto usando mapas de OpenStreetMaps o BingMaps.
OpenGTS [http://www.opengts.org/]es otra solución Open Source para rastreo satelital, esta me gustó más, pues tiene más funciones de administración y control. Está desarrollada en la plataforma de Java, de igual manera cliente/servidor y el almacenamiento del tracking se hace en una base de datos MySQL. Su instalación puede realizarse en Winbugs/LINUX/MacOS X/*BSD. Lo interesante de OpenGTS es que en las nuevas versiones se puede hacer una integración con Google Maps, incluso se podrÃan hacer geocercas, georutas y otras georeferencias.
Ambos soportan dispositivos de diversas marcas, lo que la hace soluciones empresariales para integrarse con múltiples empresas.
Traccar[http://www.traccar.org
] es un software desarrollado en Java que funciona en modo cliente/servidor. Se instala en un servidor Windows/Linux/MacOSX y los clientes pueden ser smartphones o dispositivos GPS[https://www.traccar.org/devices/
] para vehÃculos, incluso hay versiones desarrolladas con Arduino para vehÃculos compatibles con Traccar. Su funcionamiento es muy sencillo, solo basta identificar el IMEI del dispositivo, configurar la IP o dominio del servidor y el puerto de conexión. Con esto en el servidor ya puede monitorear en tiempo real la actividad del vehÃculo o el objeto GPS monitoreado esto usando mapas de OpenStreetMaps o BingMaps.
OpenGTS [http://www.opengts.org/]es otra solución Open Source para rastreo satelital, esta me gustó más, pues tiene más funciones de administración y control. Está desarrollada en la plataforma de Java, de igual manera cliente/servidor y el almacenamiento del tracking se hace en una base de datos MySQL. Su instalación puede realizarse en Winbugs/LINUX/MacOS X/*BSD. Lo interesante de OpenGTS es que en las nuevas versiones se puede hacer una integración con Google Maps, incluso se podrÃan hacer geocercas, georutas y otras georeferencias.
Ambos soportan dispositivos de diversas marcas, lo que la hace soluciones empresariales para integrarse con múltiples empresas.
OaxRom Admin
|
Tuesday 22 September 2015 4:59 am
|
Tecnología, Programacion, Software, Dispositivos Móviles, Software Libre, Seguridad, Bases de Datos, OaxRom
|
Read More...
Script en PHP que permite contabilizar los minutos y llamadas de cada troncal a las diversas rutas del conmutador
Este script permite mostrar resumida la información del CDR de Asterisk PBX alojado en la base de datos AsteriskCDRDB, esto para saber el total de llamadas y minutos consumidos por cada troncal del conmutador y tener una consulta rápida del mes en curso.
Este script es el reporte que se usa en el AGI Script que enruta las llamadas con base a los minutos y llamadas disponibles de cada troncal.
Solo basta configurar los datos de la base de datos, el prefijo de marcación en caso de que se use, modificar el valor de las troncales y las rutas en caso de que se use en un paÃs diferente a México.
<form method=GET name=minutos action=tarificador.php>
<select name=ruta >
<option value=locales>Locales</option>
<option value=nacionales>Nacionales</option>
<option value=internacionales>Internacionales</option>
<option value=celulares044>Celulares 044</option>
<option value=celulares045>Celulares 045</option>
<option value=01800>01800</option>
</select>
<input type=submit value=Listar name=listar>
</form>
<?php
$conexion = conectaDB("SERVIDORMYSQL", "USUARIO", "PASSWORD", "asteriskcdrdb");
//Si sus troncales de salida usan un prefijo, hacer los ajustes en el código para la consulta en la base de datos.
$prefijo = "";
//Arreglo que identifica las troncales disponibles en el servidor Asterisk PBX, la llave es la identificación de la troncal y el valor corresponde al canal o canales empleado por la troncal
$_troncales = array(
"Troncal Digital E1"=>"DAHDI/[0-9]-|DAHDI/1[0-9]-|DAHDI/2[0-2]-",
"Linea Analogica 1"=>"DAHDI/32",
"Linea 5587654321"=>"DAHDI/33",
"Linea Celular TelCel"=>"DAHDI/34",
"5598765431"=>"DAHDI/35");
$resultado = "<tr><td>troncal/minutos</td> <td>Llamadas</td> <td>Minutos</td> </tr> ";
switch($_GET[ruta]){
case "locales":
//Numeros locales fijos en México, D.F. son de 8 dÃgitos
$condicion_troncal = " char_length(dst)=(8+char_length(prefijo)) ";
break;
case "nacionales":
//Numeros nacionales fijos en México son de 12 dÃgitos empezando con 01 o de 10 dÃgitos sin el 01
$condicion_troncal = " (char_length(dst)=( 12+char_length(prefijo) ) or char_length(dst)=(10+char_length(prefijo) ) ) ";
break;
case "internacionales":
//Numeros internacionales comienzan con 00
$condicion_troncal = " dst like \"".$prefijo."00%\" ";
break;
case "celulares044":
//Numeros celulares locales comienzan con 044
$condicion_troncal = " dst like \"".$prefijo."044%\" ";
break;
case "celulares045":
//Numeros celulares nacionales comienzan con 045
$condicion_troncal = " dst like \"".$prefijo."045%\" ";
break;
case "01800":
//Numeros gratuitos 01800
$condicion_troncal= " dst like \"".$prefijo."01800%\" ";
break;
}
$count = 0;
foreach( array_keys($_troncales) as $troncal){
$query = " select sum(ceil(billsec/60)), count(*) from cdr where calldate like \"".date("Y-m")."%\" and $condicion_troncal and ".
" disposition=\"ANSWERED\" and dstchannel REGEXP \"".$_troncales["$troncal"]."\"; ";
$count++;
$_info = mysql_query($query);
$_result = mysql_fetch_array($_info);
$resultado .= "<tr><td>$troncal</td> <td>$_result[1]</td> <td>$_result[0]</td> </tr> ";
}
echo " <b>Ruta : $_GET[ruta] </b><br>
<table>
$resultado
</table>";
function conectaDB($server, $user, $passwd, $dbname){
$cursor = mysql_connect($server, $user, $passwd);
return mysql_select_db($dbname, $cursor);
}
?>
Este script es el reporte que se usa en el AGI Script que enruta las llamadas con base a los minutos y llamadas disponibles de cada troncal.
Solo basta configurar los datos de la base de datos, el prefijo de marcación en caso de que se use, modificar el valor de las troncales y las rutas en caso de que se use en un paÃs diferente a México.
<form method=GET name=minutos action=tarificador.php>
<select name=ruta >
<option value=locales>Locales</option>
<option value=nacionales>Nacionales</option>
<option value=internacionales>Internacionales</option>
<option value=celulares044>Celulares 044</option>
<option value=celulares045>Celulares 045</option>
<option value=01800>01800</option>
</select>
<input type=submit value=Listar name=listar>
</form>
<?php
$conexion = conectaDB("SERVIDORMYSQL", "USUARIO", "PASSWORD", "asteriskcdrdb");
//Si sus troncales de salida usan un prefijo, hacer los ajustes en el código para la consulta en la base de datos.
$prefijo = "";
//Arreglo que identifica las troncales disponibles en el servidor Asterisk PBX, la llave es la identificación de la troncal y el valor corresponde al canal o canales empleado por la troncal
$_troncales = array(
"Troncal Digital E1"=>"DAHDI/[0-9]-|DAHDI/1[0-9]-|DAHDI/2[0-2]-",
"Linea Analogica 1"=>"DAHDI/32",
"Linea 5587654321"=>"DAHDI/33",
"Linea Celular TelCel"=>"DAHDI/34",
"5598765431"=>"DAHDI/35");
$resultado = "<tr><td>troncal/minutos</td> <td>Llamadas</td> <td>Minutos</td> </tr> ";
switch($_GET[ruta]){
case "locales":
//Numeros locales fijos en México, D.F. son de 8 dÃgitos
$condicion_troncal = " char_length(dst)=(8+char_length(prefijo)) ";
break;
case "nacionales":
//Numeros nacionales fijos en México son de 12 dÃgitos empezando con 01 o de 10 dÃgitos sin el 01
$condicion_troncal = " (char_length(dst)=( 12+char_length(prefijo) ) or char_length(dst)=(10+char_length(prefijo) ) ) ";
break;
case "internacionales":
//Numeros internacionales comienzan con 00
$condicion_troncal = " dst like \"".$prefijo."00%\" ";
break;
case "celulares044":
//Numeros celulares locales comienzan con 044
$condicion_troncal = " dst like \"".$prefijo."044%\" ";
break;
case "celulares045":
//Numeros celulares nacionales comienzan con 045
$condicion_troncal = " dst like \"".$prefijo."045%\" ";
break;
case "01800":
//Numeros gratuitos 01800
$condicion_troncal= " dst like \"".$prefijo."01800%\" ";
break;
}
$count = 0;
foreach( array_keys($_troncales) as $troncal){
$query = " select sum(ceil(billsec/60)), count(*) from cdr where calldate like \"".date("Y-m")."%\" and $condicion_troncal and ".
" disposition=\"ANSWERED\" and dstchannel REGEXP \"".$_troncales["$troncal"]."\"; ";
$count++;
$_info = mysql_query($query);
$_result = mysql_fetch_array($_info);
$resultado .= "<tr><td>$troncal</td> <td>$_result[1]</td> <td>$_result[0]</td> </tr> ";
}
echo " <b>Ruta : $_GET[ruta] </b><br>
<table>
$resultado
</table>";
function conectaDB($server, $user, $passwd, $dbname){
$cursor = mysql_connect($server, $user, $passwd);
return mysql_select_db($dbname, $cursor);
}
?>
OaxRom Admin
|
Monday 20 July 2015 8:49 am
|
Programacion, Voz Sobre IP, Trabajo y Proyectos, Software Libre, Bases de Datos, OaxRom
|
Read More...
Ruteo avanzado de llamadas en Asterisk con base a minutos y llamadas por troncal.
Hace cuatro años implementamos un servidor IP en una comercializadora, el director de la empresa es muy meticuloso con cada proceso de la empresa y más aún en términos económicos, para esto nos solicitó que configuráramos su conmutador de telefonÃa Asterisk PBX CloudVoox PyMES para que le generara un ahorro lo más que se pudiera en cuanto a las llamadas.
En aquella ocasión el cliente contaba con una troncal digital que disponÃa de 1000 llamadas a números locales, 1000 minutos a celulares 044 y 600 minutos a larga distancia nacional; también contaba con lÃneas analógicas, 6 de ellas contaban con 100 minutos a celulares, llamadas locales ilimitadas y 200 minutos a lada Nacional. La idea era que el conmutador no se pasara de ese lÃmite de llamadas y minutos que disponÃa en cada troncal.
El conmutador se instaló con la Interfaz de FreePBX, el cuál permite dar de altas las troncales y las rutas de salidas, en rutas salientes permite priorizar las lÃneas de salida pero no tiene la facilidad de medir el ruteo por minutos o por llamadas realizadas. Para esto se tomó el script de FreePBX de las rutas salientes que genera en extensions_custom.conf y se adecuó para hacer una condición antes de lanzar una llamada por cada troncal dónde se enviaba a un AGI(tiempo-medido.php) los parámetros de la troncal a validar, los minutos máximos o llamadas lÃmites de la troncal y el prefijo o longitud del número marcado, con esto el script verificaba si esa troncal tenÃa aún minutos o llamadas disponibles por realizar con base al número marcado.
Las rutas a locales, celulares 044 y llamadas a números nacionales se eliminaron de la interfaz gráfica de FreePBX en Outbound Routes y se agregó manualmente el código en extensions_custom.conf.
Por ejemplo suponiendo que tuviéramos: Una troncal con 1 lineas analógica con llamadas ilimitadas a celulares(DAHDI/32)
Otra lÃnea analógica con 100 minutos(DAHDI/34)
Una troncal digital con 300 llamadas disponibles a celulares DAHDI/1 - DAHDI/19
El plan de marcación para una celulares 044 por ejemplo quedarÃa asà :
[from-internal]
..
..
..
include => tiempo-medido
[tiempo-medido]
exten => _044ZXXXXXXXXX,1,Macro(user-callerid,SKIPTTL,)
exten => _044ZXXXXXXXXX,n,Macro(pinsets,1,1)
exten => _044ZXXXXXXXXX,n,Noop(Calling Out Route: Celulares)
exten => _044ZXXXXXXXXX,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _044ZXXXXXXXXX,n,Set(_NODEST=)
exten => _044ZXXXXXXXXX,n,Macro(record-enable,${AMPUSER},OUT,)
exten => _044ZXXXXXXXXX,n,Verbose(Iniciales ${MINUTOS})
exten => _044ZXXXXXXXXX,n,AGI(tiempo-medido.php,DAHDI/32,0,044)
exten => _044ZXXXXXXXXX,n,Verbose(MINUTOS : ${MINUTOS})
exten => _044ZXXXXXXXXX,n,GotoIf($[${MINUTOS} = 1 ]?marcatrunk1:trunk2)
exten => _044ZXXXXXXXXX,n(marcatrunk1),Verbose(MINUTOS : ${MINUTOS})
exten => _044ZXXXXXXXXX,n,Macro(dialout-trunk,1,${EXTEN},)
exten => _044ZXXXXXXXXX,n(trunk2),AGI(tiempo-medido.php,DAHDI/34,100,044)
exten => _044ZXXXXXXXXX,n,GotoIf($[${MINUTOS} = 1 ]?marcatrunk2:trunk3)
exten => _044ZXXXXXXXXX,n(marcatrunk2),Verbose(MINUTOS : ${MINUTOS})
exten => _044ZXXXXXXXXX,n,Macro(dialout-trunk,3,${EXTEN},)
exten => _044ZXXXXXXXXX,n(trunk3),AGI(tiempo-medido.php,"DAHDI/[0-9]-|DAHDI/1[0-9]-",C300,044)
exten => _044ZXXXXXXXXX,n,GotoIf($[${MINUTOS} = 1 ]?marcatrunk3 : outisbusy)
exten => _044ZXXXXXXXXX,n(marcatrunk3),Verbose(MINUTOS : ${MINUTOS})
exten => _044ZXXXXXXXXX,n,Macro(dialout-trunk,6,${EXTEN},)
exten => _044ZXXXXXXXXX,n(outisbusy),Verbose(MINUTOS : ${MINUTOS})
Aquà lo que hace el plan de marcación manual para llamadas a 044 es lo siguiente.
exten => _044ZXXXXXXXXX,n,AGI(tiempo-medido.php,DAHDI/32,0,044): Con esto le pasamos al script AGI tiempo-medido.php que verifique que la troncal DAHDI/32 esté disponible, le pasamos un parámetro 0 en minutos disponibles lo que indica que tiene llamadas ilimitadas y como prefijo 044 para que busque en la base de datos todas las llamadas con status ANSWERED del mes en turno para saber el número de llamadas realizadas o minutos hablados. Si la lÃnea está disponible y hay minutos disponibles, entonces el script tiempo-medido.php asigna a la variable MINUTOS el valor de 1, con lo cuál ejecuta la llamada.
exten => _044ZXXXXXXXXX,n(trunk2),AGI(tiempo-medido.php,DAHDI/34,100,044): En caso de que la troncal anterior estuviera ocupada, se va a esta condición, donde válida que la troncal DAHDI/34 no tenga más de 100 minutos hablados a números con prefijo 044. Si es asà ejecuta la llamada.
exten => _044ZXXXXXXXXX,n(trunk3),AGI(tiempo-medido.php,"DAHDI/[0-9]-|DAHDI/1[0-9]-",C300,044): En caso que la troncal no tenga minutos disponibles o la lÃnea esté ocupada, entonces valida que la troncal digital a números 044 no tenga más de 300 llamadas. Aquà pongo como busqueda de troncal "DAHDI/[0-9]-|DAHDI/1[0-9]-" ya que la troncal puede salir del canal DAHDI/1 hasta el canal DAHDI/19.
El script AGI en PHP que realiza la validación es el siguiente:
#!/usr/bin/php -q
#Sript para enrutar llamadas con base a prioridad de ruta, minutos disponibles o lÃmite de llamadas .
#Powered by OaxRom Mobile Computing[www.oaxrom.com]. Developed by @Phylevn
<?php
require("/var/lib/asterisk/agi-bin/phpagi/phpagi.php");
error_reporting(E_ALL);
$agi = new AGI();
$cid = trim($agi->request['agi_callerid']);
$conexion = conectaDB("SERVIDORMYSQL", "USUARIO", "PASSWORD", "asteriskcdrdb");
$query = "";
$destino = preg_replace("/[^0-9]/","", $argv[3]);
$limiteDestino = preg_replace("/[^0-9]/","", $argv[2]);
$llamadas = "";
if( stripos($argv[2], "C")==0 ){//Busca por numero de llamadas
$llamadas = preg_replace("/[^0-9]/","", $argv[2]);
$query = " select count(*) from cdr where calldate like \"".date("Y-m")."%\" and disposition=\"ANSWERED\" and dstchannel REGEXP \"$argv[1]\" ";
}else{//Busca por cantidad de minutos
$query = " select sum(ceil(billsec/60)) from cdr where calldate like \"".date("Y-m")."%\" and disposition=\"ANSWERED\" and dstchannel REGEXP \"$argv[1]\" ";
}
if(stripos($argv[3], "L")==0 ){//Busca por longitud
$query .=" and length(dst) = $destino ";
}else{//busca por prefijo
$query .=" and dst like \"$destino%\" ";
}
$agi->verbose($query);
$minutos = 0;
$_result = mysql_query($query);
if($_re = mysql_fetch_array($_result)){
if($llamadas!=""){
$agi->verbose( "LLamadas: ".$_re[0]." Limite Llamadas: ".($llamadas) );
}else {
$agi->verbose( "Minutos: ".$_re[0]." Limite Minutos: ".($argv[2]) );
}
if( is_numeric($_re[0]) ){
if($_re[0]<($limiteDestino) || ($limiteDestino==0)){
$minutos = 1;
$agi->verbose(" Disponibles: ". ( $limiteDestino - $_re[0] ) );
}else{
$minutos= 0;
$agi->verbose(" Limite de Minutos/llamadas ND");
}
}else{
$minutos = 1;
$agi->verbose(" Minutos o llamadas disponibles: $limiteDestino" ) ;
}
}
$agi->verbose(" Minutos: $minutos");
$agi->set_variable("MINUTOS", "$minutos");
function conectaDB($server, $user, $passwd, $dbname){
$cursor = mysql_connect($server, $user, $passwd);
return mysql_select_db($dbname, $cursor);
}
?>
En caso de que tengan un contexto diferente a from-internal solo agregar el contexto del plan de marcación al contexto que estén usando, por ejemplo en FreePBX si tuvieran dado de alta un contexto llamado CallCenter en extensions_custom.conf solo necesitarÃan agregar algo asÃ:
[CallCenter-custom]
include => tiempo-medido
Cualquier sugerencia al script son bienvenidas. Esperando este script les ayude a hacer ruteos avanzados y ahorrar algo de dinero en sus cuentas telefónicas.
En aquella ocasión el cliente contaba con una troncal digital que disponÃa de 1000 llamadas a números locales, 1000 minutos a celulares 044 y 600 minutos a larga distancia nacional; también contaba con lÃneas analógicas, 6 de ellas contaban con 100 minutos a celulares, llamadas locales ilimitadas y 200 minutos a lada Nacional. La idea era que el conmutador no se pasara de ese lÃmite de llamadas y minutos que disponÃa en cada troncal.
El conmutador se instaló con la Interfaz de FreePBX, el cuál permite dar de altas las troncales y las rutas de salidas, en rutas salientes permite priorizar las lÃneas de salida pero no tiene la facilidad de medir el ruteo por minutos o por llamadas realizadas. Para esto se tomó el script de FreePBX de las rutas salientes que genera en extensions_custom.conf y se adecuó para hacer una condición antes de lanzar una llamada por cada troncal dónde se enviaba a un AGI(tiempo-medido.php) los parámetros de la troncal a validar, los minutos máximos o llamadas lÃmites de la troncal y el prefijo o longitud del número marcado, con esto el script verificaba si esa troncal tenÃa aún minutos o llamadas disponibles por realizar con base al número marcado.
Las rutas a locales, celulares 044 y llamadas a números nacionales se eliminaron de la interfaz gráfica de FreePBX en Outbound Routes y se agregó manualmente el código en extensions_custom.conf.
Por ejemplo suponiendo que tuviéramos:
[from-internal]
..
..
..
include => tiempo-medido
[tiempo-medido]
exten => _044ZXXXXXXXXX,1,Macro(user-callerid,SKIPTTL,)
exten => _044ZXXXXXXXXX,n,Macro(pinsets,1,1)
exten => _044ZXXXXXXXXX,n,Noop(Calling Out Route: Celulares)
exten => _044ZXXXXXXXXX,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
exten => _044ZXXXXXXXXX,n,Set(_NODEST=)
exten => _044ZXXXXXXXXX,n,Macro(record-enable,${AMPUSER},OUT,)
exten => _044ZXXXXXXXXX,n,Verbose(Iniciales ${MINUTOS})
exten => _044ZXXXXXXXXX,n,AGI(tiempo-medido.php,DAHDI/32,0,044)
exten => _044ZXXXXXXXXX,n,Verbose(MINUTOS : ${MINUTOS})
exten => _044ZXXXXXXXXX,n,GotoIf($[${MINUTOS} = 1 ]?marcatrunk1:trunk2)
exten => _044ZXXXXXXXXX,n(marcatrunk1),Verbose(MINUTOS : ${MINUTOS})
exten => _044ZXXXXXXXXX,n,Macro(dialout-trunk,1,${EXTEN},)
exten => _044ZXXXXXXXXX,n(trunk2),AGI(tiempo-medido.php,DAHDI/34,100,044)
exten => _044ZXXXXXXXXX,n,GotoIf($[${MINUTOS} = 1 ]?marcatrunk2:trunk3)
exten => _044ZXXXXXXXXX,n(marcatrunk2),Verbose(MINUTOS : ${MINUTOS})
exten => _044ZXXXXXXXXX,n,Macro(dialout-trunk,3,${EXTEN},)
exten => _044ZXXXXXXXXX,n(trunk3),AGI(tiempo-medido.php,"DAHDI/[0-9]-|DAHDI/1[0-9]-",C300,044)
exten => _044ZXXXXXXXXX,n,GotoIf($[${MINUTOS} = 1 ]?marcatrunk3 : outisbusy)
exten => _044ZXXXXXXXXX,n(marcatrunk3),Verbose(MINUTOS : ${MINUTOS})
exten => _044ZXXXXXXXXX,n,Macro(dialout-trunk,6,${EXTEN},)
exten => _044ZXXXXXXXXX,n(outisbusy),Verbose(MINUTOS : ${MINUTOS})
Aquà lo que hace el plan de marcación manual para llamadas a 044 es lo siguiente.
exten => _044ZXXXXXXXXX,n,AGI(tiempo-medido.php,DAHDI/32,0,044): Con esto le pasamos al script AGI tiempo-medido.php que verifique que la troncal DAHDI/32 esté disponible, le pasamos un parámetro 0 en minutos disponibles lo que indica que tiene llamadas ilimitadas y como prefijo 044 para que busque en la base de datos todas las llamadas con status ANSWERED del mes en turno para saber el número de llamadas realizadas o minutos hablados. Si la lÃnea está disponible y hay minutos disponibles, entonces el script tiempo-medido.php asigna a la variable MINUTOS el valor de 1, con lo cuál ejecuta la llamada.
exten => _044ZXXXXXXXXX,n(trunk2),AGI(tiempo-medido.php,DAHDI/34,100,044): En caso de que la troncal anterior estuviera ocupada, se va a esta condición, donde válida que la troncal DAHDI/34 no tenga más de 100 minutos hablados a números con prefijo 044. Si es asà ejecuta la llamada.
exten => _044ZXXXXXXXXX,n(trunk3),AGI(tiempo-medido.php,"DAHDI/[0-9]-|DAHDI/1[0-9]-",C300,044): En caso que la troncal no tenga minutos disponibles o la lÃnea esté ocupada, entonces valida que la troncal digital a números 044 no tenga más de 300 llamadas. Aquà pongo como busqueda de troncal "DAHDI/[0-9]-|DAHDI/1[0-9]-" ya que la troncal puede salir del canal DAHDI/1 hasta el canal DAHDI/19.
El script AGI en PHP que realiza la validación es el siguiente:
#!/usr/bin/php -q
#Sript para enrutar llamadas con base a prioridad de ruta, minutos disponibles o lÃmite de llamadas .
#Powered by OaxRom Mobile Computing[www.oaxrom.com]. Developed by @Phylevn
<?php
require("/var/lib/asterisk/agi-bin/phpagi/phpagi.php");
error_reporting(E_ALL);
$agi = new AGI();
$cid = trim($agi->request['agi_callerid']);
$conexion = conectaDB("SERVIDORMYSQL", "USUARIO", "PASSWORD", "asteriskcdrdb");
$query = "";
$destino = preg_replace("/[^0-9]/","", $argv[3]);
$limiteDestino = preg_replace("/[^0-9]/","", $argv[2]);
$llamadas = "";
if( stripos($argv[2], "C")==0 ){//Busca por numero de llamadas
$llamadas = preg_replace("/[^0-9]/","", $argv[2]);
$query = " select count(*) from cdr where calldate like \"".date("Y-m")."%\" and disposition=\"ANSWERED\" and dstchannel REGEXP \"$argv[1]\" ";
}else{//Busca por cantidad de minutos
$query = " select sum(ceil(billsec/60)) from cdr where calldate like \"".date("Y-m")."%\" and disposition=\"ANSWERED\" and dstchannel REGEXP \"$argv[1]\" ";
}
if(stripos($argv[3], "L")==0 ){//Busca por longitud
$query .=" and length(dst) = $destino ";
}else{//busca por prefijo
$query .=" and dst like \"$destino%\" ";
}
$agi->verbose($query);
$minutos = 0;
$_result = mysql_query($query);
if($_re = mysql_fetch_array($_result)){
if($llamadas!=""){
$agi->verbose( "LLamadas: ".$_re[0]." Limite Llamadas: ".($llamadas) );
}else {
$agi->verbose( "Minutos: ".$_re[0]." Limite Minutos: ".($argv[2]) );
}
if( is_numeric($_re[0]) ){
if($_re[0]<($limiteDestino) || ($limiteDestino==0)){
$minutos = 1;
$agi->verbose(" Disponibles: ". ( $limiteDestino - $_re[0] ) );
}else{
$minutos= 0;
$agi->verbose(" Limite de Minutos/llamadas ND");
}
}else{
$minutos = 1;
$agi->verbose(" Minutos o llamadas disponibles: $limiteDestino" ) ;
}
}
$agi->verbose(" Minutos: $minutos");
$agi->set_variable("MINUTOS", "$minutos");
function conectaDB($server, $user, $passwd, $dbname){
$cursor = mysql_connect($server, $user, $passwd);
return mysql_select_db($dbname, $cursor);
}
?>
En caso de que tengan un contexto diferente a from-internal solo agregar el contexto del plan de marcación al contexto que estén usando, por ejemplo en FreePBX si tuvieran dado de alta un contexto llamado CallCenter en extensions_custom.conf solo necesitarÃan agregar algo asÃ:
[CallCenter-custom]
include => tiempo-medido
Cualquier sugerencia al script son bienvenidas. Esperando este script les ayude a hacer ruteos avanzados y ahorrar algo de dinero en sus cuentas telefónicas.
OaxRom Admin
|
Friday 17 July 2015 6:43 am
|
Tecnología, Software, Voz Sobre IP, Software Libre, Bases de Datos, OaxRom
|
Read More...
Script para detectar Pings de extensiones conectadas a servidor IP
Hace unos dÃas un Call Center me contactó para revisar la configuración de red, ya que presentaban problemas en su red como desconexión de llamadas y entre corte de llamadas.
Para descartar problemas, primero se cambió el tipo de tarjeta del servidor de una ethernet con Realtek a una ethernet con Intel Gigabitl.
Pero el problema seguÃa, se descartaba fuera un problema en el servidor, pues haciendo pruebas de ping desde los equipos de cómputo que se conectaban como softphones, veÃa caÃdas de ping hacia el gatewa de red y hacia el servidor de telefonÃa, por lo que descartaba un problema en el funcionamiento del servidor Asterisk.
Mientras veÃa el SIP debug en Asterisk, noté que habÃa pérdidas de paquetes hacia las IPs de las extensiones, algo anormal, pues esto llega a suceder con troncales IP pero no con extensiones a menos que un switch o haya un fallo en la red.
Por lo que hice un script para que detectara las IPs conectadas y les hiciera un ping que tardara máximo un segundo en obtener respuesta. Con esto pude detectar que muchas extensiones no regresaban el ping, algo poco común y sÃntoma de que algo estaba fallando; se revisaron puertos de red cableado, etc., y todo bien; pero al revisar las computadoras nos dimos cuenta que las computadoras tenÃan activado un firewall que llegaba a tirar las conexiones, por lo que se creo una regla en el firewall de cada computadora que permitiera cualquier conexión TCP/UDP del servidor de telefonÃa.
Con esto se arregló el problema y se eliminaron los problemas de caÃdas de llamadas y entrecortes.
Aquà el script que permite detectar las IPs conectadas al Asterisk y hacerles un ping para detectar fallos.
#!/bin/bash
touch pings.txt
asterisk -rx "sip show peers" | gawk '{print $1}' FS="D" | grep 192 > pings.txt
for i in `asterisk -rx "sip show peers" | gawk '{print $2}' FS=" " | grep 192` ; do
ping $i -c 1 -W 1 >> pings.txt
done
Para descartar problemas, primero se cambió el tipo de tarjeta del servidor de una ethernet con Realtek a una ethernet con Intel Gigabitl.
Pero el problema seguÃa, se descartaba fuera un problema en el servidor, pues haciendo pruebas de ping desde los equipos de cómputo que se conectaban como softphones, veÃa caÃdas de ping hacia el gatewa de red y hacia el servidor de telefonÃa, por lo que descartaba un problema en el funcionamiento del servidor Asterisk.
Mientras veÃa el SIP debug en Asterisk, noté que habÃa pérdidas de paquetes hacia las IPs de las extensiones, algo anormal, pues esto llega a suceder con troncales IP pero no con extensiones a menos que un switch o haya un fallo en la red.
Por lo que hice un script para que detectara las IPs conectadas y les hiciera un ping que tardara máximo un segundo en obtener respuesta. Con esto pude detectar que muchas extensiones no regresaban el ping, algo poco común y sÃntoma de que algo estaba fallando; se revisaron puertos de red cableado, etc., y todo bien; pero al revisar las computadoras nos dimos cuenta que las computadoras tenÃan activado un firewall que llegaba a tirar las conexiones, por lo que se creo una regla en el firewall de cada computadora que permitiera cualquier conexión TCP/UDP del servidor de telefonÃa.
Con esto se arregló el problema y se eliminaron los problemas de caÃdas de llamadas y entrecortes.
Aquà el script que permite detectar las IPs conectadas al Asterisk y hacerles un ping para detectar fallos.
#!/bin/bash
touch pings.txt
asterisk -rx "sip show peers" | gawk '{print $1}' FS="D" | grep 192 > pings.txt
for i in `asterisk -rx "sip show peers" | gawk '{print $2}' FS=" " | grep 192` ; do
ping $i -c 1 -W 1 >> pings.txt
done
OaxRom Admin
|
Thursday 25 June 2015 2:04 pm
|
Tecnología, Voz Sobre IP, Trabajo y Proyectos, Software Libre, OaxRom
|
Read More...
De esos momentos en los que la eternidad dura cinco minutos
De esos momentos en los que la eternidad dura cinco minutos.
De esos momentos especiales que se aparecen repentinamente en tu vida, de los que quizá siempre busques o tal vez nunca imaginaste, pero que segundos antes de tenerlos frente a ti no tienes la mÃnima idea que al alzar la vista por fin lo podrás ver.

De esos momentos en que descubres el majestuoso planeta donde vives, la gran madre tierra que a través de sus bellezas nos da pruebas de su amor a nosotros sus hijos rebeldes, a quien no paramos de dañarla dÃa a dÃa, sin embargo como toda madre nunca deja de mostrarnos lo más bello de su esencia a través de sus caricias que nos manifiesta de mil maneras.
De esos momentos que descubres que no eres tan rudo como pensabas, cuando una lágrima de felicidad recorre tu rostro que queda perplejo, atónito, se siente bendecido y descubre la majestuosidad del planeta en el que vives.
De esos momentos donde el espÃritu encuentra la dicha, el alma su gloria, el pensamiento la libertad, el corazón la bondad, la amistad su porqué, el destino su quizá y el hombre su Shangri La.
De esos momentos que siempre permanecerán en tus últimos recuerdos, los primeros que asaltarán cuando te nombren la montaña, los que compararás con otros atardeceres, los que serán tu excusa para regresar a la montaña, los que siempre buscarás en tu regreso a ella, de los que platicarás para convencer a tus amigos para escalarla, de esos momentos que siempre hablarás y muchos imaginarán, de los que pocos te creeran y otros dirán que bajaste la foto de internet.
De esos momentos en que la teorÃa capitalista de la felicidad no aplica, donde nada tiene que ver la oferta ni la demanda, solo las circunstancias, donde tiempo y destino convergen en función de la pasión.
De esos momentos en que tu corazón se detiene pero tu sangre no para de fluir, en que tu pensamiento para pero no deja de imaginar, en que tus pasos descansan pero tu alma no deja de sentir, en que tus ojos siguen abiertos pero no dejan de soñar, en que tu boca calla pero te dice mil palabras de lo que ve, en el que el cuerpo queda inerte pero el espÃritu no para de sentir, en ese momento en que los pies no caminan pero el alma vuela.
De esos momentos que descubres que vivir no es respirar si no que el vivir a veces te deja sin respirar, de esos momentos que descubres que el caminar no es avanzar si no avanzar es detenerse a contemplar, de esos momentos que un atardecer no es preámbulo de obscuridad si no un anuncio de iluminación eterna.
De esos momentos que descubres que la montaña deberÃa ser el octavo arte, la octava maravilla, el octavo pecado capital, la octava nota musical, el octavo dÃa para descubrirla, la octava vida, el octavo color del arcoiris, de esos momentos que descubres que la montaña es un ciclo infinito como la representación del 8.
De esos momentos que te das cuenta que el bautizo no es con agua si no con el aire de la montaña.
De esos momentos donde la mejor obra de arte documentada nunca igualará al pincel que la naturaleza improvisa ante sus selectos espectadores.
De esos momentos en que la eternidad dura apenas cinco minutos.
Autor: @Phylevn
De esos momentos especiales que se aparecen repentinamente en tu vida, de los que quizá siempre busques o tal vez nunca imaginaste, pero que segundos antes de tenerlos frente a ti no tienes la mÃnima idea que al alzar la vista por fin lo podrás ver.

De esos momentos en que descubres el majestuoso planeta donde vives, la gran madre tierra que a través de sus bellezas nos da pruebas de su amor a nosotros sus hijos rebeldes, a quien no paramos de dañarla dÃa a dÃa, sin embargo como toda madre nunca deja de mostrarnos lo más bello de su esencia a través de sus caricias que nos manifiesta de mil maneras.
De esos momentos que descubres que no eres tan rudo como pensabas, cuando una lágrima de felicidad recorre tu rostro que queda perplejo, atónito, se siente bendecido y descubre la majestuosidad del planeta en el que vives.
De esos momentos donde el espÃritu encuentra la dicha, el alma su gloria, el pensamiento la libertad, el corazón la bondad, la amistad su porqué, el destino su quizá y el hombre su Shangri La.
De esos momentos que siempre permanecerán en tus últimos recuerdos, los primeros que asaltarán cuando te nombren la montaña, los que compararás con otros atardeceres, los que serán tu excusa para regresar a la montaña, los que siempre buscarás en tu regreso a ella, de los que platicarás para convencer a tus amigos para escalarla, de esos momentos que siempre hablarás y muchos imaginarán, de los que pocos te creeran y otros dirán que bajaste la foto de internet.
De esos momentos en que la teorÃa capitalista de la felicidad no aplica, donde nada tiene que ver la oferta ni la demanda, solo las circunstancias, donde tiempo y destino convergen en función de la pasión.
De esos momentos en que tu corazón se detiene pero tu sangre no para de fluir, en que tu pensamiento para pero no deja de imaginar, en que tus pasos descansan pero tu alma no deja de sentir, en que tus ojos siguen abiertos pero no dejan de soñar, en que tu boca calla pero te dice mil palabras de lo que ve, en el que el cuerpo queda inerte pero el espÃritu no para de sentir, en ese momento en que los pies no caminan pero el alma vuela.
De esos momentos que descubres que vivir no es respirar si no que el vivir a veces te deja sin respirar, de esos momentos que descubres que el caminar no es avanzar si no avanzar es detenerse a contemplar, de esos momentos que un atardecer no es preámbulo de obscuridad si no un anuncio de iluminación eterna.
De esos momentos que descubres que la montaña deberÃa ser el octavo arte, la octava maravilla, el octavo pecado capital, la octava nota musical, el octavo dÃa para descubrirla, la octava vida, el octavo color del arcoiris, de esos momentos que descubres que la montaña es un ciclo infinito como la representación del 8.
De esos momentos que te das cuenta que el bautizo no es con agua si no con el aire de la montaña.
De esos momentos donde la mejor obra de arte documentada nunca igualará al pincel que la naturaleza improvisa ante sus selectos espectadores.
De esos momentos en que la eternidad dura apenas cinco minutos.
Autor: @Phylevn
OaxRom Admin
|
Thursday 28 May 2015 8:14 pm
|
Cine, Naturaleza, Personal, Viajes, Deportes, Fotografia
|
Read More...
Evita ser una vÃctima del phishing y no te roben tu cuenta bancaria.
¿Cómo funciona el phishing para cometer fraudes bancarios?
Es muy común recibir correos que aparentemente envÃa algún Banco indicándonos que entremos a nuestra cuenta para actualizar datos o para confirmar un depósito recibido(sic).
Actualmente en internet hay mucha información con nuestro nombre y correo electrónico, ya sea por haberla dado de alta en una red social, en el registro de un evento, etc. Esta información la usan los "hackers" para enviar SPAM simulando ser el banco.
Para esto generan un correo personalizado con nuestro nombre y correo electrónico, aunque hay datos que no concuerdan en el correo pero lo pasamos desapercibido, por ejemplo en el número de tarjeta nunca ponen los últimos 4 dÃgitos, para confundir ponen los 4 primeros dÃgitos de la tarjeta, que siempre son los mismos dÃgitos en las tarjetas de cada banco, por ejemplo para Bancomer todas empiezan con 4152, aunque quizá no pase mucho para que los hackers conozcan los últimos 4 dÃgitos y hasta el NIP, pues he visto servicios de internet que hacen cobros bancarios y no encriptan su información, no tardará que algún hacker se les cuele y pondrÃa en jaque a todos sus clientes, como ya ha sucedido con cientos de miles de tarjetas de crédito de clientes de Sony o Home Depot por ejemplo.
El truco del phishing está en que al solicitar la validación del usuario, ellos aparentemente ponen la liga del banco, pero la URL real es un servidor hackeado que ha sido infectado, esto para cualquier informático es fácil de detectar, pero un usuario común lo pasa por alto y sin meditar le da click a la liga, sin saber que está siendo redireccionado a un servidor apócrifo, el cuál presenta toda la interfaz del banco, pero la información ahà introducida como número de tarjeta, clave, dÃgitos del token, NIP, dÃgitos de validación, etc. en realidad están siendo enviados al hacker quien inmediatamente prueba esa información para ver que puede obtener de esa falsificación.
En la foto se alcanza a observar la IP del servidor hackeado y el script al cuál manda la URL supuestamente de Bancomer
OJO el banco no envÃa correos para validación: El banco nunca les enviará un correo para validación de su cuenta o para verificación de sus datos, esta información se hace en el centro de atención telefónica o en la sucursal del banco.
Introducir manualmente las direcciones web en el navegador: Lo que siempre hay que hacer es entrar a la página del banco introduciendo manualmente la dirección URL en la barra de direcciones del navegador.
Siempre usar HTTPS: También siempre usar https, por ejemplo https://www.bancomer.com ya que es un protocolo seguro y encriptado, el cuál usa un certificado de seguridad avalado por una entidad internacional, en caso de que haya un ataque por DNS Spoofing de algún hacker que intente simular el servidor https://www.bancomer.com entonces el mismo navegador alertará que ese certificado es inválido y está siendo suplantado.
No usar cybercafés: Algo altamente riesgoso es usar un cybercafé para revisar correos, cuentas de banco, etc. En dado de usarlos caso por alguna urgencia nunca usar el teclado fÃsico, buscar el teclado virtual y utilizarlo para digitar numeros de cuenta y passwords.
Esta forma de phising es la más fácil y económica de realizar por los hackers y pueden pescar algunos incautos. Existen otras más elaboradas que requieren mayor conocimiento de hacking, mezclando fallos de diversos protocolos, pero tienen un objetivo en especÃfico y logran burlar incluso a usuarios medios incluso "expertos".
Existen muchos tipos para evitar ser infectados por software espÃa, la primera es no ser tan curioso y no darle click a cualquier liga que muestre información "curiosa", el morbo siempre atrae pero también infecta.
Es muy común recibir correos que aparentemente envÃa algún Banco indicándonos que entremos a nuestra cuenta para actualizar datos o para confirmar un depósito recibido(sic).
Actualmente en internet hay mucha información con nuestro nombre y correo electrónico, ya sea por haberla dado de alta en una red social, en el registro de un evento, etc. Esta información la usan los "hackers" para enviar SPAM simulando ser el banco.
Para esto generan un correo personalizado con nuestro nombre y correo electrónico, aunque hay datos que no concuerdan en el correo pero lo pasamos desapercibido, por ejemplo en el número de tarjeta nunca ponen los últimos 4 dÃgitos, para confundir ponen los 4 primeros dÃgitos de la tarjeta, que siempre son los mismos dÃgitos en las tarjetas de cada banco, por ejemplo para Bancomer todas empiezan con 4152, aunque quizá no pase mucho para que los hackers conozcan los últimos 4 dÃgitos y hasta el NIP, pues he visto servicios de internet que hacen cobros bancarios y no encriptan su información, no tardará que algún hacker se les cuele y pondrÃa en jaque a todos sus clientes, como ya ha sucedido con cientos de miles de tarjetas de crédito de clientes de Sony o Home Depot por ejemplo.
El truco del phishing está en que al solicitar la validación del usuario, ellos aparentemente ponen la liga del banco, pero la URL real es un servidor hackeado que ha sido infectado, esto para cualquier informático es fácil de detectar, pero un usuario común lo pasa por alto y sin meditar le da click a la liga, sin saber que está siendo redireccionado a un servidor apócrifo, el cuál presenta toda la interfaz del banco, pero la información ahà introducida como número de tarjeta, clave, dÃgitos del token, NIP, dÃgitos de validación, etc. en realidad están siendo enviados al hacker quien inmediatamente prueba esa información para ver que puede obtener de esa falsificación.
En la foto se alcanza a observar la IP del servidor hackeado y el script al cuál manda la URL supuestamente de Bancomer
OJO el banco no envÃa correos para validación: El banco nunca les enviará un correo para validación de su cuenta o para verificación de sus datos, esta información se hace en el centro de atención telefónica o en la sucursal del banco.
Introducir manualmente las direcciones web en el navegador: Lo que siempre hay que hacer es entrar a la página del banco introduciendo manualmente la dirección URL en la barra de direcciones del navegador.
Siempre usar HTTPS: También siempre usar https, por ejemplo https://www.bancomer.com ya que es un protocolo seguro y encriptado, el cuál usa un certificado de seguridad avalado por una entidad internacional, en caso de que haya un ataque por DNS Spoofing de algún hacker que intente simular el servidor https://www.bancomer.com entonces el mismo navegador alertará que ese certificado es inválido y está siendo suplantado.
No usar cybercafés: Algo altamente riesgoso es usar un cybercafé para revisar correos, cuentas de banco, etc. En dado de usarlos caso por alguna urgencia nunca usar el teclado fÃsico, buscar el teclado virtual y utilizarlo para digitar numeros de cuenta y passwords.
Esta forma de phising es la más fácil y económica de realizar por los hackers y pueden pescar algunos incautos. Existen otras más elaboradas que requieren mayor conocimiento de hacking, mezclando fallos de diversos protocolos, pero tienen un objetivo en especÃfico y logran burlar incluso a usuarios medios incluso "expertos".
Existen muchos tipos para evitar ser infectados por software espÃa, la primera es no ser tan curioso y no darle click a cualquier liga que muestre información "curiosa", el morbo siempre atrae pero también infecta.

OaxRom Admin
|
Tuesday 26 May 2015 11:44 am
|
Tecnología, Dispositivos Móviles, Seguridad, Redes
|
Read More...
Huellas electrónicas en el aire
Hace unos años salió un estudio que indicaba que es posible rastrear a una persona a partir de su ADN, el ADN de un individuo va cambiando conforme a los diversos lugares donde haya estado, de tal forma que se genera una combinación única por cada parte donde haya estado.
Ahora, ha salido una aplicación que puede rastrear las huellas electrónicas que hayas dejado en el aire. La nueva tecnologÃa Bluetooth Smart hace uso del protocolo Bluetooth Low Energy para mantener sincronización con diversos dispositivos, esta tecnologÃa liga el ID del dispositivo la cuál es única en el mundo y va dejando ondas en los 2.4 Ghz en el aire, por lo que en algún momento estás ondas podrÃan captarse a través de un App como RaMBLE y buscar la info en una base de datos para encontrar a quien pertenece esa información. De tal forma que es posible rastrear a una persona con las "huellas electrónicas" que deje en el aire.
Esto es muy peligroso, pues se calcula que en el 2018 el 90% de los dispositivos en el mundo usarán la tecnologÃa BLE. Es peligroso pues si eres famoso, un poderoso empresario, un polÃtico, etc., los hackers podrán buscar algún rastro tuyo y en el menor de los casos quizá tomarte algunas fotos.
https://play.google.com/store/apps/details?id=com.contextis.android.BLEScanner
Ahora, ha salido una aplicación que puede rastrear las huellas electrónicas que hayas dejado en el aire. La nueva tecnologÃa Bluetooth Smart hace uso del protocolo Bluetooth Low Energy para mantener sincronización con diversos dispositivos, esta tecnologÃa liga el ID del dispositivo la cuál es única en el mundo y va dejando ondas en los 2.4 Ghz en el aire, por lo que en algún momento estás ondas podrÃan captarse a través de un App como RaMBLE y buscar la info en una base de datos para encontrar a quien pertenece esa información. De tal forma que es posible rastrear a una persona con las "huellas electrónicas" que deje en el aire.
Esto es muy peligroso, pues se calcula que en el 2018 el 90% de los dispositivos en el mundo usarán la tecnologÃa BLE. Es peligroso pues si eres famoso, un poderoso empresario, un polÃtico, etc., los hackers podrán buscar algún rastro tuyo y en el menor de los casos quizá tomarte algunas fotos.
https://play.google.com/store/apps/details?id=com.contextis.android.BLEScanner
OaxRom Admin
|
Monday 25 May 2015 6:23 pm
|
Tecnología, Politica, Dispositivos Móviles, Seguridad, Bases de Datos
|
Read More...
Consideraciones para contratar una troncal SIP de telefonÃa IP.
Publico este post, ya que recurrentemente nuestros clientes nos solicitan información antes de contratar troncales IP SIP o migrar sus lÃneas telefónicas a troncales IP.
Tipos de telefonÃa comerciales comunes :
Troncal de lÃnea analógica: Es una lÃnea tradicional que entrega un proveedor de telefonÃa en un cable con un par de hilos de cobre, cada lÃnea ofrece una llamada simultánea. Este tipo de lÃneas es muy tradicional en uso residencial. Los conmutadores IP requieren de tarjetas con puertos FXO para lÃneas analógicas para conectar estas lÃneas, se requiere de un puerto FXO por cada lÃnea analógica, por lo que el costo de las tarjetas aumenta considerablemente dependiendo del número de lÃneas a contratar. Cada lÃnea analógica tiene su propio número, por lo que al sacar llamadas por cada una de las lÃneas, el que recibe la llamada podrÃa ver un número diferente. Estas lÃneas pueden ser agrupadas a través de un número principal para tener un mismo número de llamada entrante, conservando también su número de lÃnea.
Troncal digital E1: Es una conexión dedicada que ofrecen diversos proveedores de telefonÃa. Su instalación depende de la cobertura del proveedor. El tiempo de instalación puede llevarse desde quince dÃas hasta más de un mes. Los conmutadores requieren de una tarjeta especial para esta conexión, cuando la troncal digital la entrega el proveedor en coaxial se requiere de un convertidor(balún) que convierta de coaxial a RJ45, aunque hay algunos conmutadores que permiten la conexión coaxial. La troncal digital E1 es muy fiable y de alta disponibilidad. Los costos varÃan por cada proveedor y no son muy económicos, son recomendables para empresas que requieren alto volumen de llamadas y alta disponibilidad. Cada troncal digital E1 puede proveer hasta 30 canales de voz.
Troncal IP(SIP/IAX/H323/MGCP/SCCP): Es un servicio de telefonÃa que empiezan a ofrecer diversos proveedores de telefonÃa en México y en el mundo. Se conectan a través de internet o a través de una conexión de red del mismo proveedor. Una troncal IP puede ofrecer N número de llamadas dependiendo de la conexión de internet disponible. El conmutador no requiere de una tarjeta especial para su conexión pues se conecta a través de una tarjeta de red ethernet, es recomendable que sea una tarjeta ethernet gigabit para servidores. Su costo es más económico que una troncal digital E1 y relativamente más elevado que una lÃnea analógica. El tiempo de implementación en el servidor IP del cliene es instantánea, depende de la activación y habilitación del proveedor de telefonÃa.
Consideraciones de una troncal IP SIP
Una troncal IP SIP, es un servicio que ofrecen los proveedores de telefonÃa para proveer telefonÃa a través de internet. Este servicio hace uso del internet que disponga el usuario final, o el proveedor de telefonÃa puede instalar su propia infraestructura de internet para mejor calidad de la voz.
SIP Es un protocolo estándar que usan diversos proveedores de telefonÃa en México y en el mundo, se puede decir que es el protocolo estándar y es enteramente compatible entre diversas marcas de equipos y proveedores.
Una troncal IP de un proveedor de telefonÃa se conecta a través de internet, esta conexión puede ser a través de un proveedor de internet de un tercero. Por ejemplo contratar una troncal IP SIP de Axtel y usar una conexión de internet de Telmex. También hay proveedores que instalan su propia conexión de internet, por ejemplo Iusacell O Maxcom que instalan su propia infraestructura en el sitio del cliente y tener una conexión de red que no dependa de un tercero.
El proveedor de telefonÃa IP al requerir una conexión de internet de un proveedor tercero, generalmente requiere IP Pública Fija para validación de la troncal de telefonÃa IP y al menos requiere 1 mbit de velocidad de subida. Es importante tomar en cuenta que la IP Pública Fija tienen un costo adicional en los servicios de internet contratados. Algunos proveedores de telefonÃa IP no requieren IP Pública fija, pero si podrÃan requerir IP Pública dinámica, por ejemplo Alestra.
Una IP Pública fija, es una dirección de internet única en el mundo, esta IP no cambia nunca en su servicio de internet por el periodo contratado de la IP.
Una IP Pública dinámica es una dirección que puede cambiar cada 24 horas en el router de internet.
La conexión de internet se mide en velocidad de subida y bajada, generalmente la velocidad de bajada es mayor que la subida, por ejemplo telmex puede ofrecer 10mbits de bajada con 1 Mbit de subida. Esta conexión se puede medir usando la página speedtest.net
Un proveedor IP que ofrece troncales SIP, generalmente vende su servicio por canales de voz, pueden ser 5,10,15,20,25,30,etc., canales de voz, todo depende de la conexión de internet y del número de llamadas simultáneas de entrada y salida que se requieran. Un canal de voz regularmente ocupa 100kbps de ancho de banda, por lo que si se tiene solo 1 Mbit de subida y el internet es dedicado a voz, entonces se pueden tener 10 llamadas simultáneas.
Si el mismo internet se usa para correo electrónico, mensajerÃa, web, multimedia, etc., entonces el rendimiento del internet disminuye y por ende el número de canales de voz a tener es variable y no se garantiza.
Una troncal IP puede ofrecer N canales de llamadas salientes o entrantes, o ambas, dependiendo el plan contratado. Al tener una troncal IP por ejemplo de 10 canales de voz para llamadas salientes y entrantes, se podrán hacer 10 llamadas simultáneas a la calle y todas saldrÃan con el mismo Caller ID, es decir las 10 personas que reciben las llamadas verán el mismo número telefónico de la troncal. Este número o DID se llama cabeza de grupo o número principal, esto permitirá recibir N canales de voz de llamadas entrantes a través del mismo número. Ese DID puede recibir llamadas simultáneas como el número de canales de voz contratados.
Adicionalmente los proveedores de telefonÃa aparte del número(DID) principal de la troncal IP, ofrecen también DID adicionales, estos DID pueden ser número directos que se configuren para ir a una extensión o para algún servicio adicional.
Los planes de telefonÃa varÃan por cada proveedor IP, es recomendable consultar a cada proveedor y comentarle del volumen de llamadas planeadas a realizar, para que con base a ello, los proveedores ofrezcan algún plan que se ajuste a sus necesidades.
El conmutador IP Asterisk PBX CloudVoox permite configurar múltiples proveedores de telefonÃa en el mismo servidor. Lo que facilita hacer el ruteo de llamadas saientes con base a la tarifa más baja.
En México existen diversos proveedores de telefonÃa IP como Axtel, Maxcom, Iusacell, Telmex, Alestra, Logitel, Gtel, Izzy, Ajtel, etc., también existen proveedores en USA como Callcentric, Net2phone, voipjet, inphonex, etc. Al ser proveedores de telefonÃa IP vÃa internet se puede conectar a cualquiera de ellos, siempre y cuando no requieran conexión de internet propia del proveedor. La diferencia está en la facturación, los proveedores mexicanos facturan pero los extranjeros no.
El tiempo de conexión de una troncal IP SIP en el servidor IP Asterisk PBX CloudVoox puede ser instantánea, el detalle está en el proveedor en lo que activa y habilita la troncal en si central, esto puede tardar desde un dÃa hasta varias semanas.
Para más información de conmutadores IP y consultorÃa para implementación de telefonÃa IP puede consultarnos en http://www.oaxrom.com
Tipos de telefonÃa comerciales comunes :
Consideraciones de una troncal IP SIP
Una troncal IP SIP, es un servicio que ofrecen los proveedores de telefonÃa para proveer telefonÃa a través de internet. Este servicio hace uso del internet que disponga el usuario final, o el proveedor de telefonÃa puede instalar su propia infraestructura de internet para mejor calidad de la voz.
SIP Es un protocolo estándar que usan diversos proveedores de telefonÃa en México y en el mundo, se puede decir que es el protocolo estándar y es enteramente compatible entre diversas marcas de equipos y proveedores.
Una troncal IP de un proveedor de telefonÃa se conecta a través de internet, esta conexión puede ser a través de un proveedor de internet de un tercero. Por ejemplo contratar una troncal IP SIP de Axtel y usar una conexión de internet de Telmex. También hay proveedores que instalan su propia conexión de internet, por ejemplo Iusacell O Maxcom que instalan su propia infraestructura en el sitio del cliente y tener una conexión de red que no dependa de un tercero.
El proveedor de telefonÃa IP al requerir una conexión de internet de un proveedor tercero, generalmente requiere IP Pública Fija para validación de la troncal de telefonÃa IP y al menos requiere 1 mbit de velocidad de subida. Es importante tomar en cuenta que la IP Pública Fija tienen un costo adicional en los servicios de internet contratados. Algunos proveedores de telefonÃa IP no requieren IP Pública fija, pero si podrÃan requerir IP Pública dinámica, por ejemplo Alestra.
Una IP Pública fija, es una dirección de internet única en el mundo, esta IP no cambia nunca en su servicio de internet por el periodo contratado de la IP.
Una IP Pública dinámica es una dirección que puede cambiar cada 24 horas en el router de internet.
La conexión de internet se mide en velocidad de subida y bajada, generalmente la velocidad de bajada es mayor que la subida, por ejemplo telmex puede ofrecer 10mbits de bajada con 1 Mbit de subida. Esta conexión se puede medir usando la página speedtest.net
Un proveedor IP que ofrece troncales SIP, generalmente vende su servicio por canales de voz, pueden ser 5,10,15,20,25,30,etc., canales de voz, todo depende de la conexión de internet y del número de llamadas simultáneas de entrada y salida que se requieran. Un canal de voz regularmente ocupa 100kbps de ancho de banda, por lo que si se tiene solo 1 Mbit de subida y el internet es dedicado a voz, entonces se pueden tener 10 llamadas simultáneas.
Si el mismo internet se usa para correo electrónico, mensajerÃa, web, multimedia, etc., entonces el rendimiento del internet disminuye y por ende el número de canales de voz a tener es variable y no se garantiza.
Una troncal IP puede ofrecer N canales de llamadas salientes o entrantes, o ambas, dependiendo el plan contratado. Al tener una troncal IP por ejemplo de 10 canales de voz para llamadas salientes y entrantes, se podrán hacer 10 llamadas simultáneas a la calle y todas saldrÃan con el mismo Caller ID, es decir las 10 personas que reciben las llamadas verán el mismo número telefónico de la troncal. Este número o DID se llama cabeza de grupo o número principal, esto permitirá recibir N canales de voz de llamadas entrantes a través del mismo número. Ese DID puede recibir llamadas simultáneas como el número de canales de voz contratados.
Adicionalmente los proveedores de telefonÃa aparte del número(DID) principal de la troncal IP, ofrecen también DID adicionales, estos DID pueden ser número directos que se configuren para ir a una extensión o para algún servicio adicional.
Los planes de telefonÃa varÃan por cada proveedor IP, es recomendable consultar a cada proveedor y comentarle del volumen de llamadas planeadas a realizar, para que con base a ello, los proveedores ofrezcan algún plan que se ajuste a sus necesidades.
El conmutador IP Asterisk PBX CloudVoox permite configurar múltiples proveedores de telefonÃa en el mismo servidor. Lo que facilita hacer el ruteo de llamadas saientes con base a la tarifa más baja.
En México existen diversos proveedores de telefonÃa IP como Axtel, Maxcom, Iusacell, Telmex, Alestra, Logitel, Gtel, Izzy, Ajtel, etc., también existen proveedores en USA como Callcentric, Net2phone, voipjet, inphonex, etc. Al ser proveedores de telefonÃa IP vÃa internet se puede conectar a cualquiera de ellos, siempre y cuando no requieran conexión de internet propia del proveedor. La diferencia está en la facturación, los proveedores mexicanos facturan pero los extranjeros no.
El tiempo de conexión de una troncal IP SIP en el servidor IP Asterisk PBX CloudVoox puede ser instantánea, el detalle está en el proveedor en lo que activa y habilita la troncal en si central, esto puede tardar desde un dÃa hasta varias semanas.
Para más información de conmutadores IP y consultorÃa para implementación de telefonÃa IP puede consultarnos en http://www.oaxrom.com
OaxRom Admin
|
Monday 11 May 2015 10:41 am
|
Tecnología, Voz Sobre IP, Trabajo y Proyectos, Software Libre, Redes, OaxRom
|
Read More...
Curso de configuración de firewalls en Oaxaca 12 Junio de 2015
Curso de implementación de Firewall en Linux.
Fecha: 12 de Junio de 2015
Lugar: Oaxaca de Juárez.
Sesiones: 1
Horario: 9:00-14:00 16:00-20:00
Costo: Aportación voluntaria que será donada a la ciudad de los niños de la Ciudad de Oaxaca.
Material entregable: Appliance de seguridad instalable.
Objetivo: Adentrar a los estudiantes de sistemas en el uso de linux e implementación de appliances de seguridad en el mundo empresarial.
CUPO LIMITADO.
El curso tiene como fin adentrar a los estudiantes de computación en el mundo de la seguridad informática basada en Linux y FreeBSD.
El objetivo del curso será ejemplificar a través de prácticas de redes la configuración de diversas situaciones que se exigen en el mundo real.
Prácticas a realizar:
Configuración de Firewalls.
Filtrado por direcciones Mac/IP/Subnet.
Balanceador de conexiones de internet.
Detector de Intrusos(IDS).
Prevención de Intrusos(IPS).
Redes Privadas Virtuales(VPNs)
Filtrado de contenido web(Web Proxy)
Ruteo estático y dinámico.
VLANs
Seguridad inalámbrica y hacking.
Site Surveys
Servidores DHCP
Monitoreo de tráfico.
Monitoreo de red.
Nmap
Network Address Translation(NAT)
Portal Cautivo
Comandos linux para monitoreo, configuraciń y administración de redes.
Revisión de logs.
Importante: El asistente deberá contar con su propio equipo de cómputo para hacer la instalación de las diversas plataformas de seguridad a revisar.
Material entregable: Appliance de seguridad instalable.
Objetivo: Adentrar a los estudiantes de sistemas en el uso de linux e implementación de appliances de seguridad en el mundo empresarial.
CUPO LIMITADO.

El curso tiene como fin adentrar a los estudiantes de computación en el mundo de la seguridad informática basada en Linux y FreeBSD.
El objetivo del curso será ejemplificar a través de prácticas de redes la configuración de diversas situaciones que se exigen en el mundo real.
Prácticas a realizar:
Importante: El asistente deberá contar con su propio equipo de cómputo para hacer la instalación de las diversas plataformas de seguridad a revisar.
OaxRom Admin
|
Saturday 09 May 2015 8:24 am
|
Programacion, Software, Eventos, Software Libre, Seguridad, Redes, OaxRom
|
Read More...
Script para convertir archivos mp4, Avi o 3gp a formato MP3 con ffmpeg
Hace unos dÃas dañé mis audÃfonos onkyo al recorrer una gruta de 12 Km en Guerrero, la mayor parte del recorrido era sumergirse en un rÃo, por lo que al no poder vivir sin música para leer, escribir, dibujar, programar, configurar, caminar, hacer ejercicio, etc., adquirà unos nuevos audÃfonos, pero fui engañado vilmente por la mercadotecnia de Sony, ya que vi unos audÃfonos que decÃan "Wireless Headphones 3 in 1" con 20 horas de uso continuo -dije, ¡caray! eso es lo que necesito para esas caminatas extremas-, en la vitrina habÃa otros audÃfonos bluetooth de diferentes marcas como Nakazaky, Coby, Q y RCA, y al parecer estos eran la onda asà que apliqué la de "take my money and shut up".
El detalle fue al llegar a mi casa, emocionado después de recargar la baterÃa e intentar probarlos, veo que en realidad no eran bluetooth, si no que tienen una paupérrima memoria de 4Gb, por lo que solo son unos vulgares audÃfonos con reproductor mp3 :S
3 in 1, porque son Mp3 Player, tienen un cable para conectar a cualquier dispositivo ¡Odio los cables! y también tienen unos audÃfonos secundarios como bocinas externas que solo funcionan con el reproductor mutimedia y no con reproductores externos.
El detalle que por la emoción ya habÃa destrozado el empaque y ni como solicitar el cambio :S
Asà que traté de tranquilizarme, respiré profundamente, y quise probar el reproductor multimedia, pero oh sorpresa, no reproduce archivos 3gp que es como descargo los playlist desde youtube, por lo que al tener miles de archivos y convertir uno por uno a mp3 no era opción, asà que rápidamente me puse a programar un script que me convirtiera todos mis archivos 3gp, avi o mp4 a mp3.
Y después de varios minutos todos los archivos quedaron convertidos a MP3 con este script, el detalle que con esos 4Gb no pude pasar mi colección completa de música, pero al menos la necesaria, aunque no hay libre albedrÃo para escuchar la música que quieres, todo depende del shuffle del reproductor.
Este script lee un directorio origen donde se encuentren todos los archivos de música, busca directorio por directorio los formatos indicados y después en un segundo directorio indicado va creando las carpetas encontradas y ahà convierte los archivos a mp3 usando ffmpeg quien es el que hace el trabajo sucio
<?php
$directorio = "/home/oaxrom/musica";
$directorio_mp3 = "/home/oaxrom/musica/mp3";
$extensiones = "3gp|mp4|avi";
if(is_dir($directorio_mp3)==false){
mkdir("$directorio_mp3", 0755, true);
}
$_dirs = obtiene_directorios($directorio);
convierte_musica($directorio_mp3, $_dirs, $extensiones, "mp3", $directorio);
function obtiene_directorios($directorio_musica){
$_directorios = scandir($directorio_musica);
$_dirs= array();
foreach($_directorios as $directorio){
if(is_dir($directorio) && in_array($directorio, array(".", ".."))==false ){
array_push( $_dirs, $directorio);
}
}
array_multisort($_dirs, SORT_DESC, SORT_NUMERIC);
return $_dirs;
}
function convierte_musica($dir_mp3, $_dirs, $extensiones, $formato, $dir_musica){
$count=0;
foreach($_dirs as $dir){
if(is_dir("$dir_mp3/$dir")==false){
mkdir("$dir_mp3/$dir", 0755, true);
convierte_mp3("$dir_mp3/$dir", $dir, $extensiones, $formato, "$dir_musica/$dir");
}
}
}
function convierte_mp3($dir_mp3, $dir, $extensiones, $formato, $dir_musica){
echo "::::::::::::$dir\n:::::::::::";
$_archivos = scandir("$dir_musica");
foreach($_archivos as $archivo){
if(is_dir($archivo)==false && in_array($archivo, array(".", ".."))==false && preg_match("/($extensiones)$/",$archivo) ){
$archivo_mp3 = preg_replace("/[^A-Za-z0-9_-\s]/", "", $archivo);
$archivo_mp3 = preg_replace("/[\s]/", "_", $archivo_mp3);
$archivo_mp3 = preg_replace("/($extensiones)$/", ".mp3", $archivo_mp3);
echo "ffmpeg -i \"$dir_musica/$archivo\" -c:a libmp3lame \"$dir_mp3/$archivo_mp3\" \n";
exec("ffmpeg -i \"$dir_musica/$archivo\" -c:a libmp3lame \"$dir_mp3/$archivo_mp3\" ");
}
}
}
?>
P.D. Se venden "fantásticos" audÃfonos Walkman Sony "Wireless 3 in 1"
El detalle fue al llegar a mi casa, emocionado después de recargar la baterÃa e intentar probarlos, veo que en realidad no eran bluetooth, si no que tienen una paupérrima memoria de 4Gb, por lo que solo son unos vulgares audÃfonos con reproductor mp3 :S
3 in 1, porque son Mp3 Player, tienen un cable para conectar a cualquier dispositivo ¡Odio los cables! y también tienen unos audÃfonos secundarios como bocinas externas que solo funcionan con el reproductor mutimedia y no con reproductores externos.
El detalle que por la emoción ya habÃa destrozado el empaque y ni como solicitar el cambio :S
Asà que traté de tranquilizarme, respiré profundamente, y quise probar el reproductor multimedia, pero oh sorpresa, no reproduce archivos 3gp que es como descargo los playlist desde youtube, por lo que al tener miles de archivos y convertir uno por uno a mp3 no era opción, asà que rápidamente me puse a programar un script que me convirtiera todos mis archivos 3gp, avi o mp4 a mp3.

Y después de varios minutos todos los archivos quedaron convertidos a MP3 con este script, el detalle que con esos 4Gb no pude pasar mi colección completa de música, pero al menos la necesaria, aunque no hay libre albedrÃo para escuchar la música que quieres, todo depende del shuffle del reproductor.
Este script lee un directorio origen donde se encuentren todos los archivos de música, busca directorio por directorio los formatos indicados y después en un segundo directorio indicado va creando las carpetas encontradas y ahà convierte los archivos a mp3 usando ffmpeg quien es el que hace el trabajo sucio

<?php
$directorio = "/home/oaxrom/musica";
$directorio_mp3 = "/home/oaxrom/musica/mp3";
$extensiones = "3gp|mp4|avi";
if(is_dir($directorio_mp3)==false){
mkdir("$directorio_mp3", 0755, true);
}
$_dirs = obtiene_directorios($directorio);
convierte_musica($directorio_mp3, $_dirs, $extensiones, "mp3", $directorio);
function obtiene_directorios($directorio_musica){
$_directorios = scandir($directorio_musica);
$_dirs= array();
foreach($_directorios as $directorio){
if(is_dir($directorio) && in_array($directorio, array(".", ".."))==false ){
array_push( $_dirs, $directorio);
}
}
array_multisort($_dirs, SORT_DESC, SORT_NUMERIC);
return $_dirs;
}
function convierte_musica($dir_mp3, $_dirs, $extensiones, $formato, $dir_musica){
$count=0;
foreach($_dirs as $dir){
if(is_dir("$dir_mp3/$dir")==false){
mkdir("$dir_mp3/$dir", 0755, true);
convierte_mp3("$dir_mp3/$dir", $dir, $extensiones, $formato, "$dir_musica/$dir");
}
}
}
function convierte_mp3($dir_mp3, $dir, $extensiones, $formato, $dir_musica){
echo "::::::::::::$dir\n:::::::::::";
$_archivos = scandir("$dir_musica");
foreach($_archivos as $archivo){
if(is_dir($archivo)==false && in_array($archivo, array(".", ".."))==false && preg_match("/($extensiones)$/",$archivo) ){
$archivo_mp3 = preg_replace("/[^A-Za-z0-9_-\s]/", "", $archivo);
$archivo_mp3 = preg_replace("/[\s]/", "_", $archivo_mp3);
$archivo_mp3 = preg_replace("/($extensiones)$/", ".mp3", $archivo_mp3);
echo "ffmpeg -i \"$dir_musica/$archivo\" -c:a libmp3lame \"$dir_mp3/$archivo_mp3\" \n";
exec("ffmpeg -i \"$dir_musica/$archivo\" -c:a libmp3lame \"$dir_mp3/$archivo_mp3\" ");
}
}
}
?>
P.D. Se venden "fantásticos" audÃfonos Walkman Sony "Wireless 3 in 1"

OaxRom Admin
|
Sunday 05 April 2015 7:25 am
|
Tecnología, Entretenimiento, Dispositivos Móviles, Deportes
|
Read More...
¿Quienes Somos? |
Horario de atención: Lunes a Viernes 09:00 a.m. a 18:00 p.m. Tiempo de la Ciudad de México
|
Conmutador: 01 55 4431-5035 Correo: info@oaxrom.com Ubicación: CDMX, México. |
Precios listados en esta página no incluyen IVA. | Precios de equipos listados y cotizados están en dólares con tipo de cambio al tipo de venta del dolar del día en Bancomer.com | |
![]() |
Aviso de Privacidad |