Asterisk SIP Trunk Settings – Vestalink


Vestalink is a new SIP trunk provider that has sprung up as a replacement for Google Voice trunking within Asterisk servers. They offer a very attractive pricing plan with 2000 mins/month going for $39.99 per year, and unlimited plans at $49.99 per year! This provides a single DID along with two SIP channels for the possibility of holding two simutanious calls from one account (call waiting). The folks over to Nerd Vittles have written up a great guide to getting the service working with FreePBX, however I was hard pressed to find any documentation on how to get this working under a standard Asterisk server using only the CLI. Applying the Nerd Vittles FreePBX configuration to Asterisk CLI did not work out of the box. After some messing around I was able to sucessfully register my Asterisk server to my Vestalink account, and I have provided generic configurations that should help anyone looking to integrate a Vestalink SIP trunk with a vanilla Asterisk installation.

In sip.conf the following entries are necessary in order to register your Asterisk server to your Vestalink account. Note that the registry entry needs to be placed under the [general] section. Replace YOURPHONENUMBER with the 10 digit DID that you chose when signing up for an account here.

register =>


Now in extensions.conf the following entries need to be made for inbound and outbound calling over your SIP turnk.

; sample user extension mapping
exten => 9000,1,Dial(SIP/SAMPLEUSER,15)
        same => n,Voicemail(9000)

; for access to outbound calling

;;;outbound trunks;;;

; ObiVoice outbound context

;append an area code for local dialing
exten => _NXXXXXX,1,Set(CALLERID(dnid)=1555${CALLERID(dnid)})
        same => n,Goto(1555${EXTEN},1)

;append 1 for long distance calling
exten => _NXXNXXXXXX,1,Set(CALLERIDD(dnid)=1${CALLERID(dnid)})
        same => n,Goto(1${EXTEN},1)

;dial the call
exten => _1NXXNXXXXXX,1,Dial(SIP/obivoice/${EXTEN})
exten => _+1NXXNXXXXXX,1,Dial(SIP/obivoice/${EXTEN})

;;;inbound trunks;;;

; Vestalink inbound context

; pass call to user device
exten => _YOURPHONENUMBER,1,Answer()
        same => n,Set(CALLERID(all)=${CALLERID(name)})
        same => n,Wait(2)
        same => n,SendDTMF(1)  ; need this line if your
                               ; forwarding a google voice 
                               ; number to this number, 
                               ; otherwise it will never 
                               ; pick up the GV call
        same => n,Dial(SIP/SAMPLEUSER,15)