Professional Documents
Culture Documents
Funcionamiento
El protocolo SIP permite el establecimiento de sesiones multimedia entre
Agentes de Usuario
Los usuarios, que pueden ser seres humanos o aplicaciones de software,
utilizan para establecer sesiones lo que el protocolo SIP denomina
"Agentes de usuario". Estos son puntos extremos del protocolo, es decir
son los que emiten y consumen los mensajes del protocolo SIP. Un
videotelfono, un telfono, un cliente de software (softphone) y cualquier
otro dispositivo similar es para el protocolo SIP un agente de usuario. Los
agentes de usuario se comportan como clientes (UAC: User Agent
Clients) y como servidores (UAS: User Agent Servers). Son UAC cuando
realizan una peticin y son UAS cuando la reciben. Por esto los agentes
de usuario deben implementar un UAC y un UAS.
para
Propiedades Bsicas
IAX2 es robusto, lleno de novedades y muy simple en comparacin con
otros protocolos. Permite manejar una gran cantidad de cdecs y un gran
nmero de transmisiones conocidas como streams, lo que significa que
puede ser utilizado para transportar virtualmente cualquier tipo de dato.
Esta capacidad lo hace muy til para realizar videoconferencias o realizar
presentaciones remotas; utiliza un nico puerto UDP, generalmente el
4569, para comunicaciones entre puntos finales (terminales VoIP) para
sealizacin y datos. El trfico de voz es transmitido dentro de banda (inband), lo que hace a IAX2 un protocolo casi transparente a los
cortafuegos y realmente eficaz para trabajar dentro de redes internas. En
esto se diferencia de SIP, que utiliza una cadena RTP fuera de banda
(out-of-band) para entregar la informacin.
enviar
Objetivos de IAX
El principal objetivo de IAX ha sido minimizar el ancho de banda utilizado
en la transmisin de voz y vdeo a travs de la red IP, con particular
atencin al control y a las llamadas de voz y proveyendo un soporte
nativo para ser transparente a la traduccin de direcciones de red (NAT).
La estructura bsica de IAX se fundamenta en la multiplexacin de la
sealizacin y del flujo de datos sobre un simple puerto UDP entre dos
sistemas. El ancho de banda para algunas aplicaciones se sacrifica en
favor del ancho de banda para VoIP (6).
Ambiente de ejecucin
AST_DATA_DIR
AST_CONFIG_FILE
AST_LOG_DIR
AST_MODULE_DIR
AST_AGI_DIR
AST_SPOOL_DIR
AST_KEY_DIR
AST_MONITOR_DIR
AST_RUN_DIR
AST_VAR_DIR
informacin
Sintaxis
debe
manera
predeterminada,
inmediatamente
despus
de
configurado,
ellos
son
los
su
archivos
ejecucin.
copiados
call
son
eliminados
Si Archive:yes
al
est
directorio:
2.4 Macros
Una macro es una clase de subrutina; esta puede contener complejos
flujos de trabajos pero es llamada a travs de una nica entrada. Este
reduce la repeticin en el plan de marcado y hace que sea
impecable y ms pequeo.
ms
Sintaxis
Macro(name[,args(arg1[,arg2[,...]])])
MACRO_CONTEXT
en
MACRO_PRIORITY
muy poderoso
que
provee
este
software
para
el
valores
identificados por claves. Dentro de una familia, una clave puede ser
usada una sola vez. Por ejemplo si se tiene la familia llamada test, se
podra almacenar slo un valor con la clave llamada count. Cada valor
almacenado debe estar asociado con una familia.
Tambin
es equivalente
aplicar
el comando
en la
grupos
puerto
FXS y FXO son los nombres de los puertos usados por las lneas
telefnicas analgicas (tambin denominados POTS - Servicio Telefnico
Bsico y Antiguo). FXS es la interfaz de abonado externo es el puerto
que efectivamente enva la lnea analgica al abonado. En
otras
Pasarela FXO
Para conectar lneas telefnicas analgicas con una centralita IP, se
necesita una pasarela FXO. Ello le permitir conectar el puerto FXS con
el puerto FXO de la pasarela, que luego convierte la lnea telefnica
analgica en una llamada VOIP, vase la figura 2.4 a continuacin.
Pasarela FXS
necesitar una pasarela FXS ya que usted desea conectar los puertos
FXO (que normalmente se conectan a la empresa telefnica) a la Internet
o centralita VOIP, vase la figura 2.5 para comprenderlo mejor.
--
servidor
con la
1. Asegurarse
que
los
scripts
que
se
colocan
en
la
ruta
ejecucin
ya
que
se
la
requiere
en
el
script
cuya
configuracin
se
encuentra
en
el
archivo
yum
-y
install
mysql-server
mysql-devel
libtool-ltdl-devel
mysql-connector-odbc
4. En el caso de tener problemas de sources for kernel, emita
los siguientes comandos
newt-devel
./configure
make
make install
make install
make samples
make config
5. cd ../Asterisk-addons-1.4.7
2. cd dahdi-tools-current
make clean
./configure
./configure
make
make install
make install
make config
make samples
make
LISTO !!
make install
APNDICE B
INSTALACIN DE MYSQL
o sino:
3. Ingresar al directorio donde se encuentran las fuentes de Asterisk addons e instalar el soporte para mysql:
cd /usr/src/Asterisk-addons-
./configure
make menuselect
make
make install
APNDICE C
INSTALACIN DE PHP
3.1.1 Servidor
El servidor que ser la PBX Asterisk deber tener instalado los siguientes
elementos:
Linux
Centos 5.2
x86
Asterisk 1.4
sip.conf
[general]
srvlookup=yes
disallow=all
allow=alaw
allow=ulaw
allow=gsm
language=es
callwaiting=no
qualify=yes
calltransfer=no
callforwarding=no
[501]
type=friend
secret=501
qualify=yes
nat=yes
host=dynamic
canreinvite=no
context=internal
[502]
type=friend
secret=502
qualify=yes
nat=yes
host=dynamic
canreinvite=no
context=internal
iax.conf
[general]
disallow=all
allow=gsm
allow=alaw
allow=ulaw
jitterbuffer=yes
bindport=4569
language=es
callwaiting=no
[503]
type=friend
secret=503
host=dynamic
context=internal
callerid=503
requirecalltoken=no
archivo
chan_dahdi.conf
se encuentra
en
chan_dahdi.conf
[channels]
usecallerid=yes
hidecallerid=no
callwaiting=no
threewaycalling=yes
transfer=yes
echocancel=yes
echotraining=yes
inmediate=no
group=1
context=incoming
/etc/Asterisk.
signaling=fxs_ks
channel => 4
system.conf
fxsks=4
echocanceller=mg2,4
loadzone=us
defaultzone=us
correspondientes
Voicemail.conf
[default]
Language=es
501=>501,Orly Macias,micorreo@gmail.com,,tz=central|attach=yes
502=>502,Jose Cun,micorreo@gmail.com,,tz=central|attach=yes
503=>503,Juan Ramirez,micorreo@gmail.com,,tz=central|attach=yes
extensions.conf
[general]
autofallthrough=no
clearglobalvars=no
exten =>
_XXX,n,Set(GROUP(${CALLERID(num)})=OUTBOUND_GROUP)
exten =>
_XXX,n,GotoIf($[${GROUP_COUNT(OUTBOUND_GROUP@${EXTEN})
} > 1]?busy)
de
las
Con este script escrito en php y colocado en la ruta /var/lib/Asterisk/agibin se crea una base de datos con mysql que contiene los usuarios sip e
iax que estn configurados en los archivos correspondientes. Se debe
reemplazar la contrasea de root (labtelecom09) por el propio del
servidor Asterisk.
actualiza_base.agi
#!/usr/bin/php -q
<?php
require '/var/lib/Asterisk/agi-bin/phpagi-2.14/phpagi.php';
$agi=new AGI();
function connect_db()
{
$db_connection = mysql_connect ('localhost', 'root', 'labtelecom09') or die
(mysql_error());
$sql1 = "DROP DATABASE IF EXISTS Asterisk";
mysql_query($sql1);
$sql = "CREATE DATABASE Asterisk";
mysql_query($sql);
$sql2="GRANT INSERT ON Asterisk.* TO Asterisk@localhost
IDENTIFIED BY 'labtelecom09'";
mysql_query($sql2);
$db_select = mysql_select_db('Asterisk') or die (mysql_error());
$sql3="DROP TABLE IF EXISTS `sip`";
mysql_query($sql3);
$sql4= "CREATE TABLE `sip` (`peer` varchar(80) NOT NULL default '')";
mysql_query($sql4);
$sql5="DROP TABLE IF EXISTS `iax`";
mysql_query($sql5);
$sql6="CREATE TABLE `iax` (`peer` varchar(80) NOT NULL default '')";
mysql_query($sql6);
$sql7="DROP TABLE IF EXISTS `dahdi`";
mysql_query($sql7);
$sql8="CREATE TABLE `dahdi` (`peer` varchar(80) NOT NULL default
'')";
mysql_query($sql8);
}
//Programa principal
connect_db();
3.1.7 Script para identificacin del canal destino del nmero marcado
Con este script escrito en php y colocado en la ruta /var/lib/Asterisk/agibin se busca el nmero marcado o extensin para determinar el canal al
scrbasefinal.agi
#!/usr/bin/php -q
<?php
require '/var/lib/Asterisk/agi-bin/phpagi-2.14/phpagi.php';
$agi=new AGI();
function connect_db()
{
$db_connection = mysql_connect ('localhost', 'root', 'labtelecom09') or die
(mysql_error());
$db_select = mysql_select_db('Asterisk') or die (mysql_error());
}
function esSIP($cli){
$query1 = "SELECT peer FROM sip WHERE peer = '$cli' ";
$query_result1 = @mysql_query($query1);
$row_count = mysql_num_rows($query_result1);
function esIAX($cli){
$query1 = "SELECT peer FROM iax WHERE peer = '$cli' ";
$query_result1 = @mysql_query($query1);
$row_count = mysql_num_rows($query_result1);
$row1 = @mysql_fetch_array ($query_result1);
return $row_count;
}
//programa inicial
$cli1 = $argv[1];
connect_db();
if(esSIP($cli1)) { //registro ya existe en SIP
$temp="SIP";
}else if(esIAX($cli1)) {
$temp="IAX2";
}else {
$temp="";
}
$agi->set_variable("CHANN","1");
$agi->set_variable("CHANN","$temp");
mysql_close();
?>
Este softphone al igual que el zoiper tiene soporte para usuarios sip, la diferencia entre
ambos es que el zoiper tambin tiene soporte para usuarios iax. A continuacin se describe
como registrar un usuario sip en este softphone.
Instalacin de Asterisk
Descomprimimos el paquete de asterisk que descargamos en el captulo anterior.
tar -xzvf asterisk-1.8.9.1.tar.gz
cd asterisk-1.8.9.1/
Ejecutamos el comando ./configure con este comando se validarn las libreras y dependencias de nuestro servidor para
que asterisk pueda ser compilado
Ejecutamos make menuselect debe aparecer un mensaje como este:
Nota: Si llega a aparecer el siguiente mensaje Terminal must be at least 80 x 27 prueba ejecutando sobre la
terminal ctrl y el signo al tiempo para reducir el tamao de la fuente y darle espacio para que se pueda mostrar en
men de asterisk.
Aqu vamos a seleccionar los mdulos que cargaremos a Asterisk, por ahora nicamente vamos a ir a Core Sound Packages
y Extra Sound Packages, all habilitamos la opcin CORE-SOUNDS-ES-GSM y EXTRA-SOUNDS-ENGSM respectivamente (para seleccionar se utiliza la barra espaciadora).
Ahora presionamos ESC para salir y aparecer el siguiente mensaje:
Presionamos la tecla S para guardar y salir.