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.
[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 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.