(Last Updated On: June 27, 2016)

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.

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

[finance_department]
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(${EXTEN}@students-mail,b) ;store in voicemail
same=>n,Hangup() ;hangup after voicemail
same=>n(unavail),GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?channelunavailable)
;check if channel is available then branch to channel unavailable
;concatenate current number being dialled with 254 or your number of preference
same=>n(channelunavailable),Dial(SIP/$[254${EXTEN}],10,T)
;if the second number is unavailable too go to voicemail..where
same=>n,NoOp(I AM UNAVAILABLE)
same=>n,VoiceMail(${EXTEN}@students-mail,u)
same=>n,Hangup()

Case scenario 2:Call transfer
Asterisk comes with two forms of call tranfer
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:
Jus head over to features.conf and set the following settings with your favorite editor.

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.Other tutorials include:

How to install Asterisk PBX 13.x on CentOS 7 step by step guide

Complete guide on how to Install Openfire XMPP chat server on Centos 7 

How to Install Latest Kamailio SIP Server on CentOS 7