## Description
Accounting script which connects to Asterisk through AMI interface monitors all events and sends Radius Accounting to Billing Server (BS) for account charging.
OS CentOS/5x or 6x Debian 6 or 7
Python 2.6 or Python 3.2 or later
Asterisk version starting from 1.8 and later
-
Get the source either by downloading an archive file or by cloning
- For Archive.Download as zip file archive
- Download the script with :
wget https://github.com/andrusstrockiy/asteracct/archive/master.zip -O asteramiacct.zip
- Then Unzip / Untar the following archive with the script
sudo tar -zxvf asteramiacct.tar.gz -C /opt/
- For unzip run the following:
sudo unzip asteramiacct.zip -d /opt/
- Download the script with :
- To clone the repository
- cd to opt directory:
cd /opt
- and clone it:
sudo git clone https://github.com/andrusstrockiy/asteracct.git
- cd to opt directory:
- For Archive.Download as zip file archive
-
Change permissions for installation folder in case you not planning of running that script as a root:
chown _your_login_username_ /opt/asteracct/*
-
Edit asterisk dialplan extensions.conf set the following global variables in general section of that file
[general] .... RADIUS_Server=Ip_of_your_Radius_Server RADIUS_Secret=secret RADIUS_Auth_Port=1812 RAIUS_Acct_Port=1813 Acct_Update_Timeout=30 NAS_IP_Address=Ip_of_your_asterisk ...
-
Enable and set asterisk AMI manager in managers.conf according the following example
- To enable AMI interface on asterisk at the top of manageres.conf set :
[general] enabled = yes port = 5038
- Then add manager (in same managers.conf file) by adding the following
- To enable AMI interface on asterisk at the top of manageres.conf set :
[test] secret = test permit= 127.0.0.1/255.255.255.0 read = system,cdr,call,log,verbose,command,user write = system,cdr,call,log,verbose,command,user
- Enable CDR output event to AMI console.Set in cdr manager.conf
[general] enabled = yes
- Copy init (start,stop) scripts to /etc/init.d directory
cp /opt/asteramiacct/init/aster* /etc/init.d/
-
Enable cell events by setting in cel.conf Activate cel event in general settings
[general] ; CEL Activation ; ; Use the 'enable' keyword to turn CEL on or off. ; ; Accepted values: yes and no ; Default value: no enable=yes
Forward cell events in AMI console
[manager] ; AMI Backend Activation ; ; Use the 'enable' keyword to turn CEL logging to the Asterisk Manager Interface ; on or off. ; ; Accepted values: yes and no ; Default value: no enabled=yes
and then add
events=ANSWER
-
Install pyrad Radius library required for that script either from
- Pypi Download and unzip\untar.
cd pyrad-2.0
and then inside the above directory
sudo python setup.py install
- From local folder (bundled)
cd /opt/asteracct/libs/pyrad-2.0
and then
sudo python setup.py install
-
Restart Asterisk through to apply new settings to asterisk
service asterisk restart
-
Start the script
service asteramiacct start
-
Make some test calls and observe results.You should see Accounting-Start and Accounting-Stop packets to arrive at Radius
-
Check that your script is actually running after making few telephone calls by doing in linux console
ps aux | grep ast
Should give output like the following
[root@pbx-msk andruss]# ps aux | grep ast root 3514 0.0 0.0 106064 528 ? S Sep01 0:00 /bin/sh /usr/sbin/safe_asterisk -U asterisk -G asterisk asterisk 3517 0.4 1.4 1530376 31128 ? Sl Sep01 168:58 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c root 5526 0.0 0.4 82880 8524 ? S 15:11 0:00 /usr/bin/python2.6 /opt/asteracct/asteramiacct.py
For errors and troubleshooting please check log file asteracct.log of which located in /opt/asteracct/ directory. If still in trouble contact me.
asteramiacct was written by Andrew Tkachenko [email protected] and is licensed under a BSD license.
Copyright and license information can be found in the LICENSE.txt file.
The current version and documentation can be found on github: [source] (https://github.com/andrusstrockiy/asteracct)
Bugs and wishes can be submitted in the issue tracker on github: [issues] (https://github.com/andrusstrockiy/asteracct/issues)