Diferencia entre revisiones de «Asterisk Realtime»

De Asterisk Wiki
Ir a la navegación Ir a la búsqueda
Línea 40: Línea 40:
  
 
* '''sippeers''': Sirve para almacenar toda la información específica de los pares [[SIP]].
 
* '''sippeers''': Sirve para almacenar toda la información específica de los pares [[SIP]].
* '''sipregs''': Sirve para almacenar, todos los comandos "register" ([[SIP]]: '''register =>''').
+
* '''sipregs''': Sirve para almacenar, todos los comandos "register" ([[SIP]]: '''register =>'''). No es muy recomendable utilizarla dado que su funcionamiento no es todo lo deseable que debería, y probablemente quede obsoleta próximamente.
  
 
Por lo demás el resto de la configuración ha de hacerse de forma estática en el fichero para el protocolo [[SIP]] de momento.
 
Por lo demás el resto de la configuración ha de hacerse de forma estática en el fichero para el protocolo [[SIP]] de momento.
Línea 46: Línea 46:
 
==== Estructura SipPeers ====
 
==== Estructura SipPeers ====
  
Para crear la tabla en la base de datos sippeers, tenemos que definir los siguientes campos<ref>[http://www.voip-info.org/wiki/view/Asterisk+RealTime+Sip Tabla SIP Peers], Varios Autores, Voopinfo LLC</ref>:
+
Es posible crear la tabla completa en la base de datos sippeers, tenemos que definir los siguientes campos<ref>[http://www.voip-info.org/wiki/view/Asterisk+RealTime+Sip Tabla SIP Peers], Varios Autores, Voopinfo LLC</ref>:
  
 
{{Database|sippeers|CREATE TABLE `pares_sip` (<br>`id` int(11) NOT NULL AUTO_INCREMENT,<br>`name` varchar(80) NOT NULL DEFAULT '',<br>`context` varchar(80) DEFAULT NULL,<br>
 
{{Database|sippeers|CREATE TABLE `pares_sip` (<br>`id` int(11) NOT NULL AUTO_INCREMENT,<br>`name` varchar(80) NOT NULL DEFAULT '',<br>`context` varchar(80) DEFAULT NULL,<br>
Línea 69: Línea 69:
 
) ENGINE &#61; MyISAM DEFAULT CHARSET &#61; latin1 ROW_FORMAT &#61; DYNAMIC}}
 
) ENGINE &#61; MyISAM DEFAULT CHARSET &#61; latin1 ROW_FORMAT &#61; DYNAMIC}}
  
 +
También existen versiones mas reducidas, dependiendo realmente del número de campos que vayamos a dar uso. Hay que considerar que gran parte de los campos son las distintas propiedades especificas de los pares [[SIP]] y muchos tienen tendencia a quedar obsoletos próximamente dadas las eventuales mejoras que en el sistema Asterisk va produciéndose constantemente.
 +
 +
== Canal IAX ==
 +
 +
El canal [[IAX]] posee las siguientes tablas disponibles:
 +
 +
* '''iaxpeers''': Similar al '''sippeers''' sirve para definir los pares [[IAX]].
 +
* '''iaxusers''': Sirve para definir los pares tipo user de [[IAX]], hay que considerar que esta tabla va quedando obsoleta en favor de iaxpeers, al igual que ya lo hizo la tabla "sipusers" en su día.
 +
 +
=== Estructura IAXPeers ===
 +
 +
En este caso, también tenemos acceso a una tabla especifica <ref>[http://www.voip-info.org/wiki/view/Asterisk+RealTime+IAX Tabla IAX Peers] Varios Autores, Voopinfo LLC</ref> para definir todos los parámetros en detalle de los dispositivos [[IAX]], y hay que considerar, que la tabla puede ajustarse a una versión mas personalizada para que se ajuste únicamente a las necesidades nuestras. Es importante tener en cuenta que las versiones personalizadas, han de contener todos los parámetros que hacen referencia a valores que registra Asterisk por defecto para mantener un control del sistema:
 +
 +
{{Database|iaxpeers| }}
  
 
== Referencias ==
 
== Referencias ==
Línea 76: Línea 90:
 
== Véase también ==
 
== Véase también ==
  
* [[Pagina Pruebas]]
+
* [[SIP]]
 +
* [[IAX]]
 +
* [[Colas]]
 +
* [[MeetMe]]
 +
* [[Buzones de Voz]]
 +
* [[Música en Espera]]
  
 
== Enlaces Externos ==
 
== Enlaces Externos ==
  
* [http://www.10000horas.com 10000 Horas] es un ejemplo de enlace externo
+
* [http://10000horas.com/asterisk/2011/12/08/montando-un-sistema-asterisk-autonomo-i/ Ejemplo de Configuración] de un sistema ARA para el uso de pares SIP.
  
 
[[Categoría:General]]
 
[[Categoría:General]]

Revisión del 16:43 4 jun 2012

Format.png Formatear
Esta página necesita ser editada para cumplir los requisitos del wiki.
Puedes revisar todas las páginas sin suficiente formato en este enlace.
Alert.png To Do
Esta página necesita ser completada.
Puedes revisar todas las páginas por completar en este enlace.


La arquitectura Asterisk Realtime, también llamada ARA (Asterisk Realtime Architecture), es un mecanismo que surgió a partir de la versión 1.2 de Asterisk y permitía poder realizar la configuración de varios aspectos del sistema en tiempo real, de forma dinámica a traves del uso de Bases de Datos relacionales, donde se contienen los parámetros de configuración al detalle, en vez de utilizar los clásicos ficheros de texto.

Logo Asterisk

Usando Realtime

Si comparamos el uso de Asterisk Realtime, con el resto de los modos de configuración podemos destacar que la principal ventaja radica en la flexibilidad y la escalabilidad del sistema, además de la facilidad en las configuraciones sucesivas. Eventualmente la puesta en marcha podría considerarse el único aspecto negativo, pero una vez hecho esto, supera al resto de las opciones con diferencia.

Es muy práctico plantearse el hecho de montar un sistema Realtime, en base a una estructura a modo plantilla que podría servir en sucesivas instalaciones aminorando el tiempo total de puesta en marcha y en consecuencia ofreciendo aún más potencial.

Si consideramos que la flexibilidad que aporta un fichero de texto es mínima conjuntamente a otras opciones como la configuración a través de comandos AMI, o a través de la CLI dado que en una posible instancia estamos "obligados" a ofrecer total control en cualquiera de los casos, a un usuario que pudiera tener el acceso a cualquiera de estas tres alternativas, mientras que utilizando el sistema Realtime, al alojarse en una base de datos, podríamos utilizar cualquier lenguaje de programación, para conectar a la misma, y adaptar una aplicación, específicamente a las necesidades concretas de la organización.

Prácticamente cualquier tipo de Base de datos de tipo relacional es apta para este sistema, pero hay que considerar que Asterisk solo integra módulos de tipo recursos para establecer la conexión directa mediante tres vías populares:

  • Bases de Datos MySQL
  • Bases de Datos PostgreSQL
  • Conectividad a través de un driver ODBC, que a su vez, ofrecería la posibilidad de conectar prácticamente al 100% de las bases de datos del mercado (Microsoft SQL, Oracle 1Xg, IBM U2, etc).

En estos momentos, aunque los recursos para conectar directamente via MySQL y PostgreSQL siguen operativos, se espera que pasen a estar obsoletos en un corto periodo de tiempo, dado que la conectividad a traves del driver ODBC supone un sistema mas universal y cuyo desarrollo y perfeccionamiento supone mas estabilidad que el mantenimiento de un modulo especifico por cada Base de Datos que queremos dotar de soporte.

Módulos Convertibles

Es posible convertir al sistema RealTime varios Módulos de Asterisk. Parte de ellos se consideran el sistema "Estático", dado que su configuración no esta basada en la idea de necesitar estar cambiandolos regularmente, solamente la ventaja de que al introducir cambios en los mismos, no tener que realizar una recarga del fichero desde la CLI para que los cambios quedasen efectuados.

Canal SIP

El canal SIP esta compuesto por las siguientes tablas:

  • sippeers: Sirve para almacenar toda la información específica de los pares SIP.
  • sipregs: Sirve para almacenar, todos los comandos "register" (SIP: register =>). No es muy recomendable utilizarla dado que su funcionamiento no es todo lo deseable que debería, y probablemente quede obsoleta próximamente.

Por lo demás el resto de la configuración ha de hacerse de forma estática en el fichero para el protocolo SIP de momento.

Estructura SipPeers

Es posible crear la tabla completa en la base de datos sippeers, tenemos que definir los siguientes campos[1]:

Tabla: sippeers
CREATE TABLE `pares_sip` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(80) NOT NULL DEFAULT ,
`context` varchar(80) DEFAULT NULL,

`callingpres` enum('allowed_not_screened','allowed_passed_screen','allowed_failed_screen','allowed','prohib_not_screened','prohib_passed_screen','prohib_failed_screen','prohib','unavailable') DEFAULT 'allowed_not_screened',
`deny` varchar(95) DEFAULT NULL,
`permit` varchar(95) DEFAULT NULL,
`secret` varchar(80) DEFAULT NULL,
`md5secret` varchar(80) DEFAULT NULL, `remotesecret` varchar(250) DEFAULT NULL,
`transport` enum('tcp','udp','tcp,udp') DEFAULT NULL,
`host` varchar(31) NOT NULL DEFAULT ,
`nat` varchar(5) NOT NULL DEFAULT 'no',
`type` enum('user','peer','friend') NOT NULL DEFAULT 'friend',
`accountcode` varchar(20) DEFAULT NULL,
`amaflags` varchar(13) DEFAULT NULL,
`callgroup` varchar(10) DEFAULT NULL, `callerid` varchar(80) DEFAULT NULL,
`defaultip` varchar(15) DEFAULT NULL,
`dtmfmode` varchar(7) DEFAULT NULL,
`fromuser` varchar(80) DEFAULT NULL,
`fromdomain` varchar(80) DEFAULT NULL, `insecure` varchar(4) DEFAULT NULL,
`language` char(2) DEFAULT NULL,
`mailbox` varchar(50) DEFAULT NULL,
`pickupgroup` varchar(10) DEFAULT NULL,
`qualify` char(3) DEFAULT NULL,
`regexten` varchar(80) DEFAULT NULL,
`rtptimeout` char(3) DEFAULT NULL,
`rtpholdtimeout` char(3) DEFAULT NULL,
`setvar` varchar(100) DEFAULT NULL,
`disallow` varchar(100) DEFAULT 'all',
`allow` varchar(100) DEFAULT 'g729;ilbc;gsm;ulaw;alaw',
`fullcontact` varchar(80) NOT NULL DEFAULT ,
`ipaddr` varchar(15) NOT NULL DEFAULT
,
`port` mediumint(5) unsigned NOT NULL DEFAULT '0',
`username` varchar(80) NOT NULL DEFAULT ,
`defaultuser` varchar(80) NOT NULL DEFAULT
,
`subscribecontext` varchar(80) DEFAULT NULL,
`directmedia` enum('yes','no') DEFAULT NULL,
`trustrpid` enum('yes','no') DEFAULT NULL,
`sendrpid` enum('yes','no') DEFAULT NULL,
`progressinband` enum('never','yes','no') DEFAULT NULL,
`promiscredir` enum('yes','no') DEFAULT NULL,
`useclientcode` enum('yes','no') DEFAULT NULL,
`callcounter` enum('yes','no') DEFAULT NULL,
`busylevel` int(10) unsigned DEFAULT NULL,
`allowoverlap` enum('yes','no') DEFAULT 'yes',
`allowsubscribe` enum('yes','no') DEFAULT 'yes',
`allowtransfer` enum('yes','no') DEFAULT 'yes',
`ignoresdpversion` enum('yes','no') DEFAULT 'no',
`template` varchar(100) DEFAULT NULL,
`videosupport` enum('yes','no','always') DEFAULT 'no',
`maxcallbitrate` int(10) unsigned DEFAULT NULL,
`rfc2833compensate` enum('yes','no') DEFAULT 'yes',
`session-timers` enum('originate','accept','refuse') DEFAULT 'accept', `session-expires` int(5) unsigned DEFAULT '1800',
`session-minse` int(5) unsigned DEFAULT '90',
`session-refresher` enum('uac','uas') DEFAULT 'uas',
`t38pt_usertpsource` enum('yes','no') DEFAULT NULL,
`outboundproxy` varchar(250) DEFAULT NULL,
`callbackextension` varchar(250) DEFAULT NULL,
`registertrying` enum('yes','no') DEFAULT 'yes',
`timert1` int(5) unsigned DEFAULT '500',
`timerb` int(8) unsigned DEFAULT NULL,
`qualifyfreq` int(5) unsigned DEFAULT '120',
`contactpermit` varchar(250) DEFAULT NULL,
`contactdeny` varchar(250) DEFAULT NULL,
`lastms` int(11) NOT NULL,
`regserver` varchar(100) NOT NULL DEFAULT ,
`regseconds` int(11) NOT NULL DEFAULT '0',
`useragent` varchar(50) NOT NULL DEFAULT ,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),

KEY `name_2` (`name`)

) ENGINE = MyISAM DEFAULT CHARSET = latin1 ROW_FORMAT = DYNAMIC


También existen versiones mas reducidas, dependiendo realmente del número de campos que vayamos a dar uso. Hay que considerar que gran parte de los campos son las distintas propiedades especificas de los pares SIP y muchos tienen tendencia a quedar obsoletos próximamente dadas las eventuales mejoras que en el sistema Asterisk va produciéndose constantemente.

Canal IAX

El canal IAX posee las siguientes tablas disponibles:

  • iaxpeers: Similar al sippeers sirve para definir los pares IAX.
  • iaxusers: Sirve para definir los pares tipo user de IAX, hay que considerar que esta tabla va quedando obsoleta en favor de iaxpeers, al igual que ya lo hizo la tabla "sipusers" en su día.

Estructura IAXPeers

En este caso, también tenemos acceso a una tabla especifica [2] para definir todos los parámetros en detalle de los dispositivos IAX, y hay que considerar, que la tabla puede ajustarse a una versión mas personalizada para que se ajuste únicamente a las necesidades nuestras. Es importante tener en cuenta que las versiones personalizadas, han de contener todos los parámetros que hacen referencia a valores que registra Asterisk por defecto para mantener un control del sistema:

Tabla: iaxpeers


Referencias

  1. Tabla SIP Peers, Varios Autores, Voopinfo LLC
  2. Tabla IAX Peers Varios Autores, Voopinfo LLC

Véase también

Enlaces Externos