Call Center Example

Status
Not open for further replies.

Sesom42

New Member
Aug 23, 2017
3
0
1
Germany
A few years ago, I had the first time contact with FusionPBX. At that time, however, I did not manage to implement our requirements. Unfortunately there was at that time no community, in which free basic questions could be asked. This was the end of the first experiment. Now the second try follows.

It is no problem to set up gateways, extensions and inbound / outbound routes and to get FusionPBX to work. With a bit of expertise, everyone can do that. The individual parts of FusionPBX are more or less well documented. However, what is realy missing is a complete real example that shows how the individual parts work together. The simplest example is what is needed in almost every company that a PBX purchases: a simple call center.

A small call center for incoming calls might look like this:
  1. test for office time, if not, then forward to an IVR menu
  2. test for fixed holidays, if not forward to an IVR menu, same as from 1.)
  3. test for variable holidays, if not forward to an IVR menu, same as from 1.)
  4. accept the call and play a welcome message
  5. forward to mod_call_center

The IVR menu could ask if the caller wants to leave a message or enter his phone number, where he wants to be recalled.

Now my attempts:
For number 1.) to 3.) I have created three time conditions. I then assigned these three time conditions to one inbound destination. Result: after the first non-applicable time condition, the call is terminated. In the second attempt I tried to create a separate dialplan for the time conditions. Also this attempt failed because in FusionPBX no conditions with wday, etc. can be entered. The third attempt with chained time conditions then brought the success. Unfortunately, this is nowhere described. It would have saved me hours of working time.

To point 4.) I have no idea how this could be realized with FusionPBX. There is no example where a call is accepted, a sound is played, and the call is forwarded to an extension. This is one of the simplest functions of a PBX and it is nowhere described, how this can be configured :(

Point 5.) I have successfully set up this and it works.

Do I really need an LUA script for the above simple example? Then I do not need FusionPBX. Is it possible at all to realize this small example with the FusionPBX web interface?

Can someone help me with some ideas?

Many thanks in advance!
 

jsteel

New Member
Feb 9, 2017
28
3
3
54
Keep in mind that FusionPBX is built to make FreeSwitch easier to manage and admin, everything you described above could be built in FS without using Fusion at all. Fusion and FS are also both open source so support and documentation isn't always extensive but that is the "price" you have to pay. You have to be willing to learn a lot on your own, this isn't a production-ready, pbx in a box.
 

Sesom42

New Member
Aug 23, 2017
3
0
1
Germany
A long time ago, I was professionally programming add-on modules for a commercial PBX. In the meantime I learned a lot about OSS PBX. Unfortunately, I could not find an answer to my individual questions from above. I wasn't looking for a complete solution, but for answers to a few small questions.

Of course, I could have programmed all this myself in FreeSwitch. But I'm not the only one who will be using the PBX afterwards. The settings that are not accessible via GUI are quite bad.

As a result, my PBX now runs with Asterisk and FreePBX and I only needed about 10 lines of code to complete my requirements. To support the further development of FreePBX I bought hardware (phones) from the company that supports the development of FreePBX.

Too bad for FreeSwitch and too bad for FusionPBX. Thanks anyway!
 

DigitalDaz

Administrator
Staff member
Sep 29, 2016
3,070
577
113
PS if its that simple to do with FreePBX would you mind sharing it as I wouldn't mind giving it a shot, I'm paticularly interested in the bit, "The IVR menu could ask if the caller wants to leave a message or enter his phone number, where he wants to be recalled."
 

EasyBB

Active Member
Oct 23, 2016
240
33
28
Australia
Do I really need an LUA script for the above simple example?
No you don't need Lua for what you are after. Your requirements are relatively simple and straightforward; can be done through inbound dial plan route.

As a result, my PBX now runs with Asterisk and FreePBX and I only needed about 10 lines of code to complete my requirements.
As long as you are able to achieve what you want, any OSS product is absolutely fine to use. Don't stress yourself just because you couldn't figure out FusionPBX; it takes a fair bit of time actually.

There is of course official paid support available for FusionPBX; there's a link on the top of forum home page.
 
Last edited:

Sesom42

New Member
Aug 23, 2017
3
0
1
Germany
PS if its that simple to do with FreePBX would you mind sharing it as I wouldn't mind giving it a shot, I'm paticularly interested in the bit, "The IVR menu could ask if the caller wants to leave a message or enter his phone number, where he wants to be recalled."

Here is my Asterisk dial plan to achieve this:

[mycustom-numberrecording-app]
exten => s,1(start),NoOp(start)
exten => s,n,Set(FLAG=1)
exten => s,n,Playback(custom/Telefonnummer_eingeben) // please enter callback number
exten => s,n,Set(NUMBER=)
exten => s,n,Read(NUMBER,,20,,,5)
exten => s,n,Wait(1)
exten => s,n,Set(FLAG=2)
exten => s,n,GoToIf($[${LEN(${NUMBER})} == 0]?empty:full)

exten => s,n(empty),NoOp(empty)
exten => s,n,Playback(custom/Telefonnummer_nicht_erkannt) // number not recognized
exten => s,n,Set(STAR=)
exten => s,n,Read(STAR,,1,,,5)
exten => s,n,Wait(1)
exten => s,n,GoToIf($["${STAR}" = "*"]?start)
exten => s,n,Playback(custom/Ende_spaeter_nocheinmal) // please call back later
exten => s,n,Hangup()

exten => s,n(full),NoOp(full)
exten => s,n,Playback(custom/Telefonnummer_lautet) // phone number is
exten => s,n,SayDigits(${NUMBER})
exten => s,n,Playback(custom/Telefonnummer_bestaetigen) // phone number correct?
exten => s,n,Set(STAR=)
exten => s,n,Read(STAR,,1,,,5)
exten => s,n,Wait(1)
exten => s,n,GotoIf($["${STAR}" = "*"]?start)
exten => s,n,Playback(custom/Ende_mit_Rueckruf) // thank you etc.
exten => s,n,System(/usr/bin/call/mailnumber.sh ${NUMBER} callcenter@example.com ${CALLERID(num)} Queue1)
exten => s,n,Hangup()


Ok, 30 instead of 10 lines ;) I was able to implement all other requirements using the GUI.
 
Status
Not open for further replies.