How to use SIP trunking to connect a PBX to an extension ​
WARNING
Applies to VoipNow 3 and higher!
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.
Enable SIP Trunking for a VoipNow extension ​
When enabled at extension level, this VoipNow 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 VoipNow.
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.soExample 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@voipnow_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 = voipnow_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=phonesThe example above registers the local Asterisk PBX to the VoipNow system using extension 0003*001. Make sure the extension has SIP trunking enabled on the VoipNow 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 asteriskTest 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 VoipNow 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 VoipNow interface for the specific extension with enabled SIP trunking.