Trunk & Asterisk - Regular Trunking
Overview
Trunk is a SIP Trunking service from VoceRules that allows you to connect with fixed and mobile phones in over 200 countries. Connect your cloud or on-premise communication infrastructure to VoiceRules’s Trunk SIP Trunking service to connect to your customers easily.
This documentation provides a basic configuration to get Asterisk up and running with VoiceRules as the external SIP gateway.
To get started with Trunk using Asterisk you would need to do the following:
Installation of Asterisk
For installing Asterisk, follow the instructions below:
Create a Trunk on Trunk
You can create a trunk using VoiceRules Console. For more information on creating a Trunk on VoiceRules Console, see below links:
Configuring Asterisk for Outbound Trunk
To configure the asterisk to connect to your VoiceRules Trunk, locate the root configuration of Asterisk on your machine. These locations vary from platform to platform.
In this case (Debian Jessie GNU/Linux System), the root configuration is present at /etc/asterisk/.
With the root configuration directory located, there are two major configurations that need to do -
Create a new SIP Channel
Create a Dial Plan.
Reload the configuration
Step 1: SIP Channel
Create a new channel named “plivo-phone” at /etc/asterisk/sip.conf. This channel will be used in X-Lite to connect to asterisk. Also, create another channel called “plivo-trunk” which will connect to your VoiceRules Trunk.
[plivo-phone] type=friend context=Zentrunk host=dynamic secret=password1234 [zentrunk] type=peer context=Plivo host=Termination SIP Domain of your Plivo Trunk secret=Password for TestAuthGroup username=Username for TestAuthGroup
A “plivo-phone” channel is created with the following attributes.
Type=friend - Creates a user and peer connection
Context=Zentrunk - Context is the identifier for a dialplan that will be loaded from extensions.conf. The sip.conf identifies and allows connections to the asterisk server. The context in the identifier allows the execution of call flow when a call is received from XLite.
Host=dynamic - XLite can be connected from anywhere
Secret=password1234 - Password to be used in X-Lite
The “zentrunk” channel is created with the following attributes.
Type=peer - Creates a peer connection
Context=Plivo - Context is the identifier for a dialplan that will be loaded from extensions.conf. The sip.conf identifies and allows connections to the asterisk server. The context in the identifier allows the execution of call flow when a call is received from XLite.
Host=Termination SIP Domain of your VoiceRules Trunk
Secret=Password for TestAuthGroup
Username=Username for TestAuthGroup
Step 2: Dialplan
Next, you should set up a Dial Plan. A Dial Plan tells Asterisk what to do when a call has to be placed. The “Content” attribute in the SIP channel connects a channel with a dialplan. Add a dialplan named “Zentrunk” in extensions.conf under /etc/asterisk/directory.
[Zentrunk] exten => _1XXXX.,1,Set(CALLERID(all)="Your Plivo Number" <Your Plivo Number>) exten => _1XXXX.,n,Dial(SIP/zentrunk/${EXTEN}) exten => _1XXXX.,n,Hangup()
The above dial plan has defined an extension for a number starting with the digit 1. When a call is made from X-Lite to a number that starts with 1, it hits the asterisk server first. The dialplan that satisfies this pattern matching get loaded, in this case, the above plan. The caller ID is set to your VoiceRules Number and the SIP INVITE is sent to “Zentrunk” channel which forwards the invite to VoiceRules Trunk from where the outbound call is placed.
Step 3: Reload Configurations
Load the asterisk client.
Execute the following command in your terminal:
$ asterisk -rvvvv
Reload the sip channel, and then execute the following command:
$ sip reload
Reload the dialplan, and then execute the following command:
$ dialplan reload.
Configuring Asterisk for Inbound Trunk
To configure your asterisk to connect to your VoiceRules Trunk, locate the root configuration of Asterisk on your machine. These locations vary from platform to platform.
In this case (Debian Jessie GNU/Linux System), the root configuration is present at /etc/asterisk/.
With the root configuration directory located, there are three major configurations that you need to do -
Create a new SIP Channel
Create a Dial Plan.
Create a Sip Driver.
Reload the configuration
Step 1: Create a new SIP Channel
Create a new channel named “6001” at /etc/asterisk/sip.conf. This channel will be used in X-Lite to connect to asterisk.
[general] context=incoming [6001] type=friend context=from-internal host=dynamic secret=1234 disallow=all allow=ulaw
A 6001 channel is created with the following attributes.
Note: Use 6001 as your user in X-lite.
Type=friend - Creates a user and peer connection .
Context=incoming - Context is the identifier for a dialplan that will be loaded from extensions.conf. The sip.conf identifies and allows connections to the asterisk server. The context in the identifier allows the execution of call flow when a call is received from XLite.
Host=dynamic - XLite can be connected from anywhere
Secret=1234 - Password to be used in X-Lite
Step 2: Dialplan
Next, you should set up a Dial Plan. A Dial Plan tells Asterisk what to do when a call is received .The “Content” attribute in the SIP channel connects a channel with a dialplan. Add a dialplan named “incoming” in extensions.conf under /etc/asterisk/directory.
[incoming] exten => _X.,1,Wait(1) exten => _X.,n,Dial(SIP/6001)
The above dial plan has defined an extension for a SIP enpoint named 6001. When a call is made to your inbound number, it hits the VoiceRules first and then it is forwarded to your asterisk server .Once the dialplan is loaded and the call is placed to the soft phone registered as 6001 in your asterik
Step 3: Create a SIP Driver
Create a new SIP driver named “6001” at /etc/asterisk/pjsip.conf with the below information.
Note: Make sure that the secret in the sip.conf file and the password of pjsip.conf is the same.
[transport-udp] type=transport protocol=udp bind=0.0.0.0 [6001] type=endpoint context=from-internal disallow=all allow=ulaw auth=6001 aors=6001 [6001] type=auth auth_type=userpass password=1234 username=6001 [6001] type=aor max_contacts=1
Step 4: Reload Configurations
Load the asterisk client.
Execute the following command in your terminal:
$ asterisk -rvvvv
Reload the sip channel, and then execute the following command:
$ sip reload
Reload the dialplan, and then execute the following command:
$ dialplan reload