Dynamics CRM 的点击通话功能(如 Lync/Skype)

Click-To-Call feature for Dynamics CRM (like Lync/Skype)

预先警告:我是 Dynamics CRM 的绝对新手!

意图

我想要 Lync/Skype 集成之类的功能,但使用我自己的 URL。 (点击CRM中的任意电话号码并拨打)。

例如。假设我有一个 Web 服务,可以根据 URL: http://telephony.com/call?nr=012345678 发起调用。现在,每当 CRM 用户点击 CRM 中的电话号码字段(在表单 视图中)时,我的网络服务应该被调用而不是 Skype/Lync.

事实上我正在尝试重现某事。像 InGenius Connecter.

尝试次数

我已经尝试将 JS 网络资源注入特定的公式(在我的例子中它是默认的联系表单)并覆盖 Mscrm.ReadFormUtilities.openPhoneClient 回调(它似乎处理 Lync/Skype 集成).

function load() {
    // override integrated CTC (Lync/Skype)
    Mscrm.ReadFormUtilities.openPhoneClient = function (telephoneNr) {
        // redirect user to my web service
        window.location.replace("http://telephony.com/call?nr="+telephoneNr);
        return; 
    }
}

在以下位置找到此方法:

这在 Dynamics 2015 的形式中运行良好(我的自定义 link 弹出而不是 Skype/Lync)。但是,这只适用于实体表单,因为我无法将 Web 资源注入实体视图。

我关于如何实现此类功能的其他想法是:

  1. 注入禁用Lync/Skype的全局JS资源并将每个电话号码link封装到我的自定义URL.
  2. Extend/Manipulate Lync/Skype 集成以使用我的自定义 URL 而不是 Lync/Skype.
  3. 编写封装电话号码服务器端的插件。

问题

由于我对 Dynamics 有一定的了解,但没有 plugin/resource 开发经验,所以我对这些问题有点困惑。

  1. 以上三个想法有没有可能实现?
  2. 如果没有,知道 InGenius 如何解决这个问题吗?
  3. 关于这个话题,您还有其他 idea/resources 吗?

目前我发现有两个选项可用于实现自定义 CTC 功能。 (两者都有不被动态 crm 官方支持的缺点。)

全球功能区

非常简单:将“点击通话”按钮添加到全局功能区,该按钮仅在选择一行时在特定网格上启用。 此按钮引用了一个 JS-Action,它通过 ODATA 检索电话号码,然后启动拨号过程。

全局色带CustomRule注入

向功能区添加一个全局按钮,它引用每个 <CustomRule> 的 JS 资源。然后,JScript 将所有操作与 .ms-crm-Phone 类 的链接解除绑定,并替换其 href 属性。

如果有人想用自己的逻辑覆盖集成的 "Skype / Lync - Click to Dial" 功能,这将很有用。

我直到现在才测试这个方法,所以我不能保证它有效!

注意:我会尽快包含示例脚本。