How to use SIP trunking to connect a PBX to an extension

Enable SIP Trunking for a Cloud PBX extension


This article describes the SIP trunking feature and how to use it to connect a PBX to an extension. Also, it includes a set of recommendations with examples for seiting up Asterisk to act as a PBX. 

When enabled at extension level, this Cloud PBX feature allows you to connect a PBX to the extension (when a DID assigned to that extension is called, it is passed further to the PBX in the SIP:To header). This option was added because some customers wanted to connect different PBX systems to Cloud PBX.

In order to enable this feature, you need a SIP trunking license. If the license is valid,  in the Extension → Provisioning and SIP page, under the SIP Preferences area, you'll find the PBX is connected to this extension [] Enable for SIP trunking service option. Select this checkbox, and you will be able to connect a different PBX to that extension.

How to configure Asterisk to act as a PBX

For this, you will need Asterisk box. There are plenty of installation tutorials on the web, so you shouldn't find any difficulty in installing Asterisk.

In our example, ./configure --prefix=/opt is used to set /opt/ as a destination directory for the Asterisk files.

After completing the installation process, you will need to edit the files below:

Example of /opt/etc/asterisk/modules.conf

[modules] 
autoload=yes				
noload => pbx_gtkconsole.so				
noload => pbx_spool.so				
noload => chan_skinny.so				
noload => res_smdi.so				
noload => pbx_ael.so				
noload => app_voicemail.so				
load => res_musiconhold.so				
noload => chan_alsa.so				
noload => chan_console.so


Example of /opt/etc/asterisk/sip.conf

[general]				
defaultexpirey=3600			
maxexpirey=3600				
disallow = all				
allow = g729				
allow = ulaw				
allow = alaw				
bindaddr = asterisk_server_ip				
port = 5060				
context = phones				
nat = no			
domain = your_server_ip			
register => 0003*001:password@Cloud PBX_server_ip/0003*001

[mysip]				
fromuser = 0003*001				
fromdomain = asterisk_server_ip				
defaultuser = 0003*001				
authuser = 0003*001				
dtmfmode = rfc2833				
dtmf = rfc2833				
disallow = all				
allow = g729				
allow = ulaw				
allow = alaw				
type=peer				
host = Cloud PBX_server_ip				
qualify = yes				
nat = no			
context = from-voip-provider				
canreinvite = yes	

[5000]				
type=friend				
defaultuser = 5000				
secret = secret				
qualify=yes				
nat=no				
host=dynamic				
canreinvite=no				
disallow=all				
allow=alaw				
context=phones


The example above registers the local Asterisk PBX to the Cloud PBX system using extension 0003*001. Make sure the extension has SIP trunking enabled on the Cloud PBX server. 5000 is a local Asterisk extension that will be used for both incoming and outgoing calls.

Example of /opt/etc/asterisk/extensions.conf

[general]				
static=yes				
writeprotect=no				
clearglobalvars=no	

[phones]				
exten => 5000,1,Dial(SIP/5000)				
exten => _X.,1,Dial(SIP/${EXTEN}@mysip)				
exten => _X.,2,Hangup

[from-voip-provider]				
exten => 18002304043,1,Dial(SIP/5000)				
exten => _X.,1,Congestion()

This is a basic example of Asterisk dialplan that can place outgoing calls and receive incoming calls. 5000 is the only local extension. The rest of the prefixes matching _X. get forwarded through the mysip channel. The[from-voip-provider] context is used for incoming calls.

To launch Asterisk, run the following:

/opt/sbin/asterisk -f -g -U asterisk -G asterisk


Test the configuration

For example, if you want to register the 5000 extension using a X-Lite softphone, you need to open its SIP accounts → Properties menu page and set:

  • User name: 5000
  • Password: secret
  • Authorization user name: 5000
  • Domain: asterisk_server_ip

To call a different extension (e.g. 0003*002) from the Asterisk PBX, you need to simply dial 0003*002).

To take incoming calls via Cloud PBX on extension 5000, the [from-voip-provider] context needs to be added. When configuring your /opt/etc/asterisk/extensions.conf file, you must replace the 18002304043 example with the DID number assigned to your account by your SIP provider.

Note that 18002304043 is a DID number assigned in the Cloud PBX interface for the specific extension with enabled SIP trunking.