Zentrunk is a SIP Trunking service from Plivo that allows you to connect with fixed and mobile phones in over 200 countries. Connect your cloud or on-premise communication infrastructure to Plivo’s Zentrunk SIP Trunking service to connect to your customers easily.
This documentation provides a basic configuration to get Asterisk up and running with Plivo as the external SIP gateway.
To get started with Zentrunk using Asterisk you would need to do the following:
For installing Asterisk, follow the instructions below:
For Debian systems execute the following commands in the terminal.
$ apt-get update
$ apt-get upgrade
$ apt-get install asterisk
You can create a trunk using Plivo Console. For more information on creating a Trunk on Plivo Console, see below links:
To configure the asterisk to connect to your Plivo Zentrunk, 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 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 Plivo 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.
The “zentrunk” channel is created with the following attributes.
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 Plivo Number and the SIP INVITE is sent to “Zentrunk” channel which forwards the invite to Plivo Trunk from where the outbound call is placed.
$ asterisk -rvvvv
$ sip reload
$ dialplan reload.
To configure your asterisk to connect to your Plivo Zentrunk, 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 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.
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 Plivo 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
Create a new SIP driver named “6001” at /etc/asterisk/pjsip.conf with the below information.
[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
$ asterisk -rvvvv
$ sip reload
$ dialplan reload