Call transfer and forwarding in Aasterisk configuration

Posted on 38 views

Asterisk is a very powerful media server for call routing and with great design and configuration can be used sustainably in a company, institution or office.

Case scenario 1: Call forwarding

Say you have two numbers. One for your phone and the other for you laptop and everyone in the office has a similar configuration. You can chose an appropriate numbering system to allow a simple dialplan where you don’t have to use a mysql database. Nevertheless, using a mysql/postgresql etc. is the best way for scalability concerns and using freepbx or elastix can allow you do all this easily.Configuring Mapping between Openfire XMPP users and Asterisk SIP users

Below is a context in our extensions.conf file that we’ll refer to on our configuration settings.

exten=>_xxxx,1,Dial(SIP/$EXTEN,10,T) ;dial this extension
same=>n,NoOp($DIALSTATUS) ;output status one the console
same=>n,GotoIf($["$DIALSTATUS"="BUSY"]?busy:unavail) ;check status busy i.e on another call for voicemail
same=>n,NoOp(I AM BUSY);output for debugging
same=>n(busy),VoiceMail([email protected],b) ;store in voicemail
same=>n,Hangup() ;hangup after voicemail
;check if channel is available then branch to channel unavailable
;concatenate current number being dialled with 254 or your number of preference
;if the second number is unavailable too go to voicemail..where
same=>n,VoiceMail([email protected],u)

Case scenario 2: Call transfer

Asterisk comes with two forms of call transfer

  • Blind call transfer – The call is transferred to another recipient with no intervention.Recipient could be unavailable or not
  • Supervised call transfer/Attended Call Transfer – The caller is placed on hold, a second call is placed to third party e.g manager or supervisor privately before first party is connected to the third party.

This is all very simple:

Just head over to features.conf and set the following settings with your favorite editor.

sudo vim /etc/asterisk/features.conf

Ensure that below configurations are set on features.conf file.

blindxfer => #1 ;This allows you to perform blind transfer e.g while call is connected #11012
;Dont forget to set T in Dial() Dial(SIP/$EXTEN,10,T)
atxfer => *2
;Attended transfer *21012 during call .Dont forget to set T in Dial()

We’ve been posting tutorials regularly on Asterisk PBX and VoIP network design for SOHO to Enterprise.


Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.