埋め込み: 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ステータス |
webphone | Web電話(ブラウザからの通話\/応答) |
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)は、他のサイトのフレーム内のクッキーを完全にブロックします。この場合、ログイン画面で 新しいウィンドウで開く リンクが削除されます。永続的な解決策として署名付きリンクを使用してください。
b) サーバーからの署名付きリンク(推奨)
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% |
autoHeight | true の場合、フレームの内容の高さに合わせます。 |
クリックして検索の例(jQuery):
$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });
メッセージはBuluthatサーバーのアドレスからのみ受け付けられます。Buluthatは、許可されたドメインからのコマンドのみをリッスンします。
6. セキュリティノート
- 埋め込みセッションは別のクッキーに保存され、選択された画面のみを開きます。サブスクリプション、支払い、パスワード、APIキーの画面は埋め込み時に決して開きません。
- すべてのログインと埋め込みコードの変更は顧客の 取引履歴'何を書くか。'
- 埋め込みコードを削除または無効にすると、それを使用しているすべてのページで画面が即座に閉じます。
- APIキーをブラウザコード、モバイルアプリ、または公開リポジトリに置かないでください。詳細: APIセキュリティ.
