这是本文档旧的修订版!
====== 将第三方系统与astercc集成 ====== 将CRM或者OA系统与呼叫中心结合在一起,能够更好的发挥功效,提高系统竞争力 这里将以基于B/S的WEB应用为例,介绍如何将asterCC呼叫中心系统与第三方系统进行快速集成 目的 **坐席分机呼入或呼出时弹屏** 从使用模式上来说,asterCC支持内嵌式和独立式两种集成模式 内嵌式系统指坐席需要登陆asterCC系统, 而独立式则指坐席登陆第三方系统, 感受不到任何与asterCC相关的内容(( 管理员仍然需要登陆asterCC进行系统设置)) {{:zh:二次开发者指南:workplace.png?800|工作台}} 对于B/S式的系统,从开发角度来说,分为跨域和同域两种 ===== 内嵌式同域集成 ===== 内嵌式同域指 - 坐席通过asterCC界面登陆 - 起始页面和asterCC在同一个域名下,例如都在asterCC的服务器上 * 首先我们准备两个文件,分别为sample.html和popup.html,用于代表接受事件的页面和弹屏页面,并将文件上传到asterCC的服务器上,路径为/var/www/html/asterCC/app/webroot * 其次我们需要将sample.html设置为默认页面,这里我们借用外呼营销模块 * 进入 [[zh:模块使用说明:呼叫中心高级管理:]] -> [[zh:模块使用说明:呼叫中心高级管理:链接管理]],添加一个链接,链接类型选择 拨号计划链接, 链接地址输入sample.html * 进入 [[zh:模块使用说明:外呼营销]] -> [[zh:模块使用说明:外呼营销:外呼营销任务]],添加一个外呼营销任务,工作链接选择sample.html * 进入呼入应用绑定,将该营销任务设定为默认呼入弹屏 * 进入坐席组管理,将该营销任务设定为默认呼出弹屏 {{:zh:二次开发者指南:dev_link_url_add_cn.jpg?direct&680|}} {{:zh:二次开发者指南:dev_campaign_config_cn.jpg?direct&680|}} {{:zh:二次开发者指南:dev_app_bind_cn.jpg?direct&680|}} {{:zh:二次开发者指南:dev_agent_group_config_cn.jpg?direct&680|}} * 使用坐席登陆,使用软电话外呼,获得弹屏 * 可以看到新弹出的页面通过url获取到了参数 {{:zh:二次开发者指南:dev_agent_portal_cn.jpg?direct&680|}} {{:zh:二次开发者指南:dev_agent_portal_popup_cn.jpg?direct&680|}} <code> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> asterCC development sample (local domain)</title> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="/js/jquery/jquery-1.4.2.min.js"></script> <script type="text/javascript"> <!-- var tabflag; function sonAccept(msgStr){ var eventAll = msgStr.split('&'); var aryEvent = new Array(); for(i=0;i<eventAll.length;i++) { var tmpstr = eventAll[i].split('='); eval("aryEvent['"+tmpstr[0]+"'] = '"+tmpstr[1]+"';"); } // only popup when event is agent ring if(aryEvent['source'] == 'AGENT' && aryEvent['event'] == 'ringing'){ $('#ringnum').attr('value',aryEvent['calleridnum']); var ringtypeval = 2; if(aryEvent['calltype'] == 'dialout'){ ringtypeval = 1; } $('#ringtype').attr('value',ringtypeval); var popurl = $('#popurl').val()+'?phone='+aryEvent['calleridnum']+'&type='+ringtypeval; tabflag = "uc"+aryEvent['calleridnum']+((new Date()).getTime()); // call the main function to popup tab with the url window.top.addTab(tabflag,popurl,aryEvent['calleridnum'],"yes"); }else{ window.top.showDiv('gid'+tabflag); } } $().ready(function(){ $('#clickpop').click(function(){ var url = $('#popurl').val()+'?phone='+$('#ringnum').val()+'&type='+$('#ringtype').val();//?phone=13585306891&type=2 window.top.addTab("uc"+$('#ringnum').val()+((new Date()).getTime()),url,$('#ringnum').val(),"yes"); }); var str = self.location.href; str = str.replace(/sample\.html/,""); document.getElementById("popurl").value= str + 'popup.html'; }); //--> </script> </head> <body> <div style="margin:10px 10px;"> Popup url: <input type="text" value="" id="popurl" style="width:100%;"> <p /> Caller ID: <input type="text" value="18888888888" id="ringnum" style="width:100%;"> <p /> Type(1 inbound||2 outbound):<input type="text" value="2" id="ringtype" style="width:100%;"> <p /> <input type="button" value="Click Popup" id="clickpop"> </div> </body> </html> </code>