Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Macros no Asterisk, Notas de estudo de Engenharia de Telecomunicações

Essa apresentação contém os benefícios de utilização de macros no asterisk. Qualquer duvida podem mandar um email para: vicente.proj@hotmail.com Ou visitar o endereço do you tube que contém muitos vídeos ensinando a configurar o asterisk. http://www.youtube.com/user/voipjava

Tipologia: Notas de estudo

2012

Compartilhado em 28/12/2012

vicente-nobre-7
vicente-nobre-7 🇧🇷

3 documentos

1 / 30

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Macros no Asterisk
Vicente de Paula Nobre
vicente.proj@hotmail.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Pré-visualização parcial do texto

Baixe Macros no Asterisk e outras Notas de estudo em PDF para Engenharia de Telecomunicações, somente na Docsity!

Macros no Asterisk Vicente de Paula Nobre vicente.proj@hotmail.com

Macros no Asterisk  São sub-rotinas que tem o objetivo de simplificar oplano de^ discagem^ eliminando

a^ necessidade

de

repetição de regras.  As^ macros^ funcionam

como^ funções^

dentro^ do^ plano

^ As^ macros^ funcionam

como^ funções^

dentro^ do^ plano

discagem onde pode ser passado parâmetros a seremexecutados dentro da macro.

Macros no Asterisk  As macros funcionam semelhantes aos contextos dentro doarquivo extensions.conf.  Porém uma macro é definida através da seguinte sintaxe:  [macro-Nome da Macro] [macro-Nome da Macro]  Além disso as macros devem sempre ser executadas atravésda extensão^ s^ do asterisk que significa start, ou, seja nãopode ser usada nenhuma extensão diferente de

s.

Macros no Asterisk  As macros são usadas para processar extensões de formaque não seja^ necessário^ a

criação^ de^ varias

linhas^ de

comandos para cada extensão. Sintaxe na chamada de uma Macro:  Sintaxe na chamada de uma Macro:^ Macro(NomeDaMacro, arg1, arg2,..., argN)

Macros no Asterisk^ Variáveis de Canal Nome da Variável

Descrição ARGn

Usado para passar parâmetros para as macros, são enumerados deacordo com a ordem de chamada. Contém o valor^ da variável CONTEXT durante a chamada da MACRO_CONTEXT

Contém o valor^ da variável CONTEXT durante a chamada da macro. MACRO_EXTEN

Contém o valor da variável EXTEN durante a chamada damacro. MACRO_PRIORITY Contém o número da prioridade que chamou a macro. MACRO_OFFSET

Influencia na prioridade de execução ao sair da macro.Se^ ${MACRO_OFFSET}

, for colocado no termino, a macro tentará continuar na prioridade

MACRO_OFFSET+N+

, se tal passo existir e N+1caso contrario.

Macros no Asterisk

^ Exemplo 2 – Correio de Voz:^ [ramais]exten=> _40XX,1,Macro(chamada, SIP/${EXTEN},20, tTwW, 200@email)^ [macro-chamada]exten=> s,1,Dial(${ARG1}, ${ARG2}, ${ARG3})exten => s,2,GoToIf($[${DIALSTATUS} = ANSWER]? 4)exten => s,3,VoiceMail(${ARG4})exten=> s,4,HangUp()

^ Comando Goto: ^ O comando^ Goto

, muda a ordem de execução do plano de

Macros no Asterisk discagem. Sintaxe: ;Desvia para um contexto, extensão e prioridade especificada. GoTo(contexto, extensão, prioridade) ;Desvia para a extensão e a prioridade dentro do próprio contexto. GoTo(extensão, prioridade); Desvia para prioridade especificada dentro do próprio contexto. GoTo(prioridade)

Macros no Asterisk

^ Exemplo 3 - Sem o Uso da Macro:^ [ramais]exten=> _40XX,1,Dial(SIP/${EXTEN},20,tTwW)exten=> _40XX,n,GotoIf($[${DIALSTATUS}=CHANUNAVAIL |^ ${DIALSTATUS}=NOANSWER]?

indisponivel^ : ocupado)

${DIALSTATUS}=NOANSWER]?

indisponivel^ : ocupado)

exten=> _40XX,n(indisponivel),VoiceMail(${EXTEN},u)exten=> _40XX,n,HangUp()exten=> _40XX,n(ocupado),VoiceMail(${EXTEN},b)exten=> _40XX,n,HangUp()

^ Operadores Lógicos:^ O exemplo anterior usou o operador lógico | (Ou, Or doinglês) na função

GoToIf , existem vários operadores

Macros no Asterisk lógicos, como descrito na tabela abaixo: Operadores Lógicos

Descrição & E | OU = Igual > Maior que < Menor que >= Maior ou igual que <= Menor ou igual que != Diferente

Macros no Asterisk  Operadores Matemáticos: No asterisk também existem os operadores matemáticos,que podem ser usados para sofisticar o seu plano dediscagem, como descrito na tabela abaixo: Operadores Matemáticos

Descrição Operadores Matemáticos

Descrição + Soma- Subtração* Multiplicação/ Divisão% Modulo

Macros no Asterisk

^ Exemplo 4 - Criação da Macro Correio:^ [macro-ramal]^ exten=> s,1,Dial(${ARG1}/${ARG2},20,

tTwW)

[ramais]exten=> _40XX,1,Macro(ramal, SIP, ${EXTEN})exten=> _30XX,1,Macro(ramal, IAX2, ${EXTEN}) exten=> s,1,Dial(${ARG1}/${ARG2},20,

tTwW)

exten=> s,n,Macro(correio,${DIALSTATUS},${ARG2}) [macro-correio]exten=> s,1,GotoIf($[${ARG1}=CHANUNAVAIL|${ARG1}=NOANSWER|${ARG1}=CONGESTION]?indisponivel:ocupado)exten=> s,n(indisponivel),VoiceMail(${ARG2},u)

; Indisponível

exten=> s,n,HangUp()exten=> s,n(ocupado),VoiceMail(${ARG2},b)

; Ocupado

exten=> s,n,HangUp()

^ Retorno da Variável DIALSTATUS:^ O exemplo anterior, usou alguns tipos de status que a variável^ DIALSTATUS

Macros no Asterisk do asterisk retorna, a tabela abaixo os descreve: VARIÁVEL

DESCRIÇÃO

CHANUNAVAIL^ Canal de destino indisponível. NOANSWER^ O destino não atendeu a chamada. BUSY^ O^

destino estava ocupado. BUSY^ O^

destino estava ocupado. ANSWER^ Chamada atendida. CONGESTION^ Não havia canais disponíveis para completar a chamada.^ O originador da chamada cancelou antes que a chamada fosse CANCEL completada. DONTCALL^ Chamadas são rejeitadas, pelo modo de privacidade.^ O destino decidiu enviar a chamada para o menu, pelo modo de TORTURE privacidade. INVALIDARGS^ Alguns dos argumentos passados estavam inválidos.

^ Exemplo 4 – Observação – Criação da Conta IAX:^ ^ Para que funcionem os exemplos anteriores, devem-se criar ascontas SIP ou IAX e o VoiceMail:

Macros no Asterisk^ ;Arquivo iax.conf[3001]^ host= dynamic ;Arquivo iax.conf[general] port=^

host=dynamic type=friendauth=md5context=ramaisusername=3001secret=3001callerid=3001mailbox=3001 ; mailbox=300@email port=4569 bindaddr=0.0.0.0disallow=allallow=gsmlanguage=pt_BR

^ Exemplo 4 – Observação – Criação do VoiceMail:^ ^ Para que funcionem os exemplos anteriores, devem-se criar ascontas SIP ou IAX e o VoiceMail:

Macros no Asterisk ;Arquivo voicemail.conf[general] format=gsmserveremail=asterisk@hotmail.commaxlogins=5 maxmsg=100maxmsg=100 delete=noattach=yes [email] include => general200 =>123,vicente,vicente.proj@hotmail.com300 => 789564,maria,maria@gmail.com [4001] include => general4001 => 845962,jose,jose@yahoo.com.br [3001] include => general3001 => 145263,fulano,fulano@email.com