Postagens

Importação do arquivo CNL Anatel para banco de dados

O CNL (Cadastro Nacional de Localidades) é um arquivo disponibilizado pela ANATEL com a relação da localização geográfica do plano de numeração telefônico brasileiro, nele são listados todos os prefixos telefônicos e as respectivas localidades. Através deste arquivo também é possível determinar se para uma determinada chamada com números de origem e destino de mesmo DDD será necessário ou não a utilização de CSP e código de área para o completamento. Os prefixos que fazem parte de uma mesma área local são definidos pelo último campo do arquivo (Sigla CNL da Área Local).

Formato:
ID NOME DO CAMPO
01 Sigla UF
02 Sigla CNL
03 Codigo CNL
04 Nome da Localidade
05 Nome do Municipio
06 Cod. da Area Tarifacao
07 Prefixo
08 Prestadora
09 Num. da Faixa Inicial
10 Num. da Faixa Final
11 Latitude
12 Hemisfério
13 Longitude
14 Sigla CNL da Área Local


Vamos ver como utilizamos essas informações:
-Supondo que meu número telefônico é (68) 3238-1234 e o número para o qual eu quero ligar é (68) 3548-4321
-Para cada um do…

Despertador em ael para Asterisk

Um simples despertador construído em AEL no Asterisk:

Discador para Asterisk - Integrado com banco de dados

Umas das funções mais interessantes do Asterisk é a de discador automático. Através dos arquivos *.call colocados no diretório /var/spool/asterisk/outgoing, sempre que é criado/colocado um arquivo com esta extensão(.call) neste diretório (logicamente, dentro dos padrões exigidos), o Asterisk gera uma chamada através do canal especificado lá dentro.
Maiores detalhes sobre o padrão dos ditos arquivos podem ser encontrados no Voip-Info.org, detalhadamente e com vários exemplos.

Quanto à utilidade, aí vai da necessidade de cada um, pode ser desde apenas rodar uma mensagem para quem atendeu, realizar uma pesquisa, encaminhar para uma fila de atendimento...
A proposta do script que vou apresentar é fazer a função de um discador, que trabalha full-time buscando registros de uma tabela e realizando chamadas para aqueles números que ainda não foram discados, ou seja, sempre que um número for adicionado à tabela e o Asterisk não estiver com o limite de canais ocupados que definimos na variável CHA…

Configuração de placas E1 R2 e ISDN no Asterisk

Seguem meus exemplos dos arquivos de configuração plenamente funcionais, rodando em Asterisk 1.8, DAHDI 2.4, OpenR2 1.3.3:

Sinalização MFCR2 Arquivo /etc/dahdi/system.conf:


Arquivo /etc/asterisk/chan_dahdi.conf:




Sinalização ISDN

Arquivo /etc/dahdi/system.conf:


Arquivo /etc/asterisk/chan_dahdi.conf



Para consultoria e desenvolvimento de soluções de voz sobre IP contate-nos através do e-mail contato@astdocs.com.

Criando macro no Asterisk

Vai ai um pequeno exemplo de como construir e utilizar macros no Asterisk.

Nesse exemplo farei tudo no extensions.conf.

A nossa macro terá a função de realizar a discagem, automatizando procedimentos que teriam que ser repetidos várias vezes em cada contexto.

Para facilitar o entendimento vou começar mostrando como vamos chamar a macro no plano de discagem:



Onde:

exten => _x.,1,Macro(nomedamacro,${ARG1},${ARG2},${ARG3})

Na aplicação Macro, chamamos a macro e enviamos os argumentos que serão tratados pela macro em si. Lá no exemplo anterior temos o seguinte:

dial:o primeiro parâmetro é sempre o nome da macro que estamos chamando ([macro-dial]: o nome é dial). O nome da macro obrigatoriamente deve ter essa sintaxe, "macro", "-","nomedamacro" (ex. macro-dial, macro-ddd, macro-conferencia).
${ARG1} = SIP
${ARG2} = ${EXTEN}
${ARG3} = ${SIPPEER(${CALLERID(num)},context)}
E assim por diante se tivéssemos mais argumentos( ${ARG4},${ARG5},${ARG...}).

Agora a macro(dentro d…

Aplicações Asterisk - GotoIf

Aí vai uma dica para utilização da aplicação GotoIf do Asterisk

A aplicação GotoIf executa um teste lógico, se verdadeiro toma uma ação, se falso toma outra ação.

Exemplificando:

[pbx]
exten => 200,1,GotoIf($[${CALLERID(num)}=100]?sim:nao)      ;Teste lógico;
same  => n(sim),Playback(ola)                                                        ;Rótulo "sim";
same  => n(nao),HangUp                                                                 ;Rótulo "nao";

O que faz este contexto: executa o audio "ola" se o CALLERID de quem ligou for 100.

Cuidado, executando o rótulo "sim", de qualquer maneira ele vai executar o rótulo "nao", é a sequência do plano de discagem.

Agora um GotoIf um pouco mais elaborado:

[pbx]
exten => _X.,1,Read(minhasenha,digitesuasenha,4)
same => n,Set(SENHA=1234)
same => n,GotoIf($[${MINHASENHA}=${SENHA}]?autorizado:negado)
same => n(autorizado),Goto(menu1,,1)
same => n(negado),Playback(senhaincorretatenteno…

Instalando Asterisk e Dahdi complete no CentOS

O presente tutorial tem por objetivo a instalação do Dahdi Complete e Asterisk no CentOS 6.3 (CentOS-6.3-i386-minimal).

Para começar, acesse o seu servidor via SSH. Todos os comandos abaixo listados devem ser executados como "root".

Atualização do CentOS:
yum update

yum upgrade

yum install wget

Dependências download e instalação do Dahdi:

yum install kernel-devel gcc make gcc-c++ libxml2-devel perl

cd /usr/src

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz

 tar zxvf dahdi-linux-complete-current.tar.gz

cd dahdi-linux-complete-2.6.1+2.6.1/


make all

make install

make config

cd ..

**Caso, ao executar o comando "make all" apareça o erro "You do not appear to have the sources for the 2.6.32-279.el6.i686 kernel installed." crie um link simbólico para o kernel source referente ao kernel-release do seu sistema no diretório /usr/src/kernels/

cd /usr/src/kernels/

ls

Irá apresentar algo como "2.6.32-279.14.1.el6.i686"