[AsteriskBrasil] Roteamento de chamadas no A2billing.
Rodrigo Filardo Reinig
rodrigo em outcenter.com.br
Segunda Setembro 17 16:57:30 BRT 2007
Mauricio,
Eu segui o seguinte:
Faça download do site a2billing.org e salve o arquivo compactado na pasta /usr/src da seguinte forma:
wget http://a2billing.net/downloads/A2Billing_versao.tar.gz
Descompacte o arquivo com tar zxvf a2billing_versao.tar.gz.
ele criará um diretório chamado trunk.
Instalando o database:
cd trunk/DataBase/mysql/Mysql-3.x_4.x/
echo "GRANT ALL PRIVILEGES ON *.* TO 'a2billinguser'@'localhost' IDENTIFIED BY 'a2billing' WITH GRANT OPTION;" | mysql -ppassw0rd
mysqladmin create mya2billing -u a2billinguser -pa2billing
mysql mya2billing -u a2billinguser -pa2billing < a2billing-mysql-schema-MYSQL.3.X-4.X_v1.2.3.sql
Instalando a interface de usuário:
cd ..
cd ..
cd ..
mv ./A2Billing_UI /var/www/html/a2billing
mv ./A2BCustomer_UI/ /var/www/html/a2customer
Instalando o arquivo de configuração:
mv a2billing.conf /etc/asterisk/a2billing.conf
Instalando as AGIs:
cd A2Billing_AGI
mv a2billing.php /var/lib/asterisk/agi-bin/a2billing.php
mv libs_a2billing /var/lib/asterisk/agi-bin
Instalando os sons extras:
cd ..
cd /addons/sounds/
mv * /var/lib/asterisk/sounds/
Criando os arquivos de configuração para clientes SIP e IAX:
cd /etc/asterisk/
touch additional_a2billing_iax.conf
touch additional_a2billing_sip.conf
touch extensions_a2billing.conf
Para dar as permissões necessárias nos arquivos e diretórios:
chmod 666 /etc/asterisk/additional_a2billing_iax.conf
chmod 666 /etc/asterisk/additional_a2billing_sip.conf
chmod 666 /etc/asterisk/extensions_a2billing.conf
chown -R asterisk:asterisk /etc/asterisk/
chown -R asterisk:asterisk /var/www/html/
chown -R asterisk:asterisk /var/lib/asterisk/
Editando o arquivo a2billing.conf:
A sessão de Database:
comente a linha dbtype = postgres
Remova o ; da linha ;dbtype = mysql
Ficará assim:
[database]
hostname = localhost
port = 5432
user = a2billinguser
password = a2billing
dbname = mya2billing
;dbtype = postgres
dbtype = mysql
Na cessão de conexão do banco de dados ficará assim:
; MANAGER CONNECTION PARAMETERS
manager_host = localhost
manager_username = a2billinguser
manager_secret = a2billing
Salve o arquivo.
Edite o arquivo /etc/asterisk/sip.conf e acrescente a linha include additional_a2billing_sip.conf do mesmo modo abaixo:
; #, in this configuration file, is NOT A COMMENT. This is exactly
; how it should be.
#include sip_nat.conf
#include sip_custom.conf
#include sip_additional.conf
#include additional_a2billing_sip.conf
Faça o mesmo com o arquivo Iax.conf para que fique deste modo:
#include iax_registrations_custom.conf
#include iax_registrations.conf
#include iax_custom.conf
#include iax_additional.conf
#include additional_a2billing_iax.conf
Edite extensions_custom.conf e adicione #include extensions_a2billing.conf junto com os outros includes, para que fique deste modo:
#include extensions_trixbox.conf
#include extensions_hud.conf
#include extensions_a2billing.conf
No arquivo extensions_a2billing.conf adicione o contexto:
[a2billing]
exten => _X.,1,Answer
exten => _X.,n,Wait(1)
exten => _X.,n,DeadAGI(a2billing.php|1)
exten => _X.,n,Hangup
e depois de instalado eu fiz o seguinte com o seguinte tutorial do Cassiano Moralles:
- Ao instalar o Trixbox ou Asterisk em Home o a2billing não vem automaticamente funcionando são necessarios alguns passos para a configuração e operação correta dele:
1) Minha necessidade era de os clientes SIP(x-lite) acessarem o servidor autenticando com ramal e senha(método CALLERID) e começa a tarifar as
ligações apenas para controle interno de gastos e para limitar o uso por créditos para os funcionários, tudo transparente para o usuário sem
necessidade de digitar o nro PIN do a2billing ( PIN = ACCOUNTCODE).
2) Entrar em http://192.168.X.X/a2billing/ (usuário: root ; senha: myroot)
3) Modificar o tronco padrão (default trunk) TRUNK -> List Trunk -> Edit, aqui no meu caso como tenh apenas linhas alocadas no asterisk e não vou usar outro provedor para distribuir coloquei como na figura trunk_01.jpg, ou seja as ligações vão sair por uma linha local conectada ao asterisk. Caso vc queira adicionar um provedor sip ou iax modifique conforme sua necessidade, e botão CONFIRM DATA click here.
4) Criar o ratecard clique em RATECARD > Create new RateCard , em tariffname coloquei teste, as datas deixei padrão mas vc pode alterar, o trunk deixei o default ateh pq no teste só tenho um mesmo, na descrição coloquei o nro de telefone dele em DNID deixei all , mas eh interessante vc alterar se
precisar, e botão CONFIRM DATA click here.
5) Criar um Rate clique em RATECARD -> Add Rate
campos
RATECARD teste
DIALPREFIX 3,4,5,6 (todos os telefones q iniciarem em 3,4,5,6 serão tarifados conforme esta regra)
DESTINATION local
BUYING RATE 0.2
BUYRATE INIT BLOCK 30
RATEINITIAL 0.15
MIN DURATION 60
BILLING BLOCK 6
Marcar ratio YES em todos os dias da semana
TRUNK default
, e botão CONFIRM DATA click here.
6) Criar um grupo de tarifação para associar os rates, RATECARD -> Create TariffGroup em TARIFFGROUPNAME: testando e em TARIFFPLAN: colocar o nome do RateCard criado antes "teste" botaão ADD, e botão CONFIRM DATA click here.
7)Criar um cliente CUSTOMERS -> Create customer
WEBUI PASSWORD 123456
CREDIT 10
TARIFFGROUP testando
CARD ALIAS 2000
ACTIVATED YES
8) Clique no botão SIP para o campo sip ficar YES
9)Clique em "GENERATE ADDITIONAL_A2BILLING_SIP.CONF"
10) Clique em "Click here to reload Asterisk Server"
11) Entre em CUSTOMERS -> List Customer, Clique em Edit ao lado do cartão,modifique os seguintes campos WEBUI PASSWORD coloquei 123456, CARD ALIAS coloquei 2000, CALLERID coloquei 2000 (número do ramal que ira usar o cartão)
12) Para saber quantos créditos o usuário tem acesse Customer login:
http://192.168.X.X/a2customer
Usuário: Número do cartão e senha: WEBUI PASSWORD (em CUSTOMERS > List customers > clique em edit na esquerda do número do cartão desejado cartão)
11 ) Clique em CUSTOMERS > List SIP-FRIEND > EDIT e altere o CALLERID, USERNAME para 2000 e apague ACCOUINTCODE e em SECRET coloque 123456 = WEBUI PASSWORD em context tem que estar o contexto callingcard que vamos colocar no extensions.conf.
12) Para atender as minhas necessidades de tarifar transparente alterei as seguintes configs de /etc/asterisk/a2billing/ dentro do contexto [agi-conf1] :
[agi-conf1]
; if YES it will catch the DNID and try to dial it out directly without asking for the phonenumber to call
; value : YES, NO
use_dnid=YES
; Play the balance to the user after the authentication (values : yes - no)
say_balance_after_auth=NO
; Play the balance to the user after the call (values : yes - no)
say_balance_after_call=NO
; Play the time the user can call (values : yes - no)
say_timetocall=NO
; enable the callerid authentication
; if this option is active the CC system will check the CID of caller
;cid_enable=NO
cid_enable=YES
13) Inseri o contexto callingcard dentro de /etc/asterisk/extensions.conf
[callingcard]
;allow phones to access trunks
include => outbound-allroutes
exten => _X.,1,Answer
exten => _X.,2,Wait,2
exten => _X.,3,DeadAGI,a2billing.php
exten => _X.,4,Wait,2
exten => _X.,5,Hangup
14) Verificar se em sip.conf existe a linhas abaixo:
#include additional_a2billing_sip.conf
15) Configure o x-lite :
Menu > ajuste do sistema > Sip Proxy > Default :
- enable : YES
- Username: 2000
- Authentication user: 2000
- Password: 123456
- Domain/real: 192.168.X.X
- Sip Proxy: 192.168.X.X
- Out Bound Proxy: 192.168.X.X
16) Abra o shell no asterisk como root;
digite:
[root em asterisk1 ~]# asterisk -r
para conecar no shell do asterisk.
digite para setar na tela os logs detalhados das ligações:
asterisk1*CLI> debug level 3 logs
LOGS:
-- Executing Answer("SIP/2000-1143", "") in new stack
-- Executing Wait("SIP/2000-1143", "2") in new stack
-- Executing DeadAGI("SIP/2000-1143", "a2billing.php") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
a2billing.php: IDCONFIG : 1
a2billing.php:
-- AGI Script Executing Application: (SetLanguage) Options: (en)
-- AGI Script Executing Application: (Dial) Options:
(ZAP/g0/99XXXXXX|30|HL(19818000:61000:30000))
-- Limit Data for this call:
-- - timelimit = 19818000
-- - play_warning = 61000
-- - play_to_caller= yes
-- - play_to_callee= no
-- - warning_freq = 30000
-- - start_sound = UNDEF
-- - warning_sound = timeleft
-- - end_sound = UNDEF
-- Called g0/99XXXXXX
-- Zap/4-1 answered SIP/2000-1143
-- Hungup 'Zap/4-1'
Obviamente o celular acima é o meu e troquei os nros finais por X.
Pelos logs acima ele encaminhou certo ao a2billing sem precisar de PIN ou informar o nro para o qual queria ligar e tarifou na base.
Espero ter te ajudado ok.
Abs.
Rodrigo
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20070917/53b1dbd2/attachment-0001.html
Mais detalhes sobre a lista de discussão AsteriskBrasil