Script to send SMS via Goip4 gateway for ABillS

I will give an example of a PHP script to which I send SMS messages through the GoIP4 gateway.

First, we choose tariffs with only monthly charges (I chose everything, excluding with daily charges, since there are fewer of them):

SELECT name, tp_id FROM tarif_plans;
SELECT name, tp_id FROM tarif_plans WHERE tp_id NOT IN(1,2,4,8,9,10,39,63,64,65,106,107,109,110,114,117,118,119)

Continue reading Script to send SMS via Goip4 gateway for ABillS

How to update accel-ppp

I will give an example of updating the accel-ppp, the commands need to be executed as root user.

First, see the current version of accel-ppp:

accel-cmd -V

Make a copy of the dictionary, if you previously made your own changes to it:

cp /usr/local/share/accel-ppp/radius/dictionary /usr/local/share/accel-ppp/radius/dictionary_copy

Continue reading How to update accel-ppp

Automatic installation ABillS

On the test, I install the ABillS billing system in Ubuntu Server 16.04 using an installer.
I note that the installer can install older versions of components such as Accel-ppp, so I recommend installing everything manually.
See also my article – Installing and configuring the billing system ABillS

Let’s start the automatic installation, download and unpack the archive with the installation script:

sudo apt-get install unzip wget
wget https://github.com/nabat/AInstall/archive/master.zip
unzip master.zip

Continue reading Automatic installation ABillS

Set up WatchDog by ABillS

In the ABillS billing system, you can configure the status check of any running programs, and configure automatic launch if any of them are not running.

For example, for tracking FreeRadius, you need to run the command:

/usr/abills/libexec/billd check_programs PROGRAMS="radiusd:/etc/init.d/radiusd start"

Where “radiusd” is the name of the program in the processes, and “/etc/init.d/radiusd start” the command to start it.

Continue reading Set up WatchDog by ABillS

Ip-up and ip-down scripts with ipset for Accel-ppp

I’ll give an example of the scripts I used before, in the allowip list IP addresses were added to which the Internet is allowed, and in denyip those were redirected to the http page with information about the negative deposit.

Continue reading Ip-up and ip-down scripts with ipset for Accel-ppp

ABillS + FreeRADIUS + Accel-PPP only issue one DNS

Once after installation ABillS + FreeRADIUS2 + Accel-PPP (ipoe) noticed that for DHCP clients receive only one DNS server.
Access-Accept from FreeRADIUS was this:

Sending Access-Accept of id 1 to 127.0.0.1 port 57481
        Session-Timeout = 604800
        PPPD-Downstream-Speed-Limit = 51200
        Framed-IP-Netmask += 255.255.255.0
        Framed-IP-Netmask += 255.255.255.0
        Acct-Interim-Interval = 600
        DHCP-Domain-Name-Server += 8.8.8.8
        DHCP-Domain-Name-Server += 8.8.4.4
        PPPD-Upstream-Speed-Limit = 51200
        Framed-IP-Address = 172.20.20.20
Finished request 40.

Continue reading ABillS + FreeRADIUS + Accel-PPP only issue one DNS

Reason for messages “HTB: quantum of class 10001 is big. Consider r2q change”

Once on the access server, Ubuntu Server 16.04 and Accel-ppp noticed the following messages in the /var/log/kern.log file:

kernel: [365970.550498] HTB: quantum of class 10001 is big. Consider r2q change.
kernel: [365970.550547] HTB: quantum of class 10A49 is big. Consider r2q change.
kernel: [365979.545580] HTB: quantum of class 10001 is big. Consider r2q change.
kernel: [365979.545621] HTB: quantum of class 10BD6 is big. Consider r2q change.
kernel: [365995.601973] HTB: quantum of class 10001 is big. Consider r2q change.
kernel: [365995.602031] HTB: quantum of class 11705 is big. Consider r2q change.

First I tried to track which interfaces are being raised at this moment:

tail -f /var/log/kern.log | grep "quantum of class 10001 is big"
tail -f /var/log/accel-ppp/accel-ppp.log | grep "create interface"

Continue reading Reason for messages “HTB: quantum of class 10001 is big. Consider r2q change”

The script for adding IP addresses from a file to ipset

It took one day to write a script to add to ipset all the IP for which the session was started on the access server, Abills billing was used, so I decided to take IP addresses from the MySQL billing table.

The first step is to create a test ipset:

ipset create test iphash

Continue reading The script for adding IP addresses from a file to ipset