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: [email protected] 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
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 [email protected]

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] [email protected]=5 maxmsg=100maxmsg=100 delete=noattach=yes [email] include => general200 =>123,vicente,[email protected] => 789564,maria,[email protected] [4001] include => general4001 => 845962,jose,[email protected] [3001] include => general3001 => 145263,fulano,[email protected]