Skip to main content

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

See Also