嵌入:将电话交换机集成到您的软件中

如果您有CRM、技术服务程序或任何Web应用程序,可以在您的界面中打开交换机屏幕和网络电话。通过这种方式,可以嵌入实时通话、通话记录、语音记录、休息、自动拨号、号码屏蔽和浏览器电话。

无需PHP。可以与纯HTML、jQuery、React或任何框架一起使用。屏幕仅在您指定的域名中打开。

基础地址: https://api.buluthat.com

1. 生成嵌入代码

在面板中 订阅操作 > 嵌入代码 (CRM) 打开页面。如果您是经销商,请访问经销商面板 > 嵌入和API 通过页面选择客户。

区域说明
允许的域名您的CRM地址,例如。 https://crm.firmaniz.com. 每行写一个地址。 https://*.firmaniz.com 如果您写入,则所有子域名都将包含在内。未在列表中的网站将无法打开屏幕;这是浏览器的应用。
屏幕将显示的电话交换机屏幕。用户只能打开这些。
登录在 iframe 中登录 (默认) 或者 无登录. 从服务器获取的签名链接在两种模式下均可工作。
品牌如果代理品牌开启,屏幕上将显示代理的名称、徽标和颜色。

您的嵌入代码 wk_ 以开始。此代码不是秘密;它在您页面的源代码中可见。来自安全允许的域名列表和以下登录方法。

2. 将代码粘贴到您的页面

单行

<div id="santral" style="height:720px"></div>
<script src="https://api.buluthat.com/assets/js/embed.js" data-key="wk_..." data-page="live_monitor" data-target="#santral"></script>

jQuery

<script src="https://api.buluthat.com/assets/js/embed.js"></script>
<script>
  $(function () {
    var santral = $('#santral').buluthat({ key: 'wk_...', page: 'report_calls' }).data('buluthat');
  });
</script>

普通iframe

<iframe src="https://api.buluthat.com/embed.php?w=wk_...&page=live_monitor"
        style="width:100%;height:720px;border:0" allow="microphone; autoplay"></iframe>

网页电话的 iframe 中 allow="microphone" 是必要的。 embed.js 他自己添加这个。

3. 屏幕

page屏幕
live_monitor实时通话跟踪
status_panel实时交换机状态
webphone网页电话(通过浏览器拨打\/接听)
report_calls通话和语音记录
report_recordings语音记录
report_queue_live队列实时监控
breaks休息管理
auto_calls自动外呼
media音频文件
blocked_numbers号码拦截
voice_otp电话验证
contacts通讯录
voicebot_live语音助手,实时通话
voicebot_sessions语音助手通话报告
voicebot_inbox助手备注
dialer_agent销售拨号员代表界面
dashboard每日摘要

4. 身份验证

a) 在 iframe 中登录

默认方法。用户在首次打开时在框架中输入电子邮件和密码;如果启用了双重验证,还会询问代码。会话仅对该嵌入代码和选定屏幕有效。

某些浏览器(尤其是Safari)会完全阻止其他网站框架中的Cookies。在这种情况下,在登录屏幕上 在新窗口中打开 链接已移除。请使用签名链接以获得永久解决方案。

您的CRM用户已经在自己的系统中登录。您的服务器从Buluthat为该用户提供 2 分钟有效,单次使用 获取一个登录链接并在 iframe 中 src 将其赋值给。用户还不需要输入密码。

密钥: 客户账户中 API 密钥 页面 嵌入 生成一个全面的密钥。如果您是经销商,请访问经销商面板 > 嵌入和 API > 代理 API 密钥 使用;此密钥适用于所有与您相关的客户。密钥仅保留在您的服务器上,不会发送到浏览器。

curl -X POST 'https://api.buluthat.com/api/embed.php?action=session' \
  -H 'Authorization: Bearer bt_...' \
  -H 'Content-Type: application/json' \
  -d '{"widget":"wk_...","user_email":"temsilci@firma.com","extension":"1000","page":"webphone"}'

与代理密钥相同的请求如下:

curl -X POST 'https://api.buluthat.com/api/embed.php?action=session' \
  -H 'X-Bt-Partner-Key: bp_...' -H 'Content-Type: application/json' \
  -d '{"tenant_id":123,"user_email":"temsilci@musteri.com","page":"live_monitor"}'
区域必填说明
widget否嵌入代码(wk_...). 如果不提供,将使用客户的第一个活跃嵌入代码。
user_email否以此电子邮件作为注册用户登录面板。员工的权限也有效。
user_id否user_email 可以替代。
extension否网页电话将使用的内部号码(例如。 1000).
page否将打开的屏幕。 必须在嵌入代码中获得许可。
tenant_id代理仅通过代理密钥:与您相关的客户的号码。

如果未提供用户,则使用嵌入代码中的无用户,若无则使用客户代表。

响应:

{ "ok": true, "url": "https://api.buluthat.com/embed.php?w=wk_...&sso=...", "expires_in": 120, "user": "temsilci@firma.com" }

PHP示例:

$ch = curl_init('https://api.buluthat.com/api/embed.php?action=session');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('BULUTHAT_KEY'), 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode(['widget' => 'wk_...', 'user_email' => $kullanici['email'], 'page' => 'live_monitor']),
]);
$cevap = json_decode(curl_exec($ch), true);
echo '<iframe src="' . htmlspecialchars($cevap['url']) . '" style="width:100%;height:720px;border:0" allow="microphone"></iframe>';

其他端:

  • GET ?action=widgets: 列出嵌入代码。 代理密钥 tenant_id 是必要的。
  • GET ?action=ping: 测试密钥。

c) 无需登录模式

嵌入代码以您选择的用户身份无密码打开。为此有两个条件:

  • 请求必须来自您允许的域名的框架。
  • 如果您愿意,也可以要求来自您的 IP 列表。

警告: wk_ 由于代码在页面源代码中,因此此模式的安全性较低。仅适用于您内部网络中的屏幕,权限有限的 员工 使用您的帐户。

5. JavaScript API 和事件

var s = Buluthat.mount('#tel', { key: 'wk_...', page: 'webphone' });

s.dial('05321234567');           // web telefonundan ara
Buluthat.dial('05321234567');    // sayfadaki ilk web telefonundan ara
s.go('report_calls');            // ekran değiştir

s.on('call', function (c) {
  // c.state: idle | ringing | dialing | incall ; c.number: karşı numara
  if (c.state === 'ringing') { musteriKartiniAc(c.number); }
});
s.on('ready', function (d) { /* ekran yüklendi: d.page */ });
s.on('resize', function (d) { /* içerik yüksekliği: d.height */ });

mount 选项:

选项说明
key嵌入代码
page初始屏幕
url签名链接(您从服务器获得的) url); key 替代使用
height高度。数字(px)或 CSS 值;默认 100%
autoHeighttrue 则框架内容的高度将适应

点击拨打示例(jQuery):

$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });

消息仅从 Buluthat 服务器的地址接受。Buluthat 也只监听来自您授权域名的命令。

6. 安全说明

  • 嵌入会话保存在单独的cookie中,仅打开选定的屏幕。订阅、支付、密码和API密钥屏幕在嵌入时永远不会打开。
  • 每次登录和嵌入代码更改都由客户进行 交易历史'怎么写。'
  • 删除或关闭嵌入代码会立即在所有使用它的页面上关闭屏幕。
  • 请勿将您的 API 密钥放入浏览器代码、移动应用或公共存储库中。 详情: API 安全.