[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