Teleco
Enviado por Programa Chuletas y clasificado en Matemáticas
Escrito el en español con un tamaño de 9,29 KB
ASTERISK Creada por Mark Spencer en 1999 Centralita en Linux utilizando lenguaje C Jim Dixon escribe un driver para una tarjeta Mitel89000C sobre FreeBSD Crea su propia tarjeta de nombre Tormenta y llama a su revolucionaria tecnología ZAPATA (Zapata Telephony Project)- Mark Spencer y Jim Dixon unen esfuerzos en un nuevo modelo de negocio y es fundada Digium como proveedor de servicios y productos de hardware y software para Asterisk.
Asterisk es una central telefó nica (PBX) en software bajo licencia GPL Ventajas Reducción de Costos. - Tener control completo del sistema de telefonía. - Plan de discado flexible y potente. - Ambiente de desarrollo fácil y rápido. - Corre bajo Linux y es Código Abierto. .Canales Es una conexión que conduce una llamada entrante o saliente en el sistema Asterisk. La conexión puede venir o salir hacia telefonía tradicional analógica o digital o VozIP. Por defecto, Asterisk soporta una serie de canales, los más importantes: - H.323, IAX2, SIP, MGCP: Protocolos VoIP - Console: GNU Linux OSS/ALSA sound system. - Zap: Líneas analógicas y digitales .API de canales: Sirve para controlar todas las llamadas del sistema, sean Voz IP, analógicas cualquier otra tecnología pudiendo desarrollar nuevos canales.Canales para la red Pública:chan_zap -> Digium Zaptel - chan_ss7 -> Digium con señalización SS7 Los CODECs son utilizados por asterisk para digitalizar la voz y ofrecer un ancho de banda adecuado a los entornos de trabajo (LAN, WAN). API de Traducció n de Codec Controla la traducción de CODECs entre participantes en una comunicación. Se puden implementar codecs nuevos.
Aplicaciones Para que Asterisk pueda conectar llamadas de entrada o salida, utilizar el buzón de voz, conferencia, etc. Necesita ejecutar aplicaciones.Es posible desarrollar nuevas aplicaicones mediante AGI (Asterisk Gateway Interface) utilizando lenguajes como C, C++, perl, php, java, etc. Archivos Asterisk soporta algunos tipos de archivos que utiliza para tocar audio como: mp3, wav, GSMsf, etc. Controla el formato de archivos que pueden ser controlados por el sistema.CODECs soportados: entre los principales
G.711 (ulaw / alaw) -> 64 Kbps -- G.726 -> 32 Kbps -- G.729 -> 8 Kbps (Necesita adquisición de licencia) --- GSM -> 12 - 13 Kbps
Protocolos soportados: entre los principales --- SIP ---- H.323 ---- MGCP ---- IAX ---- SCCP (Cisco Skinny) Protocolo IAX2: (Inter-Asterisk eXchange protocol) Creado por Mark Spencer para la señalización de VoIP en Asterisk. Este protocolo crea sesiones internas y dichas sesiones pueden utilizar cualquier códec que pueda transmitir voz o vídeo. IAX esencialmente provee control y transmisión de flujos de datos multimedia sobre redes IP; es extremadamente flexible y puede ser utilizado con cualquier tipo de dato incluido vídeo .-.-.
El Dialplan Como una “tabla de enrutado”. Cada número que marca una extensión va al dialplan, y ahí decidimos que hacer. Se organiza por contextos, extensiones y prioridades. exten => extensión, prioridad, aplicación .
La “extensión” puede ser cualquier cosa, no solo valen números:
exten => saul,1,Dial(SIP/saghul)
Se utilizan “patrones de marcado” para las extensiones (¡no vamos a meter todos los números del mundo!)
_: Comienzo del patrón.
X: Cualquier dígito del 0 al 9.
Z: Cualquier dígito del 1 al 9.
N: Cualquier dígito del 2 al 9.
[12-4]: Cualquier dígito entre los corchetes, 1,2,3,4.
.(punto): Cualquier cosa.
Las prioridades sirven para decidir el orden de las acciones al entrar en el dialplan.
Pueden utilizarse números:
exten => 1234,1,Answer()
exten => 1234,2,Playback(demo-congrats)
O la prioridad “n”, que va sumando 1 automáticamente:
exten => 1234,1,Answer()
exten => 1234,n,Playback(demo-congrats)
Si utilizamos números es fácil saltar:
exten => 123,1,Goto(1234,1)
Si usamos la prioridad “n” podemos hacer “marcas” en el dialplan, para luego poder saltar a ellas:
exten => 1234,n(mi-kosa),...
Y podemos hacer:
exten => 123,1,Goto(1234,mi-kosa)
Las extensiones se agrupan en contextos. Cada dispositivo SIP, IAX o entrada de ZAP se define para un contexto.
Un dispositivo solo puede “llamar” a los números que tiene definidos en el contexto en el que esta. En el ejemplo 1, solo podíamos marcar los números definidos en el contexto “default”. Un contexto puede incluir a otro:
[micontexto]
include => default
Ahora aunque mi dispositivo este definido en el contexto “micontexto” tiene acceso a todo el contexto “default”.
La aplicació n Dial permite realizar una llamada a un dispositivo. Su formato más sencillo es:
Dial(Tecnología/dispositivo,tiemout,opciones)
Donde opciones puede ser:
t: Permitir que el usuario llamado transfiera la llamada.
T: Permitir que el llamante transfiera la llamada.
r: Generar un tono de ring artificial.
w: Permite al usuario llamado grabar la llamada.
W: Permite que el llamante grabe la llamada
Tras un Dial correcto (se contesta la llamada), se termina la ejecució n de acciones en el dialplan y se pasa a la extensió n h (si existe):
exten => 1234,1,Dial(SIP/saghul)
exten => 1234,n,NoOp(Algo ha ido mal...)
La variable DIALSTATUS contiene informació n acerca del ú ltimo Dial realizado. Puede tomar los siguientes valores, entre otros: BUSY, NOANSWER, CHANUNAVAIL, ...
Nos puede servir para hacer distintas cosas dependiendo del estado de la ú ltima llamada.
APLICACION GOTOPermite realizar saltos dentro del dialplan.Se pueden realizar saltos en base a:
Prioridad o etiqueta. Extensión y prioridad (o etiqueta). Contexto, extensión y prioridad (o etiqueta).
Por ejemplo:
exten => 1234,1,Goto(servicios,1234,1)
Sip.conf
general]
context=default
[softphone]
type=friend
secret=1234
context=telf-internos
host=dynamic
[hardphone]
type=friend
secret=1234
context=telf-internos
host=dynamic
Para una lista completa de las aplicaciones disponibles:
*CLI>core show applications
VARIABLES Al igual que la variable DIALSTATUS, hay muchas variables en el entorno de Asterisk:
EXTEN: Contiene el número marcado. CONTEXT: Contiene el contexto actual. Una lista completa de las variables:
http://www.voip-info.org/wiki-Asterisk+variables
Las variables se pueden “recortar”${variable:desplazamiento:longitud} por ejemplo:
${variable}=saghul -> ${variable:1} => aghul
${variable:0:2}=sa
Se soportan expresiones básicas, encerrándolas entre corchetes:
exten => 1234,1,Set(kosa=$[6*5])
RECORD Permite grabar un fichero de sonido.
Sintaxis: Record(nombre.formato) Podemos utilizar %d en el nombre del fichero, así se utilizará un índice auto-incremental, para no sobreescribir grabaciones. El nombre del fichero queda guardado en la variable${RECORDED_FILE} Ejemplo: Record(sonido-asterisk%d.alaw)
VOICEMAIL
[general]
format=wav
maxmsg=100 //máximo número de mensajes
maxmessage=180
skipms=3000 //al rebobinar
maxsilence=10
maxlogins=3
[default]
200 => 1234,Pepe Perez
201 => 1234,Antonio Monje
Voicemail: Sirve para enviar la llamada a un buzón.
Los modificadores u y b permiten modificar la alocución que escuchará el usuario. VoicemailMain: IVR para la configuración del buzón de voz. GOTOIFTIME Esta aplicación realiza un salto condicional, dependiendo de la hora. Resulta muy útil en IVRs, para determinar si n os encontramos en horario de oficina o no, por ejemplo.
Sintaxis: GotoIfTime(hora|dias_semana|dias_mes|año?si_cierto) Ejemplos: GotoIfTime(09:00-19:30|mon-fri|*|*?7)
GotoIfTime(09:00-19:30|mon-fri|*|*?dentro_horario)
BIFURCACION CONDICIONAL.- Permite tomar desiciones dentro de nuestro dialplan Aplicación GotoIf( ( GotoIf(expresion1?destino1:destino2) Si la expresión evaluada es verdadera, la llamada es enviada a destino1, de lo contrario es enviada a destino2 BACKGROUND Esta aplicación es muy similar a Playback, pero puede ser interrumpida si el usuario marca un dígito. Muchas veces nos sabemos el IVR de la oficina de memoria y no queremos escucharlo entero. xD
Sintaxis Background(nombre-del-fichero)
[interno]
exten => 101,1,Answer( ) ; contesta la llamada
exten => 101,2,Background(enter-ext-of-person) ; espera digitos
exten => 1,1,Playback(digits/1) ; play digito 1
exten => 2,1, Playback(digits/2)
Asterisk es una central telefó nica (PBX) en software bajo licencia GPL Ventajas Reducción de Costos. - Tener control completo del sistema de telefonía. - Plan de discado flexible y potente. - Ambiente de desarrollo fácil y rápido. - Corre bajo Linux y es Código Abierto. .Canales Es una conexión que conduce una llamada entrante o saliente en el sistema Asterisk. La conexión puede venir o salir hacia telefonía tradicional analógica o digital o VozIP. Por defecto, Asterisk soporta una serie de canales, los más importantes: - H.323, IAX2, SIP, MGCP: Protocolos VoIP - Console: GNU Linux OSS/ALSA sound system. - Zap: Líneas analógicas y digitales .API de canales: Sirve para controlar todas las llamadas del sistema, sean Voz IP, analógicas cualquier otra tecnología pudiendo desarrollar nuevos canales.Canales para la red Pública:chan_zap -> Digium Zaptel - chan_ss7 -> Digium con señalización SS7 Los CODECs son utilizados por asterisk para digitalizar la voz y ofrecer un ancho de banda adecuado a los entornos de trabajo (LAN, WAN). API de Traducció n de Codec Controla la traducción de CODECs entre participantes en una comunicación. Se puden implementar codecs nuevos.
Aplicaciones Para que Asterisk pueda conectar llamadas de entrada o salida, utilizar el buzón de voz, conferencia, etc. Necesita ejecutar aplicaciones.Es posible desarrollar nuevas aplicaicones mediante AGI (Asterisk Gateway Interface) utilizando lenguajes como C, C++, perl, php, java, etc. Archivos Asterisk soporta algunos tipos de archivos que utiliza para tocar audio como: mp3, wav, GSMsf, etc. Controla el formato de archivos que pueden ser controlados por el sistema.CODECs soportados: entre los principales
G.711 (ulaw / alaw) -> 64 Kbps -- G.726 -> 32 Kbps -- G.729 -> 8 Kbps (Necesita adquisición de licencia) --- GSM -> 12 - 13 Kbps
Protocolos soportados: entre los principales --- SIP ---- H.323 ---- MGCP ---- IAX ---- SCCP (Cisco Skinny) Protocolo IAX2: (Inter-Asterisk eXchange protocol) Creado por Mark Spencer para la señalización de VoIP en Asterisk. Este protocolo crea sesiones internas y dichas sesiones pueden utilizar cualquier códec que pueda transmitir voz o vídeo. IAX esencialmente provee control y transmisión de flujos de datos multimedia sobre redes IP; es extremadamente flexible y puede ser utilizado con cualquier tipo de dato incluido vídeo .-.-.
El Dialplan Como una “tabla de enrutado”. Cada número que marca una extensión va al dialplan, y ahí decidimos que hacer. Se organiza por contextos, extensiones y prioridades. exten => extensión, prioridad, aplicación .
La “extensión” puede ser cualquier cosa, no solo valen números:
exten => saul,1,Dial(SIP/saghul)
Se utilizan “patrones de marcado” para las extensiones (¡no vamos a meter todos los números del mundo!)
_: Comienzo del patrón.
X: Cualquier dígito del 0 al 9.
Z: Cualquier dígito del 1 al 9.
N: Cualquier dígito del 2 al 9.
[12-4]: Cualquier dígito entre los corchetes, 1,2,3,4.
.(punto): Cualquier cosa.
Las prioridades sirven para decidir el orden de las acciones al entrar en el dialplan.
Pueden utilizarse números:
exten => 1234,1,Answer()
exten => 1234,2,Playback(demo-congrats)
O la prioridad “n”, que va sumando 1 automáticamente:
exten => 1234,1,Answer()
exten => 1234,n,Playback(demo-congrats)
Si utilizamos números es fácil saltar:
exten => 123,1,Goto(1234,1)
Si usamos la prioridad “n” podemos hacer “marcas” en el dialplan, para luego poder saltar a ellas:
exten => 1234,n(mi-kosa),...
Y podemos hacer:
exten => 123,1,Goto(1234,mi-kosa)
Las extensiones se agrupan en contextos. Cada dispositivo SIP, IAX o entrada de ZAP se define para un contexto.
Un dispositivo solo puede “llamar” a los números que tiene definidos en el contexto en el que esta. En el ejemplo 1, solo podíamos marcar los números definidos en el contexto “default”. Un contexto puede incluir a otro:
[micontexto]
include => default
Ahora aunque mi dispositivo este definido en el contexto “micontexto” tiene acceso a todo el contexto “default”.
La aplicació n Dial permite realizar una llamada a un dispositivo. Su formato más sencillo es:
Dial(Tecnología/dispositivo,tiemout,opciones)
Donde opciones puede ser:
t: Permitir que el usuario llamado transfiera la llamada.
T: Permitir que el llamante transfiera la llamada.
r: Generar un tono de ring artificial.
w: Permite al usuario llamado grabar la llamada.
W: Permite que el llamante grabe la llamada
Tras un Dial correcto (se contesta la llamada), se termina la ejecució n de acciones en el dialplan y se pasa a la extensió n h (si existe):
exten => 1234,1,Dial(SIP/saghul)
exten => 1234,n,NoOp(Algo ha ido mal...)
La variable DIALSTATUS contiene informació n acerca del ú ltimo Dial realizado. Puede tomar los siguientes valores, entre otros: BUSY, NOANSWER, CHANUNAVAIL, ...
Nos puede servir para hacer distintas cosas dependiendo del estado de la ú ltima llamada.
APLICACION GOTOPermite realizar saltos dentro del dialplan.Se pueden realizar saltos en base a:
Prioridad o etiqueta. Extensión y prioridad (o etiqueta). Contexto, extensión y prioridad (o etiqueta).
Por ejemplo:
exten => 1234,1,Goto(servicios,1234,1)
Sip.conf
general]
context=default
[softphone]
type=friend
secret=1234
context=telf-internos
host=dynamic
[hardphone]
type=friend
secret=1234
context=telf-internos
host=dynamic
Para una lista completa de las aplicaciones disponibles:
*CLI>core show applications
VARIABLES Al igual que la variable DIALSTATUS, hay muchas variables en el entorno de Asterisk:
EXTEN: Contiene el número marcado. CONTEXT: Contiene el contexto actual. Una lista completa de las variables:
http://www.voip-info.org/wiki-Asterisk+variables
Las variables se pueden “recortar”${variable:desplazamiento:longitud} por ejemplo:
${variable}=saghul -> ${variable:1} => aghul
${variable:0:2}=sa
Se soportan expresiones básicas, encerrándolas entre corchetes:
exten => 1234,1,Set(kosa=$[6*5])
RECORD Permite grabar un fichero de sonido.
Sintaxis: Record(nombre.formato) Podemos utilizar %d en el nombre del fichero, así se utilizará un índice auto-incremental, para no sobreescribir grabaciones. El nombre del fichero queda guardado en la variable${RECORDED_FILE} Ejemplo: Record(sonido-asterisk%d.alaw)
VOICEMAIL
[general]
format=wav
maxmsg=100 //máximo número de mensajes
maxmessage=180
skipms=3000 //al rebobinar
maxsilence=10
maxlogins=3
[default]
200 => 1234,Pepe Perez
201 => 1234,Antonio Monje
Voicemail: Sirve para enviar la llamada a un buzón.
Los modificadores u y b permiten modificar la alocución que escuchará el usuario. VoicemailMain: IVR para la configuración del buzón de voz. GOTOIFTIME Esta aplicación realiza un salto condicional, dependiendo de la hora. Resulta muy útil en IVRs, para determinar si n os encontramos en horario de oficina o no, por ejemplo.
Sintaxis: GotoIfTime(hora|dias_semana|dias_mes|año?si_cierto) Ejemplos: GotoIfTime(09:00-19:30|mon-fri|*|*?7)
GotoIfTime(09:00-19:30|mon-fri|*|*?dentro_horario)
BIFURCACION CONDICIONAL.- Permite tomar desiciones dentro de nuestro dialplan Aplicación GotoIf( ( GotoIf(expresion1?destino1:destino2) Si la expresión evaluada es verdadera, la llamada es enviada a destino1, de lo contrario es enviada a destino2 BACKGROUND Esta aplicación es muy similar a Playback, pero puede ser interrumpida si el usuario marca un dígito. Muchas veces nos sabemos el IVR de la oficina de memoria y no queremos escucharlo entero. xD
Sintaxis Background(nombre-del-fichero)
[interno]
exten => 101,1,Answer( ) ; contesta la llamada
exten => 101,2,Background(enter-ext-of-person) ; espera digitos
exten => 1,1,Playback(digits/1) ; play digito 1
exten => 2,1, Playback(digits/2)