Академический Документы
Профессиональный Документы
Культура Документы
Fuente: Wikipedia
Introduccin a telefona tradicional 8
PCM: Cuantificacin
Tomar los valores muestreados en el paso anterior y
redondearlos al escaln discreto ms cercano.
La cantidad mxima de niveles est dada por 2n
Donde n = nmero de bits que ocuparemos por dato
Fuente: Wikipedia
Introduccin a telefona tradicional 9
PCM: Codificacin
Convertir los niveles a un valor en bits
Opcionalmente, es posible comprimir los paquetes de bits
para usar un menor ancho de banda
Fuente: http://bit.ly/rrOLB4
Introduccin a VoIP 19
Entonces la telefona
tradicional es mejor?
Introduccin a VoIP 21
Calidad/ancho de banda
70
por cdec
60
Bitrate Nominal (kbps)
50 G711
G729
40
G723.1
30 GSM
G728
20
G722
10 iLBC
0
3.2 3.4 3.6 3.8 4 4.2 4.4
Calidad MOS
G711 G729 G723.1 G726 GSM G722 G728 iLBC
Introduccin a VoIP 22
Bitrate vs. Calidad
Fuente: http://www.opus-codec.org/comparison/
Introduccin a VoIP 23
Bitrate vs. Latencia
Fuente: http://www.opus-codec.org/comparison/
Introduccin a VoIP 24
Cdecs (2)
Pueden ser gratuitos o patentados
G729 y G723 requieren licencia.
Para que 2 sistemas que usan diferentes cdecs
puedan comunicarse, debe realizarse un transcoding.
Traducir entre cdecs.
Es muy costoso en CPU. Evitarlo en lo posible.
Son independientes del protocolo usado.
Introduccin a VoIP 25
Protocolos
Son un conjunto de reglas que regulan como es que
el emisor y el receptor entablan la llamada
Autenticacin, intercambio de datos, negociacin, etc.
Es necesario que ambas partes hablen el mismo protocolo.
Existen muchos protocolos que pueden utilizarse
para la comunicacin en tiempo real:
SIP, IAX2, H323, Skinny, MGCP, Skype, etc
Algunos protocolos estn estandarizados y son
abiertos (SIP, IAX2). Otros son cerrados (Skype)
Nos centraremos en los 2 protocolos ms
importantes para Asterisk.
Introduccin a VoIP 26
Protocolos: SIP
Session Initiation Protocol
Protocolo de Inicio de Sesin
Desarrollado por el Internet Engineering Task Force
El protocolo ms utilizado para VoIP en la actualidad
Es un estndar, con cientos de implementaciones en
software y hardware
SIP fue desarrollado en papel
Hasta su implementacin se detectaron problemas en su
diseo
Introduccin a VoIP 27
Dilogo de SIP
Se aprovecha de otros
protocolos para hacer su
trabajo
Session Description Protocol
(SDP)
Real Time Protocol (RTP)
Introduccin a telefona/VoIP 31
DTMFs en VoIP
Previamente comentamos que en telefona
convencional, los tonos viajan como audio a travs
del par de cobre
En VoIP hay ms alternativas
Segn el cdec o protocol que usemos, tendremos 2
alternativas:
Inband (en banda)
RFC2833 (fuera de banda)
Una mala configuracin ocasiona que no se detecten
los tonos.
Ej. El receptor espera recibir tonos en RFC2833, pero
nosotros los enviamos en banda.
Introduccin a VoIP 32
DTMFs en VoIP (2)
Qu significa cada mecanismo?
En banda (inband)
Los tonos se envan como audio.
Susceptible a entrecortes de llamada.
Solo puede usarse en cdecs que no corten el audio de los tonos al
comprimir (como G711 o G726)
Fuera de banda (RFC2833)
Este es el mecanismo preferido para enviar tonos.
En lugar de enviar audio, enviamos seales (paquetes) que indican el
dgito presionado.
Todos los cdecs los soportan.
SIP puede usar ambos tipos (si el cdec se lo permite)
IAX2 siempre enva los DTMFs usando RFC2833
Introduccin a telefona/VoIP 33
En resumen
VoIP es ms avanzado, pero ms delicado
Hay ms detalles a considerar dentro de un sistema VoIP.
El cdec que usemos ser el responsable de la
calidad de la llamada
Nos corresponde a nosotros elegir el adecuado
SIP e IAX2 son los protocolos mejor soportados en
Asterisk
Cada uno tiene sus caractersticas y por lo tanto, sus usos.
Junto con el protocolo y los cdecs, es necesario
elegir como transmitiremos los DTMFs
Inband o RFC2833
Introduccin a VoIP 34
Evaluacin
No se olviden de contestar la evaluacin sobre lo
aprendido en este captulo:
http://enlaza.mx/quiz
Recuerda proporcionar tu correo electrnico y el
captulo que ests respondiendo.
Introduccin a telefona/VoIP 35
Introduccin #3
Linux
Ing. Christian Cabrera R.
Qu es Linux?
Sistema operativo de cdigo abierto.
Creado por Linus Torvalds en 1991
Similar a Unix y regido bajo la licencia
GNU/GPL
GNU Not Unix/General Public License
No necesariamente es gratuito
Muy usado en ambiente de servidores
Sin pago por uso del software (generalmente)
Sin recursos consumidos por una GUI
Comienza a tomar auge en distribuciones de usuario final
Difcil medir penetracin en mercado
No hay conteo de licencias activadas
Introduccin a Linux 37
Open Source
Es una filosofa que promueve el libre acceso y redistribucin
de la informacin
Permite que los desarrollos se mejoren a travs de una
comunidad, sin que deba haber una empresa detrs de ellos
La comunidad se encarga de mantenerlos/mejorarlos
Introduccin a Linux 38
Licenciamiento
Todo el software (incluyendo el gratuito) tiene algn
tipo de licenciamiento
Comercial, Open Source, Shareware, dominio pblico,
freeware, etc
Las licencias determinan que es lo que el usuario
final puede hacer con el software:
Distribucin, alteracin, uso comercial, restricciones,
garanta, derechos, etc
La licencia GPL te permite alterar, copiar y usar libremente
el cdigo, siempre y cuando trabajos derivados se liberen
tambin como GPL
Introduccin a Linux 39
Distribuciones de Linux
Conocidas como distros
Varan en los paquetes que contienen, pero todas
usan el mismo kernel (ncleo)
Cualquier distribucin puede configurarse para
igualar a cualquier otra
Especializadas en diferentes entornos
Ej. Servidores, sistemas embebidos, usuario final,
telfonos mviles, etc
2 distros principales desde las que se derivan
las dems
Debian: su variantes ms famosas son Ubuntu y
Mint
RedHat: CentOS, Fedora, Mandriva son algunas de
sus derivaciones ms usadas
Introduccin a Linux 40
Para ver la lista completa de
distribuciones, consulta la imagen
Distribuciones de linux.png ubicada en el
DVD
Introduccin a Linux 41
Caractersticas de Linux
Free as in freedom
Libre, no necesariamente gratis
Cualquiera puede copiar, modificar y
redistribuir el cdigo. Inclusive, cobrar
por l
Multi-usuario, multi-proceso
Mltiples usuarios trabajando en un
mismo sistema
Fuerte nfasis en seguridad
Respaldado por una comunidad con
privilegios de modificacin (cualquiera
puede corregir el cdigo de alguien
ms)
Introduccin a Linux 42
Caractersticas de Linux (2)
Soporte modular altamente configurable
Puedes personalizar literalmente todo.
Si algo no cubre todas tus necesidades, puedes modificar el
cdigo.
Sistema universal de archivos
Todo dispositivo se puede identificar por una ruta y se
puede montar en cualquier lugar.
Control del sistema por lnea de comandos
Tener una GUI es opcional (y poco recomendada en
ambiente de servidores)
Introduccin a Linux 43
Lnea de comandos (CLI)
Ms fcil de automatizar
que una interfaz grfica
Ahorra ancho de banda al
administrarlo
Ideal para servidores
PuTTY es el software ms
usado para SSH
Introduccin a Linux 44
Editor de archivos: nano
Ms sencillo de usar que vi o vim.
Apto para principiantes, pero si ya se tiene control sobre otro editor,
puede usarse cualquier reemplazo
Editar un archivo de texto se hace con
nano <ruta al archivo>
Ejemplo
nano /etc/asterisk/sip.conf
Comandos bsicos:
Ctrl + O : confirmar y guardar Ctrl + W : buscar
Ctrl + X : guardar y salir
Si editamos un archivo que no existe, lo crearemos.
Es conveniente familiarizarse con el proceso, ya que lo
usaremos mucho durante el curso
Introduccin a Linux 45
Prctica 2.1
Instalacin de Linux
(Consulta tu manual de prcticas)
Sistema de archivos
Estructura jerrquica
(rbol)
Todo empieza desde
la ruta / (raz, slash)
Todo en Linux es
case-sensitive
Ej. Archivo.txt no es
igual a archivo.txt
Introduccin a Linux 47
Rutas
Rutas relativas
Aquellas que solo son vlidas
dependiendo de la carpeta donde se
est trabajando
Rutas absolutas
Son vlidas desde cualquier posicin amx:~# significa Estoy conectado
Comienzan siempre con / al equipo amx, en la carpeta home
del usuario root
Cmo saber en donde estamos
parados? amx:/etc/asterisk# significa
Observando el prompt Estoy dentro del equipo llamado
Comando pwd amx, en la carpeta /etc/asterisk. Soy
el usuario root
La # significa que tienes poderes de
root syncuser@amx:/root$ significa
El $ indica que no tienes privilegios Estoy en el equipo amx, dentro de
la carpeta /root. No soy root, sino
que soy el usuario syncuser
Introduccin a Linux 48
Ejecucin de archivos
En todo SO, existe una variable PATH
Determina la ruta default a buscar si el comando solicitado no existe en
la actual
Pueden verla usando echo $PATH desde el CLI
Introduccin a Linux 50
Permisos de archivo (2)
Los permisos se asignan de manera binaria
(recordemos el orden RWX)
111 significa leer, escribir y ejecutar
101 significa leer y ejecutar, pero no escribir
100 significa solo leer
Convertimos el nmero a decimal
111 = 4 + 2 + 1 = 7
101 = 4 + 0 + 1 = 5
100 = 4 + 0 + 0 = 4
Escribimos el permiso en 3 dgitos decimales
754 significa dueo hace todo, grupo lee y ejecuta, todos
los dems solo pueden leer
Introduccin a Linux 51
Permisos de archivo (3)
Entonces:
755 permite que todos lean y ejecuten, pero solo el dueo
puede modificar el archivo
777 permite a todos hacer todo (inseguro!)
600 es muy restrictivo (solo el dueo puede leer o
modificar el archivo)
El usuario root puede modificar cualquier archivo,
an si no se le conceden los permisos para hacerlo
Introduccin a Linux 52
Comandos bsicos
Comando Descripcin Ejemplo
Introduccin a Linux 53
Comandos bsicos (2)
Comando Descripcin Ejemplo
Introduccin a Linux 56
Operadores
A veces no es conveniente la salida a pantalla
Ej. Imprimir reportes demasiado largos
Existen caracteres especiales que alteran el flujo de
datos
Son llamados operadores
Los operadores pueden concatenar mltiples flujos
para hacer todo en un solo proceso
Introduccin a Linux 57
Operadores (2)
> (mayor que)
Direcciona un flujo hacia un archivo/dispositivo
Si el archivo no existe, lo crea. Si ya existe, lo sobreescribe
cat file.txt next.txt > total.txt
>> (doble mayor que)
Igual que >, pero si el archivo ya existe, agrega el texto al
final
cat hoy.log >> siempre.log
Introduccin a Linux 58
Operadores (3)
< (menor que)
Redireccionamiento hacia atrs
Enva el contenido de un archivo hacia el proceso anterior
mysql -u root bd < /home/file.sql
; (punto y coma)
Permite introducir mltiples comandos por lnea,
introduciendo uno tras de otro
echo 1; echo 2; echo 3
Introduccin a Linux 59
Operadores (4)
| (pipe)
Enva la salida de un proceso hacia otro.
til para hacer filtrados o para evitar el uso de archivos
temporales
cat /var/log/messages | egrep -i Oct 10
$( )
Tambin pueden utilizarse comillas invertidas ` `
Evala un comando al momento e inserta el resultado en la
lnea en que fue invocado
apt-get install linux-headers-$(uname r)
Introduccin a Linux 60
Operadores (5)
& (ampersand)
Ejecuta un comando y lo enva al fondo.
Regresa el control del cursor inmediatamente
mysql -p < proceso_largo.sql &
Introduccin a Linux 61
Scripts
Archivos de texto que contienen comandos por lotes
Mayoritariamente escritos en bash, pero cualquier
intrprete instalado es vlido
La primera lnea del archivo determina el intrprete
Deben hacerse ejecutables previamente:
chmod 755 miScript.sh
Es conveniente programar tareas largas en scripts
para ejecutarlas rpidamente
Introduccin a Linux 62
#!/bin/bash Declaracin del intrprete. Nos dice en que lenguaje est escrito el script
# Invocar como: sync_grabaciones <ao> <mes> <dia>
# Ejemplo: ./sync_grabaciones 2012 07 13 Comentarios
ORIGDIR=/var/spool/asterisk/monitorDONE/MP3
DESTDIR=/mnt/Grabaciones
FILE1=/tmp/find`date +"%N"` Constantes o valores iniciales
FILE2=/tmp/find`date +"%N"`
YEAR=$1
MONTH=$2 Argumentos de invocacin
DAY=$3
if [ ! -n "$1" ]
then
YEAR=`date +"%Y"`
En caso de que no se le proporcionen argumentos
MONTH=`date +"%m"` de invocacin, creamos los nuestros propios
DAY=`date +"%d"`
Fi
touch --date "$YEAR-$MONTH-$DAY 00:00:00" $FILE1 Creamos archivos temporales con la fecha de
touch --date "$YEAR-$MONTH-$DAY 23:59:59" $FILE2 modificacin que calculamos previamente
if [ ! -d $DESTDIR/$YEAR/$MONTH/$DAY ]
then
echo "Carpeta $DESTDIR/$YEAR/$MONTH/$DAY no existe. Creando"
Nos aseguramos que la carpeta
mkdir $DESTDIR/$YEAR de destino (AO/MES/DIA), exista.
mkdir $DESTDIR/$YEAR/$MONTH
mkdir $DESTDIR/$YEAR/$MONTH/$DAY
Si no, la creamos
fi
echo Procesando $YEAR $MONTH $DAY
find $ORIGDIR -maxdepth 1 -type f -name "*.mp3" -newer $FILE1 -not -newer $FILE2 -mmin +3 -exec mv {}
$DESTDIR/$YEAR/$MONTH/$DAY \;
Ejecutamos la sentencia de movimiento
rm $FILE1
rm $FILE2 Eliminamos los archivos temporales Introduccin a Linux 63
Crontab
Automatizador de tareas de Linux
Aqu se programan las tareas de mantenimiento que el
sistema debe ejecutar a ciertas horas
Se edita con crontab e
Recibe 5 argumentos que indican la hora y fecha de
ejecucin:
Minuto de la hora (0..59)
Hora del da (0..23)
Mes del ao (1..12)
Da del mes (1..31)
Da de la semana (0..6)
Introduccin a Linux 64
Ejemplos de Crontab
0 * * * * /miscript.sh
Ejecuta un script personalizado al minuto 0 de cada hora,
365 das al ao
30 5 * * * /sbin/reboot
Reiniciar el servidor todos los das a las 5:30 horas
0 12 1 1 * /miscript.sh
Ejecuta un script al medioda del 1 de enero
30 18 * * 5 /bin/mysqlbackup.sh
Hacer un respaldo de MySQL todos los viernes a las 18:30
horas
Introduccin a Linux 65
En resumen
Linux es un sistema operativo de cdigo abierto
Recuerda: es libre, no necesariamente gratis.
Todas las rutas parten desde /
Estructura jerrquica. Todo el sistema de archivos es un rbol.
Bash es su lenguaje nativo
Los operadores nos permiten encadenar comandos
<, >, >>, &, &&, |, ;
Podemos programar tareas con scripts y agendarlas con
el crontab
Un script debe tener permisos de ejecucin (chmod 755)
Es preferible trabajar remotamente con SSH
Ms cmodo, y podemos controlar el equipo desde donde sea
Introduccin a Linux 66
Evaluacin
No se olviden de contestar la evaluacin sobre lo
aprendido en este captulo:
http://enlaza.mx/quiz
Recuerda proporcionar tu correo electrnico y el
captulo que ests respondiendo.
Introduccin a telefona/VoIP 67