这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
|
zh:二次开发者指南:如何将第三方系统与astercc集成 [2012/06/04 03:07] solo |
zh:二次开发者指南:如何将第三方系统与astercc集成 [2017/12/12 03:05] (当前版本) |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== 将第三方系统与astercc集成 ====== | ||
| + | |||
| 将CRM或者OA系统与呼叫中心结合在一起,能够更好的发挥功效,提高系统竞争力 | 将CRM或者OA系统与呼叫中心结合在一起,能够更好的发挥功效,提高系统竞争力 | ||
| 行 4: | 行 6: | ||
| 目的 | 目的 | ||
| - | * 实现来电弹屏 | + | **坐席分机呼入或呼出时弹屏** |
| - | * 实现点击呼叫 | + | |
| - | 对于B/S结构的系统asterCC支持内嵌式和独立式两种集成模式 | + | 从使用模式上来说,asterCC支持内嵌式和独立式两种集成模式 |
| 内嵌式系统指坐席需要登陆asterCC系统, 而独立式则指坐席登陆第三方系统, 感受不到任何与asterCC相关的内容(( 管理员仍然需要登陆asterCC进行系统设置)) | 内嵌式系统指坐席需要登陆asterCC系统, 而独立式则指坐席登陆第三方系统, 感受不到任何与asterCC相关的内容(( 管理员仍然需要登陆asterCC进行系统设置)) | ||
| - | {{:zh:二次开发者指南:workplace.png?450|工作台}} | + | {{: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|}} | ||
| + | |||
| + | sample.html | ||
| + | <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> | ||
| + | popup.html | ||
| + | <code> | ||
| + | |||
| + | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | ||
| + | <html> | ||
| + | <head> | ||
| + | <title> popup page </title> | ||
| + | <meta name="Author" content=""> | ||
| + | <meta name="Keywords" content=""> | ||
| + | <meta name="Description" content=""> | ||
| + | </head> | ||
| - | 以内嵌式集成为例 | + | <body> |
| + | <br/> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | hello world, my url is | ||
| + | <script type="text/javascript"> | ||
| + | <!-- | ||
| + | var url = self.location.href; | ||
| + | document.write(url); | ||
| + | //--> | ||
| + | </script> | ||
| + | </body> | ||
| + | </html> | ||
| + | </code> | ||