1.设置呼叫中心拨号计划
<extension name="Call-Center-9999" continue="" uuid="c3500cca-9d04-4e18-a857-9d54c7490038">
<condition field="destination_number" expression="^([^#]+#)(.*)$" break="never">
<action application="set" data="caller_id_name=$2"/>
</condition>
<condition field="destination_number" expression="^(callcenter\+)?9999$">
<action application="answer" data=""/>
<action application="set" data="call_center_queue_uuid=c532409f-4b96-411e-a489-c011e1e9c9dc"/>
<action application="set" data="queue_extension=9999"/>
<action application="set" data="cc_export_vars=call_center_queue_uuid"/>
<action application="set" data="hangup_after_bridge=true"/>
<action application="callcenter" data="9999@${domain_name}"/>
</condition>
</extension>
2.添加坐席,并与呼叫中心建立tiers。
我使用的是fusionpbx添加。
xml方式添加,在callcenter.conf.xml:未测试
<agent
name="a030f2bc-b105-43f2-beef-a4625dda422e"
label="9001@192.168.1.1"
type="callback"
contact="{call_timeout=20,domain_name=192.168.1.1,domain_uuid=40d3fd6f-3e94-41f8-8ea6-49f7e43c73ee,extension_uuid=8210bedf-f9a1-4b2e-9a57-187dbbad6e61,sip_h_caller_destination=${caller_destination}}user/9001@111.44.133.178"
status=""
no-answer-delay-time="30"
max-no-answer="0"
wrap-up-time="10"
reject-delay-time="90"
busy-delay-time="90"
/>
</agents>
<tiers>
<tier
agent="9ea150f5-3213-4683-adbc-bc501d5bf874"
queue="8888@192.200.253.10"
domain_name="192.200.253.10"
level="0"
position="0"
/>
</tiers>
这里需要注意的是agent的状态一定是:Available
这是就可以拨打9999实现坐席9001接听了,但是9001只能接听,无法实现转接功能。
3.使用lua脚本在9001开始应答前,设置特殊拨号键。
在lua.conf.xml 文件中添加:
<hook event="CUSTOM" subclass="callcenter::info" script="aphero/callcenter_event.lua"/>
绑定CUSTOM事件中的callcenter::info呼叫中心子类,执行callcenter_event.lua,文件路径在freeswitch目录中的scripts下面。
4.lua脚本处理:
callcenter_event.lua,用到json,需要json.lua扩展。代码很粗糙!!!!!!!!
local json = require "aphero.json"
local action = event:getHeader("CC-Action")
local agent_session
local api = freeswitch.API()
local agent
freeswitch.consoleLog("NOTICE", "[aphero]callcenter: "..action.."\n")
--if (action == "agent-offering") then
if (action == "bridge-agent-start") then
agent = event:getHeader("CC-Agent")
local Agent_System = event:getHeader("CC-Agent-System")
local Member_UUID = event:getHeader("CC-Member-UUID")
local Member_Session_UUID = event:getHeader("CC-Member-Session-UUID")
local Member_CID_Name = event:getHeader("CC-Member-CID-Name")
local Member_CID_Number = event:getHeader("CC-Member-CID-Number")
freeswitch.consoleLog("NOTICE", "[aphero]CC-Agent:"..agent.."\n")
freeswitch.consoleLog("NOTICE", "[aphero]CC-Agent-System:"..Agent_System.."\n")
freeswitch.consoleLog("NOTICE", "[aphero]CC-Member-UUID:"..Member_UUID.."\n")
freeswitch.consoleLog

本文档详细介绍了如何在FusionPBX中配置呼叫中心,包括设置呼叫中心拨号计划、添加坐席、建立坐席与呼叫中心的连接,以及通过Lua脚本来实现在坐席接听电话前设置特殊拨号键,允许坐席进行转接操作。同时,展示了相关的XML配置和Lua脚本代码,以及执行过程的日志记录。
3685

被折叠的 条评论
为什么被折叠?



