viernes, 26 de agosto de 2011
Calculadora simple
La famosa calculadora tiene que estar presente. Un par de observaciones con python:
El operador "/" devuelve una división entera a menos que especifiquemos el tipo en el denominador por ejemplo. Lo demás creo que no tiene ninguna ciencia.
Notemos la diferencia entre raw_input() que es una función que "agarra" strings e input() que es otra función que "agarra" enteros. Existen funciones para convertir tipos de datos en lo que usamos y son por ejemplo: int() que convierte a entero y float() que convierte a coma flotante.
El operador "/" devuelve una división entera a menos que especifiquemos el tipo en el denominador por ejemplo. Lo demás creo que no tiene ninguna ciencia.
Notemos la diferencia entre raw_input() que es una función que "agarra" strings e input() que es otra función que "agarra" enteros. Existen funciones para convertir tipos de datos en lo que usamos y son por ejemplo: int() que convierte a entero y float() que convierte a coma flotante.
Año bisiesto en python
El primer script que hice en python fue un programa que nos dice si un año es bisiesto o no.
Aquí pego el código:
Aquí pego el código:
Obviamente que se puede hacer mucho más breve de la siguiente manera:
Fue el primer programa así que es medio boludo xD
Configurar AsteriskNow con tarjeta Digium Wildcard TDM400P
BASE TEÓRICA
Viendo que hardware tenemos:
Existe un conjunto de utilidades que viene con AsteriskNow en el paquete Dahdi-tools el cual nos permite configurar la tarjeta Digium WildcardTDM400P.
Para ver que tarjeta tenemos escribiremos el siguiente comando:
dahdi_scan
En este caso nos devuelve:
[1]
active=yes
alarms=OK
description=Wildcard TDM400P REV E/F Board 5
name=WCTDM/4
manufacturer=Digium
devicetype=Wildcard TDM400P REV E/F
location=PCI Bus 01 Slot 09
basechan=1
totchans=4
irq=10
type=analog
port=1,FXS
port=2,FXS
port=3,FXO
port=4,FXO
En la tarjeta dice el número de puertos por lo cual ya hemos identificado cuales son los puertos FXO y cuales son los puertos FXS.
El caso de prueba (objetivo): consiste en poder usar un teléfono analógico en una central PBX como la que tenemos. Un diagrama de ilustración es el siguiente:
Para configurar las placas se ejecutan los siguientes comandos:
- dahdi_genconf genera el archivo de configuración: /etc/asterisk/dahdi_channels.conf
- dahdi_cfg -vv: configura la tarjeta a partir del archivo de configuración generado por el comando anterior. Se necesita correr para que los módulos DAHDI del kernel funcionen correctamente. Éste se ejecuta generalmente desde el archivo init de DAHDI
Asterisk interpreta los canales a través del archivo chan_dahdi.conf. Este archivo no existe de ante mano, así que lo crearemos en /etc/asterisk y añadiremos en él estas 3 líneas:
[channels]
#include dahdi-channels.conf
#include chan_dahdi_additional.conf
Además creamos el archivo chan_dahdi_additional.conf en el mismo directorio
Con esto le decimos al sistema Asterisk que lea el archivo dahdi-channels.conf creado en la ejecución de dahdi_genconf y dahdi_cfg -vv y el chan_dahdi_additional que es modificado a través del GUI de FreePBX.
Archivos de configuración de dahdi-tools:
- /etc/dahdi/system.conf
- /etc/asterisk/chan_dahdi.conf
/etc/dahdi/system.conf:
Aquí se tiene que configurar el cancelador de echo para cada canal a diferencia de zaptel.conf.En nuestro caso nos ha quedado así:
# Span 1: WCTDM/4 "Wildcard TDM400P REV E/F Board 5" (MASTER)
#Puerto 1 de la tarjeta Analogica=Modulo FXS Verde
fxoks=1
echocanceller=mg2,1
#Puerto 2 de la tarjeta Analogica=Modulo FXS Verde
fxoks=2
echocanceller=mg2,2
#Puerto 3 de la tarjeta Analogica=Modulo FXO Rojo
fxsks=3
echocanceller=mg2,3
#Puerto 4 de la tarjeta Analogica=Modulo FXO Rojo
fxsks=4
echocanceller=mg2,4
# Global data
loadzone = us
defaultzone = us
Los otros archivos de configuración son:
/etc/dahdi/init.conf:
Reemplaza al archivo zaptel ubicado en /etc/sysconfig/zaptel. Es un shell script que se crea a través del script dahdi ubicado en init.d. Todos sus valores son opcionales. La variable MODULES, sin embargo no se lee más desde este archivo. Esta variable se lee del siguiente archivo:/etc/dahdi/modules
Acá hay una lista con todos los módulos a cargarse. Reemplaza la variable MODULES del archivo de configuración anterior./etc/dahdi/genconf_parameters
Parámetros opcionales, reemplaza a zapconf y también a genzaptelconfPor otro lado, seria necesaria la configuracion del fichero que “intercomunica” los módulos de la tarjeta con nuestro sistema Asterisk. Esto se registra en el fichero /etc/asterisk/chan_dahdi.conf
Yo conecte el teléfono al puerto 1 (módulo FXS verde) y la linea de teléfono al 3 (módulo FXO rojo).
Los grupos asociados a los canales y puertos que estoy usando se pueden descubrir en el archivo /etc/asterisk/chan_dahdi_groups.conf que está en un #include en chan_dahdi.conf.
Este archivo contiene:
;--------------------------------------------------------------------------------;
; Do NOT edit this file as it is auto-generated by FreePBX. All modifications to ;
; this file must be done via the web gui. There are alternative files to make ;
; custom modifications, details at: http://freepbx.org/configuration_files ;
;--------------------------------------------------------------------------------;
;
signalling=fxs_ks
context=default
group=2
channel=>3
signalling=fxs_ks
context=default
group=2
channel=>4
signalling=fxo_ks
context=from-analog
group=1
channel=>1
signalling=fxo_ks
context=from-analog
group=1
channel=>2
Los grupos asociados a los canales y puertos que estoy usando son: Grupo 1:
Puerto 1: FXS (canal 1)
Puerto 2: FXS (canal 2)
Grupo 2:
Puerto 3: FXO (canal 3)
Puerto 4: FXO (canal 4)
A continuación queda configurar los canales de la tarjeta para que sean reconocidos por Asterisk:
entonces añadimos el soporte DAHDI para FreePBX editando el archivo /etc/amportal.conf agregando al final del archivo la siguiente linea:
ZAP2DAHDICOMPAT=true
Reiniciamos Amportal con:amportal restart
Y ya hay soporte DAHDI en FreePBX.
Para comprobar la configuración se procede de esta manera:
- Ejecutar:
asterisk -r
dahdi show channels
dahdi show status
Colocando las lineas:
[ dahdi ]exten => _9.,3,Dial(DAHDI/g2/${EXTEN})
de esta forma podremos hacer llamadas “saliendo con el 9”, usando el puerto 3 y el grupo 2 (g2)
Más información:
* Antes se usaba zaptel en vez de dahdi, más información
* Configurar canales dahdi
* Configuración de tarjeta X100P
jueves, 25 de agosto de 2011
Un libro para empezar python de 0
En la Universidad me recomendaron un libro sencillo para poder empezar a programar en python.
Tengo algunos scripts por ahí sueltos que quizás suba más adelante, ahora tengo que hacer otras cosas =P
Estoy usando la versión 2.7 que se puede encontrar acá
Tengo algunos scripts por ahí sueltos que quizás suba más adelante, ahora tengo que hacer otras cosas =P
Estoy usando la versión 2.7 que se puede encontrar acá
Aprendiendo a caminar
Hola, este es mi primer post. Equivalente a mi primer paso.
Trato de investigar cosas que no tengo mucha idea pero más adelante cuando haya caminado lo suficiente estaré seguro de que algo sé y tengo fé en que podré recoger información útil de este blog.
Salu2
Trato de investigar cosas que no tengo mucha idea pero más adelante cuando haya caminado lo suficiente estaré seguro de que algo sé y tengo fé en que podré recoger información útil de este blog.
Salu2