miércoles, 29 de enero de 2014

Parametro Qualify en Asterisk (Monitorizar peers)


Todos los que manejamos Conmutadores digitales con software libre hemos configurado alguna vez el parámetro qualify en los archivos de configuración para iax, y sip. Pero ¿que función tiene este parámetro? ¿Que sucede en nuestro conmutador cuando lo activamos o lo desactivamos ?.

Archivos:

la configuración de este parámetro se encuentra en los archivos iax.conf y sip.conf que afecta a todas las extensiones si se encuentra en el contexto [general] ó en extensiones independientes en estos dos protocolos de comunicación.

Tipos de formato:

* qualify=xxx
* qualify=yes
* qualify=no

Si lo que queremos es modificar este parámetro únicamente a ciertas extensiones, podemos configurarlo modificando la extensión:

[ext105]
type=friend
host=dynamic
secret=M1p4ssw0rD
qualify=yes
disallow=all
allow=ulaw
allow=gsm

* Con qualify= yes

Asterisk monitoriza el estado de la extensión en periodos ( por default 60s)
¿Como sucede esto?

Astersk realiza peticiones de tipo "SIP OPTIONS" cada 60 segundos hacia la extensión y espera una respuesta del mismo, algo asi como un PING , por defecto Asterisk espera 2000ms (2s) para dar por buena una respuesta y con esta poder determinar:

1.- Estado
2.- Latencia o tiempo de retardo en la conexión con la extensión

*Con qualify=no

Asterisk deja de monitorizar el estado de la extensión y de esta forma omite las peticiones hacia sus destinos y hace las llamadas telefónicas sin importar latencia, ya que si hay latencia puede ser que la extensión sea marcada como no disponible.

* Con qualify=xxx

esto es un tipo de qualify=yes pero en este caso nosotros establecemos el tiempo máximo en milisegundos para recibir la respuesta (Por default son 2000ms)

Recomendaciones:

* Personalmente yo activo este parámetro en todas las extensiones
* En las extensiones con grandes latencias lo desactivo
* Si lo quieres tener activado y reducir los indeseados UNREACHABLE puedes establecer un tiempo máximo menor


Espero les sirva esta información para una mejor implementación de sistemas telefónicos digitales :D

miércoles, 22 de enero de 2014

Acceso a notas, howtos y directorio telefónico desde terminal

DESCRIPCIÓN

Cuando no tenemos ambiente gráfico, o no se usa frecuentemente y queremos ver algún numero telefónico o algún dato de archivos de texto que frecuentemente uso, es un poco engorroso estar acordándote del directorio + el nombre de los archivos donde se encuentra lo que busco.

Con este Script en BASH podemos hacer esto de manera rápida . el cual tiene las siguientes caracteristicas:

* utiliza los programas de linux:  less, vim, cat, grep dependiendo de los argumentos
      -c:  usa cat
      -e:  usa vim
      -l:   usa less
      -n:  usa grep
* Uiliza un directorio por default en donde se alojarán los archivos creados y por crear
     ejemplo: "/home/villatux/archivos_dse/"
* El script está guardado en "/usr/bin/dse" con permisos de ejecución 

EL CÓDIGO

#!/bin/bash
# By Oswaldo Villa
# @villatux
# USO:
#       dse -l archivo
#       dse -e archivo
directorio="/home/villatux/archivos_dse/"
case "$1" in
        -l)
                less $directorio$2
                ;;
        -e)
                vim $directorio$2
                ;;
        -c)
                if [ $3 == "-n" ]; then
                        cat $directorio$2 | grep -i $4
                else
                        cat $directorio$2
                fi
                ;;
        -h|--help)
                echo $"Uso: $0 [-c|-l|-e|-h] [ARCHIVO]"
                echo ""
                echo "Permite el facil acceso a el contenido de archivos para ver o editar su contenido"
                echo "  -c      Muestra Todo el documento"
                echo "          *  -n  muestra solo la linea donde está el texto deseado"
                echo "  -l      Permite visualizar el documento con solo presionar arriba, abajo y q para salir"
                echo "  -e      Permite editar el documento con el editor vim"
                echo "  -h      Muestra ayuda"
                echo ""
                echo "Ejemplo: "
                echo "$0 -l servidores"
                echo ""
                echo "Puede incluir los siguientes archivos:"
                ls -l $directorio | awk '{print $9}'
                ;;
esac


EJEMPLO EN USO:

villatux@vuach:~$ dse -c servidores -n vegito
vegito  1X.61 archivos.midominio.mx

villatux@vuach:~$ dse -c directorio -n oswaldo
  172X dse sysadmin oswaldo villa

villatux@vuach:~$ dse -c datos -n ldap
ldap  midominio.mx  P4ssw0rd LDAP General

villatux@vuach:~$ dse -c proxys -n .16
nacho  148.229.XXX.16  148.229.XXX.141 new

a quien le sea de utilidad puede copiarlo con toda libertad :D

viernes, 17 de enero de 2014

Importar script .sql a MySQL

Los usuarios de MySQL al querer importar un archivo .sql lo hacer a travez de phpMyAdmin, la cual solo soporta subir archivos menores a 2.048Kb (2Mb), que es la configuración default de php.ini, y cuando esto sucede algunos otros lo hacen por pequeños pedazos de script (peor aún), Esto incrementará la dificultad, el tiempo y las probabilidades de falla en la importación, Para cuando esto sucede es dificil reparar el error y es necesario comenzar de nuevo.

La mejor manera de importar bases de datos, tablas y datos a mysql es por consola(terminal), esto nos permite importar archivos mas grandes de lo normal de la siguiente manera

1)
mysql -u USUARIO -p BASEDEDATOS < /home/miusuario/script.sql

NOTA: Para poder subir el script de este modo ya deberá estar creada la Base de Datos.

Para no tener que crear la base de datos podemos crearla en la misma importación del script agregando las siguientes lineas al mismo:

1.2)
CREATE DATABASE `NOMBRE_DE_LA_BASEDEDATOS`;
USE `NOMBRE_DE_LA_BASEDEDATOS`;


Una vez hecho esto ejecutamos de nuevo el comando para importar el script que mencionamos en el paso 1

miércoles, 15 de enero de 2014

Publicar Código fuente resaltado en blogger y paginas web

Varios de nosotros los bloggers o webmasters hemos deseado publicar código fuente y que no se vea distorcionado o mal formado.

SyntaxHighlighter nos permite hacerlo añadiendo colores resaltados según el lenguaje que queramos mostrar de una manera limpia y llamativa.

SyntaxHighlighter es de codigo libre y en la pagina oficial :     ofrece la versión online o también a descarga si lo prefieres.  En este caso usaremos la version online ya que blogger no nos permite subir archivos.

Para agregar código  primero modificaremos nuestra plantilla de blogger o el código fuente de nuestra web,  entre las etiquetas HEAD debemos poner el siguiente código:





Debemos insertar todos los tipos de lenguajes que va a soportar nuestra pagina para publicar,  tambien se pueden quitar los que no creas utilizar para no hacer más extenso nuestro head

Ahora para publicar cualquier código debemos poner las etiquetas :



La siguiente tabla indica los lenguajes que soporta, además de el modo de uso en las publicaciones:

Brush nameBrush aliasesFile name
ActionScript3as3, actionscript3shBrushAS3.js
Bash/shellbash, shellshBrushBash.js
ColdFusioncf, coldfusionshBrushColdFusion.js
C#c-sharp, csharpshBrushCSharp.js
C++cpp, cshBrushCpp.js
CSScssshBrushCss.js
Delphidelphi, pas, pascalshBrushDelphi.js
Diffdiff, patchshBrushDiff.js
Erlangerl, erlangshBrushErlang.js
GroovygroovyshBrushGroovy.js
JavaScriptjs, jscript, javascriptshBrushJScript.js
JavajavashBrushJava.js
JavaFXjfx, javafxshBrushJavaFX.js
Perlperl, plshBrushPerl.js
PHPphpshBrushPhp.js
Plain Textplain, textshBrushPlain.js
PowerShellps, powershellshBrushPowerShell.js
Pythonpy, pythonshBrushPython.js
Rubyrails, ror, rubyshBrushRuby.js
ScalascalashBrushScala.js
SQLsqlshBrushSql.js
Visual Basicvb, vbnetshBrushVb.js
XMLxml, xhtml, xslt, html, xhtmlshBrushXml.js

Nota. Si queremos publicar código xml, xhtml, xslt, html y xhtml debemos considerar que dentro de las etiquetas pre no debemos utilizar los caracteres < ni > en vez de ello utilizaremos < y > respectivamente, todo esto para no confundir al código html.

martes, 14 de enero de 2014

Comprobar extensiones de SQLServer para PHP (mssql, msql)

Aveces es necesario conectar nuestros desarrollos a bases de datos en SQLServer ya que son aplicaciones desarrolladas por externos o por X causa,  pues en este tenor  podemos comprobar si realmente tenemos instaladas las extensiones necesarias en nuestro php para realizar las conexiones a las bases de datos.

Con el siguiente script en PHP podemos hacerlo rápidamente y saber si tenemos que instalarlas :



if (function_exists('mssql_connect')){ 
 echo "mssql_connect SI "; 
} else { 
 echo "mssql_connect NO "; 
} 
if(extension_loaded("mssql")) { 
 echo "MSSQL SI "; 
} else { 
 echo "MSSQL NO"; 
}  
if(extension_loaded("msql")) { 
 echo "MSQL SI "; 
} else { 
echo "MSQL NO "; 
}   
$ext = get_loaded_extensions(); 
if(in_array('mssql', $ext)) 
 echo ': Tienes mssql correctamente instalado '; 
else 
 echo ': NO tienes mssql instalado '; 
phpinfo();  






Si es necesario instalarlas  las podemos hacer de la siguiente manera (en Debian y derivados) :

aptitude install php5-sybase php-db