Category Archives: asterisk

Habilitar licença de fax no Asterisk

tux_kisuke

Eae pessoal, testei a instalação do free fax for asterisk que você pode obter no site do asterisk.org faça seu cadastro completo, e clique na opção FAX LICENSE FREE.

Objetivo no meu caso foi gerar esse post, não uso fax eu diria a alguns anos, porém tem o fax to pdf que é bem legal.

Com a licença free seu asterisk terá 1 canal habilitado para fax.

Segue abaixo o passo a passo que a digium me passou para instalar a licença no meu asterisk 11.

 

Instalando o Asterisk com suporte a MFC/R2

tux-viking

Fonte na época 2010 http://www.asteriskforum.com.br/

Inclusive vejam bem que deve ter algo mais atualizado já de driver no google, mas a instalação é igual, eu não apanho muito com isso mas vejo vários amigos apanhando, cara se puder use ISDN sério, muda sua vida ehehhehe

 

O Asterisk originalmente não possui suporte a sinalização, utilizada em mais de 90% dos troncos digitais no Brasil, o MFC/R2. Neste tutorial você aprenderá como instalar o Asterisk com suporte a esta sinalização.

Introdução

Há muito pouco tempo atrás, MFC/R2 e Asterisk na mesma frase certamente significava ter que apelar para soluções proprietárias ou usar o Unicall, que nem sempre funcionava bem.Hoje em dia, graças à boa vontade do Moisés Silva, temos suporte nativo ao MFC/R2 no Asterisk. Isso significa que podemos utilizar MFC/R2 em qualquer placa ou dispositivo que seja suportado pelo Zaptel/DAHDI. Nesse tutorial vamos mostrar, passo a passo, a instalação do Asterisk com suporte nativo ao MFC/R2, utilizando o Zaptel. Para utilizar o DAHDI, as adaptações são muito poucas e absolutamente triviais.

Neste tutorial assumo que você está utilizando o Debian. Para outras distribuições Linux o nome dos pacotes das dependências podem ser diferentes.

Dependências

Você vai precisar dos seguintes pacotes:

  • linux-headers (do seu kernel atual)
  • libssl-dev
  • libncurses-dev
  • libtonezone-dev
  • build-essential
  • libnewt-dev
  • autoconf
  • automake
  • subversion
  • fxload*
  • libusb-dev*
  • libhid-dev*

* Estes últimos três somente se você possui um dispositivo Xorcom Astribank.

Instalando os pacotes:

# aptitude install linux-headers-uname -r libssl-dev libncurses-dev libtonezone-dev build-essential libnewt-dev autoconf automake fxload libusb-dev libhid-dev subversion

Asterisk, Zaptel, libopenr2 e libpri

A partir do diretório /usr/src, dispare os seguintes comandos:

# wget http://openr2.googlecode.com/files/openr2-1.1.0.tar.gz
# wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.9.tar.gz
# wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.12.1.tar.gz
# svn checkout http://svn.digium.com/svn/asterisk/team/moy/mfcr2-1.4 asterisk-1.4-mfcr2

A libpri não é realmente necessária, mas é realmente legal possuir um PBX que pode alternar entre PRI (ISDN) e MFC/R2 somente alterando a configuração, não é mesmo? 😉

Agora vamos instalar isso tudo:

# tar zxvf openr2-1.1.0.tar.gz
# cd openr2-1.1.0
# ./configure –prefix=/usr
# make
# make install
# cd..

# tar zxvf libpri-1.4.9.tar.gz
# cd libpri-1.4.9.tar.gz
# make
# make install
# cd ..

# tar zxvf zaptel-1.4.12.1.tar.gz
# cd zaptel-1.4.12.1
# ./configure
# make
# make install
# make config
# cd..

# cd asterisk-1.4-mfcr2
# ./bootstrap.sh
# ./configure
# make
# make install
# make config
# make samples

Configuração

Agora finalmente vem a parte divertida: colocar tudo pra funcionar! Essa é a configuração que eu tenho rodando em máquinas de produção:/etc/zaptel.conf:

span=1,1,0,cas,hdb3
cas=1-15:1101
cas=17-31:1101
dchan=16
vi /etc/asterisk/zapata.conf:
signalling=mfcr2
mfcr2_variant=br
mfcr2_get_ani_first=no
mfcr2_max_ani=20
mfcr2_max_dnis=4
mfcr2_category=national_subscriber
mfcr2_logdir=span1
mfcr2_call_files=yes
mfcr2_logging=all
mfcr2_mfback_timeout=-1
mfcr2_metering_pulse_timeout=-1
mfcr2_allow_collect_calls=yes
mfcr2_double_answer=no
mfcr2_immediate_accept=yes
mfcr2_forced_release=no
mfcr2_charge_calls=yes
language=pt_BR
echocancel=256
echocancelwhenbridged=no
context=e1
group=1
channel =>1-15,17-31
Não esqueça de reiniciar o Zaptel e o Asterisk após as alterações. Para testar se tudo está funcionando:# asterisk -R
Asterisk 1.4.22, Copyright (C) 1999 – 2008 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.
=========================================================================
Connected to Asterisk 1.4.22 currently running on pabx (pid = 25728)
Verbosity is at least 3
pabx*CLI> mfcr2 show channels
Chan Variant Max ANI Max DNIS ANI First Immediate Accept Tx CAS Rx CAS

Facilitando a transferência entre ramais

tux_britanico

Existem alguns usuários, principalmente os novatos que tem dificuldade de realizar uma transferência no Elastix/Asterisk, eu tive alguns problemas na empresa por ser rápido e a chamada não era transferia, não é todo mundo que tem agilidade no telefone hehehehe.

Quando você pressionar as teclas “##” ou “*2” para fazer uma transferência, você tem apenas 3 segundos para digitar o número de destino depois de ouvir “transfer”, esse é o tempo padrão “default time”.

Em certas situações esse tempo não é o suficiente, principalmente quando a pessoa não está acostumada ou não tem certeza do número correto do destino. Para aumentar este tempo de 3 segundos, edite o seguinte arquivo:

/etc/asterisk/features_general_custom.conf

E adicione as linhas:

transferdigittimeout=6
featuredigittimeout=3000

transferdigittimeout –> determina o número de segundos que o sistema aguarda o usuário digitar o número de destino numa transferência

featuredigittimeout  –> determina o tempo máximo, em milisegundos, que o usuário tem de tempo para digitar entre um dígito e o outro.

Simplesmente adicionando esses 2 parâmetros no features_general_custom.conf pode facilitar a utilização do Elastix pelo usuário.

Usando módulo_admin para debugar problemas

tux_samuray

[root@svrpabx bin]# pwd
Local para acessar o módule admin -> /var/lib/asterisk/bin

Esses testes foram feitos em um elastix 2.4 com CENTOS.

Ele tem algumas usabilidades interessantes, como dar reload nos módulos, instalar um módulo, reload em módulos etc… testem 🙂

Usando o help do module_admin -> ./module_admin help
Failed loading /usr/local/ioncubeloader/ioncube_loader_lin_5.1.so:  /usr/local/ioncubeloader/ioncube_loader_lin_5.1.so: cannot open shared object file: No such file or directory

USAGE:
./module_admin [params] <operation> <module> [parameters.. ]
PARAMETERS:
-f  Force operation (skips dependency and status checks)
WARNING: Use at your own risk, modules have dependencies for a reason!
OPERATIONS:
checkdepends <module>
Check if module meets all dependencies
delete <module>
Disable, uninstall, and delete the specified module
deleteall
Disable, uninstall, and delete ALL MODULES
WARNING: Use at your own risk, this will remove ALL MODULES from your system!
disable <module>
Disable the specified module
download <module>
Download the module from the website
If -f is used, downloads even if there is already a copy.
enable <module>
Enable the specified module
info <module>
Get information about a given module
i18n <module>
print out i18n required text for the given module
install <module>
Install the module (must exist in the modules directory)
installall
Installs all module that exist in the repository
list
List all local modules and their current status
listonline
List all local and repository modules and their current status
reload
Reload the configuration (same as pressing the reload bar)
reversedepends <module>
Show all modules that depend on this one
showupgrades
Show a list of upgradable modules
showannounce
Shows any annoucements that maybe displayed at freepbx.org for this version
uninstall <module>
Disable and uninstall the specified module
upgrade <module>
Equivalent to running download and install
upgradeall
Downloads and upgrades all modules with pending updates
–help, -h, -?           Show this help

Como modificar a senha de admin do Elastix

tux_naruto

Se você esqueceu ou por algum outro motivo quiser alterar a senha admin da interface gráfica do Elastix, siga os passos abaixo:
1. Gerar a nova senha no formato md5

Utilize o seguinte comando do mysql:
# mysql -u root -ppassword -e “SELECT md5(‘senhaadmin’);”;
onde password é a senha do mysql e senhaadmin vai ser a nova senha da interface gráfica do Elastix

O resultado é o seguinte:
+——————————————————–+
| md5(‘senhaadmin’)                              |
+——————————————————–+
| 219669e6ebcaf1855a89c684e8899ed2  |
+——————————————————–+

2. Acessar o banco que contém os usuários, via SQLITE

Digite os comandos abaixo:
# cd /var/www/db
# sqlite3 acl.db
# sqlite>
# sqlite> UPDATE acl_user SET md5_password = ‘219669e6ebcaf1855a89c684e8899ed2’ WHERE name = ‘admin’;

3. Agora a senha do admin já está modificada para “senhaadmin”

Fazer discagem no Asterisk utilizando PHP

asterisksss

Este tutorial é para quem necessita utilizar a linguagem Web PHP para efetuar Chamadas.

Passo 1:

Criar o diretório onde ficará os scripts:
#mkdir /usr/local/etc/scripts

Passo 2:

Dar as permissões de execução:
#chmod 755 /usr/local/etc/scripts

Passo 3:

Editar o arquivo manager.conf do Asterisk:
vi /etc/asterisk/manager.conf

manager.conf:

[general]
enabled = yes
port = 5038
bindaddr = 127.0.0.1

[admin]
secret=sua_senha
read=system,call,log,verbose,command,agent,user,all
write=system,call,log,verbose,command,agent,user,all
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.255

Passo 4:

Criar o programa PHP que fará a discagem:
vi /usr/local/etc/scripts/fazdiscagem.php

fazdiscagem.php:

<?php

$socket = fsockopen(“127.0.0.1″,”5038″,$errno,$errstr,$timeout);
fputs($socket,”Action: Login\r\n”);
fputs($socket,”UserName: admin\r\n”);
fputs($socket,”Secret: sua_senha\r\n\r\n”);
fputs($socket,”Action: Originate\r\n”);
fputs($socket,”Channel: ZAP/1/99999999\r\n”);
fputs($socket,”Context: monitor\r\n”);
fputs($socket,”Exten: 1234\r\n”);
fputs($socket,”Callerid: Teste\r\n”);
fputs($socket,”Priority: 1\r\n\r\n”);

?>

Passo 5:

Para efetuar o teste:
#php /usr/local/etc/scripts/fazdiscagem.php

Importante!

O PHP tem que ser compilado com suporte à socket.