asterCC, hosted call center solution based asterisk
»
zh
»
二次开发者指南
»
接口开发手册_v2.0
»
后台接收事件
您的足迹:
显示页面
修订记录
最近更改
网站地图
登录
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== 后台接收事件 ====== ===== 外呼型通话记录举例 ===== 在这个示例中,我们将在服务端创建接收程序cdrlog用于记录呼叫记录,主要观察这些通话事件的规律,利用其去创建,更新通话数据。我们使用php+mysql实例代码举例,提供一种思路供开发者参阅。 * 通话过程分析: - 坐席席通过代码告诉CC我要给xxxx打电话; - CC首先呼叫坐席的电话,此时坐席电话振铃; - 坐席接起电话 - 当坐席接起电话时,CC才会向XXXX拨打电话,只有确认坐席可以正常通话时,客户才会被呼叫。 - (在坐席接起电话的同一时刻)客户电话振铃(通话开始,创建呼叫记录) - 客户接听电话(通话应答,更新呼叫记录) - 当有一方挂断电话时,整个通话就结束了(通话结束, 更新呼叫记录) * 情景分析:外呼是坐席主动给客户打电话,那么我们已知数据信息有 * 坐席工号$agentno * 坐席绑定的电话号码$agentphone * 团队标识$orgidentity 这些已知信息会在坐席登录时获得 事件观察:每个完整的通话是由多个事件组成,但是每个事件的sessionid都是相同的,也就是说sessionid是一通通话的标识。 source+event描述了当前通话的实际状态 这段代码逐条处理系统发出的事件,当收到振铃事件时,就创建一条新的呼叫记录,收到其它事件时就更新呼叫记录。 function cdr() { if($data ['calltype'] == ‘dialout’){ //如果是呼出事件 if($data['source'] == 'CALLEE' && $data['event'] == 'ringing'){ //坐席外呼,客户开始振铃 ,此刻代表电话的开始,创建通话记录 $src = (string)$agentphone; //电话发起方:坐席的电话 $dst = (string)$data['activenum'];//被叫号码 $starttime = $data['eventTime'];//事件时间就是通话的开始时间 $disposition = 'NOANSWER';//此刻是客户振铃,暂时等于未应答 $target = 'DialOut';//标识通话记录是呼出 $diallogid = $data['sessionid']; //此通通话的唯一标识 $agentno;//坐席工号,标识是哪个坐席打的电话 $orgidentity;//标识是哪个组织的电话记录 If(!(SELECT * FROM 呼叫记录表 WHERE diallogid=$diallogid limit 1;)){ //检查是否已经创建了这个通话的呼叫记录,如果没找到数据,说明可以创建呼叫记录,防止收到重复事件. INSERT INTO 呼叫记录表 SET 以上变量;//将以上信息存入数据库 } }else if($data['source'] == 'CALLEE' && $data['event'] == 'answer'){ //客户应答,更新呼叫记录 $disposition = 'ANSWER';//应答了 更新成应答标识 $answertime =$data['eventTime'];//通话应答时间 UPDATE 呼叫记录表 SET 以上变量 WHERE diallogid=$diallogid limit 1; }else if($data['source'] == 'CALLEE' && $data['event'] == 'hangup'){ $endtime =$data['eventTime'];//双方通话结束时间 UPDATE 呼叫记录表 SET 以上变量 WHERE diallogid=$diallogid limit 1; } } } 第二步:在cc上设置事件发送地址 接收团队事件,须在团队高级设置中填写“事件接收地址”=>你的程序访问地址 登录服务器执行命令 /etc/init.d/asterccd restart 第三步:处理话务事件 接收到的事件和第6章提供的数据是一样的,程序中可通过这些事件进行cdr记录。
zh/二次开发者指南/接口开发手册_v2.0/后台接收事件.1394989588.txt.gz
· 最后更改: 2017/12/12 03:11 (外部编辑)
显示页面
修订记录
反向链接
回到顶部