In this part of the guide I’m going to look at some of the set up required for the example config to work.
We are going to enable IP and USER/SECRET authentication for our A2Billing SIP customer calls. To do that we are going to create a couple of MySQL VIEWS in the ‘opensips’ database that point to tables in the ‘a2billing’ database. This means we can create our A2Billing SIP users as normal, and they will then become valid users in OpenSIPS.
Part 2 and Part 3 of the guide assume the following –
On the A2Billing/Asterisk server
So now we create our VIEWS in the database. We are going to use the ‘address’ table for IP authentications and the ‘subscriber’ table for USER/SECRET authentications.
Here we create the ‘address’ VIEW –
So for any A2Billing SIP customer where the IP address is not set to ‘dynamic’ we are going to create an OpenSIPS user. We are also going to store the A2Billing customers Account Code in a field called context_info. This is not strictly what that field is designed for but it makes it easy for us to access the customers account code from OpenSIPS
Now we create the ‘subscriber’ VIEW –
You will want to change ‘mya2billingcalls.com’ to the domain name you are going to use. We are going to store the customers Account Code in a field called ‘rpid’. Again this is not really what it’s designed for, but it makes it easy to access from OpenSIPS. You can see the ‘where’ clause restricts this to A2Billing customers that do not have a blank username field (they might have this if you were doing IP authentication)
Next we need to modify the Asterisk dial plan a little to tell it to pass all calls coming form the OpenSIPS server to the a2billing.php script.
To do that we are first going to create an entry in sip.conf with the sip details of the OpenSIPS server –
So any calls coming from the OpenSIPS server will get passed to the ‘a2billing-opensips-sip’ context.
Now we create that context in extensions.conf –
So we set the A2Billing customer account code (this is going to be passed to us by OpenSIPS) and then we run the a2billing.php script using agi-conf1
On the A2Billing customer PBX
I’m going to assume that our A2Billing SIP customer is using an Asterisk server to connect to us. They could set up their trunk in 2 different ways. One using IP authentication like this –
For IP authentication we must have entered the customers PBX IP address in the HOST field in the customers A2Billing SIP account
Or they could use username/password authentication like this –
The ‘fromdomain’ setting must be set to the same one we used when creating our MySQL views.
That’s the Asterisk and MySQL setup done, it part 3 we’ll look at the actual OpenSIPS config file.