Simple call center using mod fifo

From FreeSWITCH Wiki
Jump to: navigation, search

This example illustrates on-hook agents waiting customers in a call center.

Contents

Add members in fifo.conf.xml

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

Dialplan

	    <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