您好我正在尝试创建一个模块,当我们接到电话时会在SugarCRM内部创建一个弹出窗口。我已经看到其他一些已经完成了这个(昂贵的付费模块),我希望能够对实际的弹出触发部分有所了解....
我们的电话系统有一个API,当我们有来电时,它会向网址发送HTTP帖子。
在SugarCRM内部,在我的模块代码中,我不知道如何从我的手机上使用这个HTTP POST来做弹出窗口,原因是我看不出它如何足够快,如果我要设置每1分钟检查一次页面的Cron作业,这仍然太慢。
那么有没有人知道其他类似的手机集成模块是如何做到这一点的,并且随着电话的进入,Popup几乎立刻就会发生?
关于如何完成这项任务的任何想法?我打算做一个桌面应用程序,它只是放在托盘中并等待POST,但看到其他人能够在SugarCRM中获得相同的结果而没有单独的程序真的让我感兴趣。
答案 0 :(得分:1)
我在一家公司工作,创建了一个昂贵的付费模块来完成这项工作,但我可以提供两种方法来实现这一点; - )
1)使用GenericHook 在custom / modules中创建一个logic_hooks.php和一个YOURCHOICEHERE.php
在逻辑钩子中创建一个after ui hook
$hook_array['after_ui_frame'] = Array();
$hook_array['after_ui_frame'][] = Array(1, 'Display Javascript for Telephone','custom/modules/YOURCHOICEHERE.php','GenericHooks', 'displayTelephoneJS');
并在YOURCHOICEHERE.php
class GenericHooks {
function displayTelephoneJS() {
if(!$_REQUEST['to_pdf']) echo '<div id=\"telephone_div\"></div>
<script type=\"text/javascript\" src=\"custom/somewherewhereyouwant/Telephone.js\"/></script>';
// you yould also add a stylesheet here
}
}
在Telephone.js中你可以做任何你想要的事情,例如:
function Telephone_poll() {
$.post("some.php?poll=1,function(data){
if(data != 0)
{
var result= JSON.parse(data);
//HERE you can do manipulate your telephone_div and populate it with response data "result" from the call to some.php
$('#telephone_div').html("<span>HELLO<span>");
$('#telephone_div').show();
//Here you can also add styles and so on
}
setTimeout("Telephone_poll()", 1000); //restart the function every 1000ms
});
}
Telephone_poll(); //initial start of script
2)另一种方法是从重新运行自己的php文件创建恶魔/服务。 在这里,您需要一些方法来识别用户和电话,以确保为正确的用户/电话显示弹出窗口。