Intégration : Intégrez le PBX dans votre logiciel

Si vous avez une adresse CRM, un programme de service technique ou toute application web, vous pouvez ouvrir les écrans de centrale et le téléphone web dans votre propre interface. Les appels en direct, les enregistrements d'appels, les enregistrements audio, les pauses, le numéroteur automatique, le blocage de numéro et le téléphone navigateur peuvent être intégrés de cette manière.

Aucun PHP requis. Fonctionne avec du HTML simple, jQuery, React ou tout autre framework. Les écrans s'ouvrent uniquement sur les domaines que vous avez définis.

Adresse de base : https://api.buluthat.com

créez le code d'intégration 1

Dans le panneau Opérations d'abonnement > Codes d'intégration (CRM) ouvrez la page. Si vous êtes un revendeur, faites-le depuis le Panneau Revendeur > Intégration et API vous le faites en sélectionnant le client depuis la page.

ChampDescription
Domaines autorisésL'adresse de votre CRM, par exemple. https://crm.firmaniz.com. Écrivez une adresse par ligne. https://*.firmaniz.com si vous écrivez, tous les sous-domaines sont couverts. Aucun écran ne s'ouvre sur le site non listé ; cela est appliqué par le navigateur.
ÉcransÉcrans du PBX à afficher. L'utilisateur ne peut ouvrir que ceux-ci.
Connexionconnexion dans iframe (par défaut) ou sans connexion. Le lien signé du serveur fonctionne dans les deux modes.
MarqueSi la marque du revendeur est activée, le nom, le logo et la couleur du revendeur apparaîtront sur les écrans.

Votre code d'intégration wk_ commence avec. Ce code n'est pas secret ; il est visible dans le code source de votre page. Il provient de la liste des domaines autorisés et des méthodes de connexion ci-dessous.

collez le code sur votre page 2

Une ligne

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

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

Dans l'iframe pour WebPhone allow="microphone" est requis. embed.js il l'ajoute lui-même.

3. Écrans

pageÉcran
live_monitorSuivi des appels en direct
status_panelÉtat de la centrale en direct
webphoneWebPhone (appel/réponse depuis le navigateur)
report_callsAppels et enregistrements audio
report_recordingsEnregistrements audio
report_queue_liveSurveillance en temps réel de la file d'attente
breaksGestion des pauses
auto_callsAppels automatiques
mediaFichiers audio
blocked_numbersBlocage de numéros
voice_otpVérification par téléphone
contactsRépertoire
voicebot_liveAssistant vocal, appels en direct
voicebot_sessionsRapport d'appel de l'assistant vocal
voicebot_inboxNotes de l'assistant
dialer_agentÉcran du représentant du dialer de vente
dashboardRésumé quotidien

authentification 4

a) Connexion dans l'iframe

C'est la méthode par défaut. L'utilisateur saisit son e-mail et son mot de passe dans le cadre lors de la première ouverture ; si la vérification en deux étapes est activée, un code est également demandé. La session n'est valable que pour ce code d'intégration et les écrans sélectionnés.

Certains navigateurs (en particulier Safari) bloquent complètement les cookies d'autres sites dans les cadres. Dans ce cas, sur l'écran de connexion Ouvrir dans une nouvelle fenêtre le lien est retiré. Utilisez un lien signé pour une solution permanente.

Votre utilisateur CRM est déjà connecté à son propre système. Votre serveur est Buluthat pour cet utilisateur valide pendant 2 minutes, à usage unique reçoit un lien d'entrée et l'iframe src donne la valeur. L'utilisateur n'entre également pas de mot de passe.

Clé : Compte client Clés API de la page Intégration générez une clé complète. Si vous êtes un revendeur, allez à Panneau Revendeur > Intégration et API > Clé API du revendeur utilisez ; cette clé est valable pour tous vos clients. La clé reste uniquement sur votre serveur, elle ne va pas dans le navigateur.

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"}'

La même requête avec la clé du revendeur se fait comme suit :

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"}'
ChampObligatoireDescription
widgetnonCode d'intégration (wk_...). Si non fourni, le premier code d'activation actif du client sera utilisé.
user_emailnonVous vous connectez au panneau en tant qu'utilisateur enregistré avec cet e-mail. Le personnel a également ses propres autorisations.
user_idnonuser_email peut être utilisé à la place.
extensionnonNuméro interne que le WebPhone utilisera (par ex. 1000).
pagenonÉcran à ouvrir. Doit être autorisé dans le code d'intégration.
tenant_idgrossisteUniquement avec la clé de grossiste : le numéro du client associé à vous.

Si aucun utilisateur n'est fourni, l'utilisateur sans entrée dans le code d'intégration est utilisé, sinon l'agent client est utilisé.

Réponse :

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

Exemple 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>';

Autres extrémités :

  • GET ?action=widgets: liste les codes d'intégration. Avec la clé du revendeur tenant_id nécessaire.
  • GET ?action=ping: teste la clé.

c) Mode sans connexion

Le code d'intégration s'ouvre sans mot de passe en tant qu'utilisateur sélectionné. Il y a deux conditions pour cela :

  • La demande doit provenir du cadre de votre domaine autorisé.
  • Si vous le souhaitez, il peut également être exigé qu'il provienne de votre liste IP.

Avertissement : wk_ ce mode est peu sécurisé car le code se trouve dans le code source de la page. Pour les écrans uniquement sur votre réseau interne, une autorisation limitée est requise. personnel utilisez avec votre compte.

API JavaScript et événements 5

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

OptionDescription
keyCode d'intégration
pagePremier écran
urlLien signé (obtenu depuis le serveur url); key est utilisé à la place
heightHauteur. Nombre (px) ou valeur CSS ; par défaut 100%
autoHeighttrue s'adapte à la hauteur du contenu du cadre

Exemple clic-appel (jQuery) :

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

Les messages ne sont acceptés que depuis l'adresse du serveur Buluthat. Buluthat écoute uniquement les commandes provenant de vos domaines autorisés.

notes de sécurité 6

  • La session d'intégration est conservée dans un cookie séparé et n'ouvre que les écrans sélectionnés. Les écrans d'abonnement, de paiement, de mot de passe et de clé API ne s'ouvrent jamais en intégration.
  • Chaque entrée et modification de code d'intégration est du ressort du client Historique des transactions'comment écrire.'
  • Supprimer ou désactiver un code d'intégration fermera instantanément l'écran sur toutes les pages qui l'utilisent.
  • Ne mettez pas votre clé API dans le code du navigateur, l'application mobile ou un dépôt public. Détails : Sécurité de l'API.