Simple call center using mod fifo
About
This example illustrates on-hook agents waiting customers in a call centre.
Add members in fifo.conf.xml
fifo.conf.xml Expand source
<configuration name="fifo.conf" description="FIFO Configuration">
<fifos>
<fifo name="sales_fifo_1@$${domain}" importance="0">
<member timeout="15" simo="1" lag="5">{call_timeout=30,fifo_member_wait=nowait}user/1009@$${domain}</member>
<member timeout="15" simo="1" lag="5">{call_timeout=30,fifo_member_wait=nowait}user/1008@$${domain}</member>
<!-- <member timeout="60" simo="1" lag="20">{fifo_member_wait=wait}user/1001@$${domain}</member> -->
</fifo>
<fifo name="sales_fifo_2@$${domain}" importance="0">
<member timeout="15" simo="1" lag="5">{call_timeout=30,fifo_member_wait=nowait}user/1009@$${domain}</member>
<member timeout="15" simo="1" lag="5">{call_timeout=30,fifo_member_wait=nowait}user/1008@$${domain}</member>
<!-- <member timeout="60" simo="1" lag="20">{fifo_member_wait=wait}user/1001@$${domain}</member> -->
</fifo>
</fifos>
</configuration>
Note: the members can also dynamically add/remove by using the fifo_member comma
Dialplan
Dialplan Expand source
<extension name="sales_fifo_1">
<condition field="destination_number" expression="^sales_fifo_1$">
<action application="answer"/>
<!-- <action application="sleep" data="2000"/> -->
<action application="set" data="fifo_chime_list=sales/2001.wav"/>
<action application="set" data="fifo_chime_freq=15"/>
<action application="set" data="fifo_orbit_exten=1009:45"/>
<action application="set" data="fifo_orbit_dialplan=XML"/>
<action application="set" data="fifo_orbit_context=default"/>
<action application="set" data="fifo_orbit_announce=digits/6.wav"/>
<action application="set" data="fifo_caller_exit_key=2"/>
<action application="set" data="fifo_caller_exit_to_orbit=true"/>
<action application="set" data="fifo_override_announce=sales/3001.wav"/>
<action application="fifo" data="sales_fifo_1@$${domain} in undef $${base_dir}/sounds/music/8000/hood_loop_music.wav"/>
</condition>
</extension>
Summary
Transfer your customers call to extension sales_fifo_1, the caller then waiting in the queue listening MOH, FS then originate a call to an available agent and pop out the caller and bridge to the answered agent. The caller will hear 6.wav and agent hear 3001.wav before they can hear each other.
If there are no available agents, it will play 2001.wav every 15 seconds, impatient callers can press a key (2 in this example) to transfer the call to exten 1009, or waiting 45 seconds to transfer to call to exten 1009 on timeout