7  Digital Receptionist 

I found that the digital receptionist is very handy to filter some of the phone calls I have been receiving.  As in most households, no one will pick up the phone when it rings.  One is waiting for the other.  Yours truly usually is the one who will pick it up and has to look for the recipient… usually my teenage daughter. 

7.1  Setting Up Digital Receptionist 

In the Setup tab, click on the Digital Receptionist option and get the following screen. 

 

Select Add IVR option on the top right on the screen and the new Unnamed IVR configuration screen will be presented to you. 

 

You then need to fill in the following fields: 

Name (Change Name): MainMenu  (that’s what I called m main menu)  
Timeout
: 10  (I left it at default)  
Enable Directory
: Tick  
Directory Context
:  Default  
Enable Direct Dial
: Tick  
Announcement
: MainMenu-Rohani1 (That’s what I called my IVR recording that I made for this purpose) 

(see illustration below) 

 

Then proceed to enter the selection options that you require for this IVR when the caller presses the appropriate option. 

If you need more choice options in the IVR, click on the Increase Options button at the bottom of the screen. 

In my IVR, I have defined my requirement as outlined below: 

For number 1 & 2, I selected Extension, for 3 & 4 I have selected Custom App: and for 5 which I have changes to the letter “t”, I selected Ring Group. 

For 1, I selected my extension from the drop down selection list.
For 2, I selected Rohani’s extension.  
For 3, which is for Norsurya, I have selected Custom App: to call her mobile.

For 4, I selected Custom App: for DISA  (we will get to DISA a little later).
For 5, (I changed it to read “t” for timeout), I selected Ring Group 1

To call Norsurya’s mobile I have included the following context in the extensions_custom.conf file.  

[custom-callmobile]

; to direct calls to Norsurya’s mobile number.

exten => s,1,playback(pls-wait-connect-call)
exten => s,2,Dial(SIP/6140XXXXXXX@pennytelsip,60,r)

exten => s,3,Hangup
 

The last extension (which I have changed to the letter “t”) is to capture timeout, if the caller does not press any option or, in case the DTMF tone does not register, the call will be sent to Ring Group 1. 

Once finished, click Save and also click on the red bar on the top of the screen. 

Test it by dialling 7777, (Asterisk will simulate an incoming call) and you will hear your Digital receptionist in action. 

 

7.2  Customising Individual Extension 

Note for home users

Most of the config files manual tweaks and extra configurations in this guide are meant for advanced users. Unless you have a compelling reason to do so, freePBX users are advised against it. 

When the Digital Receptionist answers the call and directing the call to the appropriate extension, the caller will hear another ringing tone until the extension is answered.  This is boring, as I prefer music instead, besides, it sounds more pleasant. 

To achieve this, instead of nominating my extension number for the choice in Digital Receptionist, I use a custom extension.  To do this, I create a custom extension in the extensions_custom.conf called [custom-myextension].  

See example below: 

[custom-myextension]
;
exten => s,1,playback(pls-wait-connect-call)
exten => s,2,Dial(SIP/2001,60,m) ; Ben’s extension
exten => s,3,Macro(vm,2001)

exten => s,4,Hangup
 

In the example above;  

In digital receptionist, instead of selection my extension for my option, I will nominate Custom App: 

Custom App

custom-myextension,s,1

You can do this to all the individual extension or you can call a number of extensions simultaneously like a ring group – like so. 

exten => s,1,playback(pls-wait-connect-call)
exten => s,2,Dial(SIP/2001&SIP/2002&SIP/2003,60,m)
exten => s,3,Macro(vm,2001); voice mail to my extension

exten => s,4,Hangup
 

 

7.3  Multi-Language IVR

Trixbox allows multi languages IVR handling by simply telling Trixbox what language to use.  Naturally you will need to install all the language sets that you wish to use.

See Installing Other Languages in the chapter referring to Customised Voice in later part of this document.

I am assuming that you already have your MAIN IVR in English set up for selecting various options. This IVR is known as IVR-2 in your extension_additional.conf file.  Any subsequent IVR created will IVR-3, IVR-4 and so on.

You will need to create another IVR for selecting the language options that you want to present to the callers.  This will be the IVR that will greet all callers with Select 1 for English, 2 for Italian etc.  In this example, we will have 2 language sets, Australian and Italian.  Let us name this second IVR LanguageChoice.

Being the second IVR you have created, this IVR will be known as IVR-3 in your extension_additional.conf file.  Any subsequent IVR created will be IVR-4 and so on.

In LanguageChoice, we will have 3 options.

In choice 1, select the Custom App: radio button and enter the following in the box:

Custom App

custom-language_au,s,1

In choice 2, select the Custom App: radio button and enter the following in the box:

Custom App

custom-language_it,s,1

The third choice, instead of a number, you will enter the letter “t” in the option box, select Custom App: radio button and enter the following:

Custom App

custom-language_au,s,1

Next, you will need to do a little editing of the extensions_custom.conf file.  You need to add the following towards the end of your extensions_custom.conf.

You will also need to create another IVR called MAINIVR_IT with options to be presented in Italian.  This is similar to your main IVR except that it is presented to the caller in Italian.  This IVR being the third that you have created will be referred to as IVR-4 in the extensions_additional.conf file.

[custom-language_au]
exten => s,1,Set(LANGUAGE()=au)
exten => s,n,Playback(vm-dialout)
exten => s,n,Goto(ivr-2,s,begin)

[custom-language_it]
exten => s,1,Set(LANGUAGE()=it)
exten => s,n,Playback(vm-dialout)
exten => s,n,Goto(ivr-4,s,begin)

Save it and re-read the configuration change and you are done.

Now you will need to change your inbound route to point to the LanguageChoice IVR.  All calls will then be greeted by the LanguageChoice IVR and when the caller select 1 (or 2), the IVR will call the appropriate exten.  If the caller selected 1, the [custom-language_au] will be selected and the language will be set to Australian English, an announcement in the appropriate language will be made and the caller will be sent to the MainIVR for call options (you must also have recorded the call options announcement in the various languages).

 

7.3.1  Complimentary multi-language MOH

To take the multi-language IVR one step further, we can also have multi-language (or multi category) MOH to compliment the language.

If the language used is Italian, it is safe to assume that the caller is Italian and would much prefer to listen to Italian music instead of Chinese or Arabic music..

To do this you will need to have the appropriate MOH music in Trixbox. 

Assuming that you already have the default music category that comes with Asterisk, you will need to create a new music category using freePBX On Hold Music option.  Let us call this new category ItalinTune.

See the chapter relating to MOH in the later chapter of this document.

Once you have created this category, upload a few MP3 Italian music/Tunes to it.  If you want the tune to be randomised, click the Enable Random button and you are set to go.

You will need to modify the 2 scripts above to the following:

[custom-language_au]
exten => s,1,Set(LANGUAGE()=au)
exten => s,n, SetMusicOnHold(default)
exten => s,n,Playback(vm-dialout)
exten => s,n,Goto(ivr-2,s,begin)

[custom-language_it]
exten => s,1,Set(LANGUAGE()=it)
exten => s,n, SetMusicOnHold(ItalianTune)
exten => s,n,Playback(vm-dialout)
exten => s,n,Goto(ivr-4,s,begin)

You may have to restart asterisk after this (although it may not be necessary).

Now you will have multi language IVR as well as the complimentary MOH.

 

7.4  Multi-Tenants IVR

While freePBX is a very versatile GUI front-end for Trixbox it does not have the facility to configure a PBX for multi-Tenants application.  However, Trixbox (Asterisk) has the ability to do it with a little creative manipulation.

In the chapter above we covered multi languages IVR handling by simply telling Trixbox what language to use.  We are going to use the same principal to handle the Multi-Tenants requirement.

In this example, I will use a Medical Centre that I have the privilege of installing the Asterisk PABX for.  There are 3 tenants involved – a General Practitioner, a Dental Practitioner and a Pathology representative.  Each has separate incoming telephone numbers with their own receptionist but using a common PABX.

I have picked this organisation as an example because it is small enough to write about.  If I choose one of my bigger installations, this book will never see the light of day J

The main requirements are pretty straightforward:

There are other requirements such as multi language prompts, after-hours ring groups, time conditions, Interlinking 2 Trixbox boxes between the Medical Centre and the Pathology Main Office in Kuala Lumpur etc., but I have only listed the major requirements.

In this example I will only highlight the Multi-Tenants incoming route handling and restricting outgoing calls to the appropriate telephone lines only.

The full case study can be found in the Appendix titled, Live Case Study at the end of this document.

My first task was to install the base Trixbox as per the chapter on Installation.  In this installation, there is no VOIP trunk involved.  All telephone communications are through PSTN lines apart from the Trixbox inter-connect between the Medical Centre and the Pathology Main Office in Kuala Lumpur, which will be done via a DSL connection.

PSTN Interface

2 x TDM400 were installed in the PC designated for the PBX task.

IVR Prompts

3 x IVR were created, one for each of the different tenant.

Each IVR will act as a traffic cop to direct calls to the appropriate extensions belonging to each tenant.

Inbound Routings

Extensions

1.  Extensions 2000 to 2004 allocated to GP

Change the context of these extensions, from [from-internal] to [from-internal-medical]

2.  Extensions 3000 to 3003 allocated to Dental

Change the context of these extensions, from [from-internal] to [from-internal-dental]

3.  Extensions 4000 to 4002 allocated to Pathology

Change the context of these extensions, from [from-internal] to [from-internal-pathology]

Outbound Calls Handling context

Create 3 different call handling contexts in the extensions_custom.conf configuration file.

The purpose of these contexts is to restrict extensions belonging to each tenant to be confined to telephone lines belonging to that particular tenant when making external calls. See How to restrict outgoing calls in the Calls Handling chapter earlier in this document.

All of the basic set up requirements above are explained in the various chapters of this book and should not present any difficulty to complete.

Once the basic is completed, the rest of the variations and extras can be handled as per the individual requirement.