freeswitch笔记2:呼叫中心坐席转接

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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值