撥號計划
<?xml version="1.0"?>
<include>
<context name="inboundcall">
<!-- 坐席撥打611登錄到隊列 -->
<extension name="Agent Login">
<!--限制可登錄隊列的坐席分機號-->
<condition field="caller_id_number" expression="^([1,8]\d{3})$" />
<condition field="destination_number" expression="^(611)$">
<action application="answer"/>
<action application="set" data="result=${fifo_member(add f1 {fifo_member_wait=nowait}user/${caller_id_number})}"/>
<action application="log" data="INFO call_id_number: ${caller_id_number}" />
<action application="log" data="INFO Add FIFO1 agent result: ${result}"/>
<!-- <action application="hangup"/> -->
</condition>
</extension>
<!-- 坐席撥打612退出隊列 -->
<extension name="Agent Logout">
<condition field="destination_number" expression="^(612)$">
<action application="answer"/>
<action application="set" data="result=${fifo_member(del f1 {fifo_member_wait=nowait}user/${caller_id_number})}"/>
<action application="log" data="INFO Del FIFO1 agent result: ${result}"/>
<!-- <action application="hangup"/> -->
</condition>
</extension>
<extension name="send caller to FIFO">
<!-- 測試的時候可以限制一下呼入的來電號碼 -->
<condition field="caller_id_number" expression="^(17712345678)$" />
<!-- destination_number應該是運營商或者線路商提供的可呼入號碼 -->
<condition field="destination_number" expression="^(0101234567)$">
<action application="log" data="INFO get caller ${caller_id_number} calls coming..." />
<action application="answer"/>
<action application="set" data="record_sample_rate=8000"/>
<action application="set" data="RECORD_STEREO=true"/>
<action application="record_session" data="/home/Records/inboundcall/${strftime(%Y/%m/%d/)}${caller_id_number}_${strftime(%Y%m%d%H%M%S)}.wav"/>
<action application="fifo" data="f1 in"/>
<action application="log" data="INFO get in fifo: 12345678"/>
<action application="park"/>
<!-- 不park會導致立即掛機; -->
</condition>
</extension>
</context>
</include>
大致流程
- 假設坐席分機號1001、1002、1003、1004撥打611登錄到隊列中
- 客戶17712345678撥打0101234567呼入
- FreeSWITCH先預應答客戶,將客戶通話放到隊列中
- FreeSWITCH查找已登錄到隊列中的坐席,比如1002
- FreeSWITCH將客戶通話推到1002坐席,實現通話。
- 假設1003坐席暫停接聽電話,撥打612退出隊列。