埋め込み: PBXをソフトウェアに組み込む

CRMがある場合、技術サービスプログラムや任意のWebアプリケーションがある場合、PBX画面とWeb電話を自社のインターフェース内で開くことができます。ライブコール、通話記録、音声記録、休憩、自動ダイヤル、番号ブロック、ブラウザ電話をこの方法で埋め込むことができます。

PHPは必要ありません。純粋なHTML、jQuery、React、または任意のフレームワークで動作します。画面はあなたが指定したドメインでのみ開きます。

基本アドレス: https://api.buluthat.com

1. 埋め込みコードを生成します

パネルで サブスクリプション処理 > 埋め込みコード (CRM) ページを開いてください。代理店の場合はこの作業を代理店パネル > 埋め込みとAPI ページから、顧客を選択して行います。

エリア説明
許可されたドメインCRMのアドレス、例。 https://crm.firmaniz.com. 各行に1つのアドレスを入力してください。 https://*.firmaniz.com と入力すると、すべてのサブドメインがカバーされます。リストにないサイトでは画面が開きません; これはブラウザが適用します。
画面表示されるPBX画面。ユーザーはこれらのみを開くことができます。
ログインiframe内でログイン (デフォルト) または ログインなし. サーバーからの署名付きリンクは両方のモードで動作します。
ブランド代理店ブランドがオープンな場合、画面に代理店の名前、ロゴ、色が表示されます。

埋め込みコード wk_ から始まります。このコードは秘密ではありません; あなたのページのソースに表示されます。セキュリティは許可されたドメインリストと以下のログイン方法から来ます。

2. コードをあなたのページに貼り付けてください

1行

<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>

Web電話用のiframe内 allow="microphone" 必須です。 embed.js これを自分で追加します。

3. スクリーン

page画面
live_monitorライブコール追跡
status_panelライブPBXステータス
webphoneWeb電話(ブラウザからの通話\/応答)
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)は、他のサイトのフレーム内のクッキーを完全にブロックします。この場合、ログイン画面で 新しいウィンドウで開く リンクが削除されます。永続的な解決策として署名付きリンクを使用してください。

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いいえWeb電話が使用する内線番号(例。 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) ログインなしモード

埋め込みコードは選択したユーザーとしてパスワードなしで開きます。これには2つの条件があります:

  • リクエストは許可されたドメインのフレームから来る必要があります。
  • 必要に応じて、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. セキュリティノート

  • 埋め込みセッションは別のクッキーに保存され、選択された画面のみを開きます。サブスクリプション、支払い、パスワード、APIキーの画面は埋め込み時に決して開きません。
  • すべてのログインと埋め込みコードの変更は顧客の 取引履歴'何を書くか。'
  • 埋め込みコードを削除または無効にすると、それを使用しているすべてのページで画面が即座に閉じます。
  • APIキーをブラウザコード、モバイルアプリ、または公開リポジトリに置かないでください。詳細: APIセキュリティ.