2.WebSocket API

光CTIスマートコネクトサービスは、WebSocket APIを提供します。

※Windows 7SP1 では動作しません。WebSocket API をご利用の際は、 Windows 8、8.1、10 をご使用ください。
(Windows 7SP1 は OSレベルの WebSocketに非対応のため、
ご利用いただけません。)

 

【サンプルプログラムの利用方法】

  1. サーバーにするパソコンに「光CTIスマートコネクトサービス」をインストールします。
  2. 以下の【クライアントプログラム(JavaScript)のサンプルソース】を参考にプログラムを作成します。
  3. 作成したクライアントプログラム(JavaScript)をクライアント上で実行します。(ブラウザで開く)

 

【使用するポート】

  • 55963ポート(サービス側のパソコンでオープンが必要です。)
  • 80ポート(クライアント側のパソコンでオープンが必要です。)

 

【クライアントプログラム(JavaScript)のサンプルソース】

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <button id="btn1">Regist</button>
    <button id="btn2">UnRegist</button>
    <button id="btn3">KeepAlive</button><br>
    <span id="text1">サーバーから受信したメッセージをここに表示します。</span>

    <script>
        const sock = new WebSocket("ws://localhost:55963/CTI_SmartConnectService/WebSocket/");

        sock.addEventListener("open", e => {
            console.log("接続が開かれたときに呼び出されるイベント");
        });

        sock.addEventListener("message", e => {
            console.log("サーバーからメッセージを受信したときに呼び出されるイベント");
            console.log(e.data);
            document.getElementById("text1").innerHTML = e.data;

            //メッセージをJSONパース
            var data = JSON.parse(e.data.replace(/\r?\n/g, ' '));   //改行文字を半角スペースに変換する
            console.log("title             : " + data.title);
            console.log("msg               : " + data.msg);
            console.log("tyakusin_nichiji  : " + data.tyakusin_nichiji);
            console.log("from              : " + data.from);
            console.log("to                : " + data.to);
            console.log("kokyaku_id        : " + data.kokyaku_id);
            console.log("kokyaku_name      : " + data.kokyaku_name);
            console.log("tantou_name       : " + data.tantou_name);
            console.log("syubetsu          : " + data.syubetsu);
        });

        sock.addEventListener("close", e => {
            console.log("接続が閉じられたときに呼び出されるイベント");
        });

        sock.addEventListener("error", e => {
            console.log("エラーが発生したときに呼び出されるイベント");
        });

        btn1.addEventListener("click", e => {
            sock.send("Regist('クライアント名')");
        });

        btn2.addEventListener("click", e => {
            sock.send("UnRegist('クライアント名')");
        });

        btn3.addEventListener("click", e => {
            sock.send("KeepAlive('クライアント名')");
        });
    </script>
</body>
</html>

 

【実行画面サンプル】

 

 

【光CTIスマートコネクトサービスWebSocket API仕様】

アドレス ws://(サービス実行中のパソコンのIPアドレス):55963/CTI_SmartConnectService/WebSocket/
バインディング
customBinding(netHttpBinding からの派生)
データ名称 Send メッセージ
接続中クライアントリストへ登録する Regist(‘name’)
  • name = クライアント名を設定します。
接続中クライアントリストから登録解除する UnRegist(‘name’)
  • name = クライアント名を設定します。
キープアライブ(タイムアウトを防ぐため、クライアントから5分間隔で呼び出す)

※調査の結果、本メッセージを送信しなくても接続がキープされているようです。

KeepAlive(‘name’)
WCFのタイムアウトを防ぐため、クライアントから定期的にキープアライブをコールします。(10分以内に1回コールする必要があります。)

  • name = クライアント名を設定します。
データ名称 CallBack メッセージ
サービスからの通知 {
“title”:”タイトル”,
“msg”:”メッセージ”,
“tyakusin_nichiji”:”着信日時”,
“from”:”相手TEL”,
“to”:”着信TEL”,
“kokyaku_id”:”顧客ID”,
“kokyaku_name”:”顧客名(会社名)”,
“tantou_name”:”担当者名”,
“syubetsu”:”回線種別”
}

※JSON形式

サービスから着信メッセージ、クライアント生存確認、処理完了通知がコールバックされます。

  • title  = メッセージタイトルがセットされています。
  • msg = メッセージ本文がセットされています。
  • tyakusin_nichiji = 着信日時がセットされています。
  • from = 相手TELがセットされています。
  • to = 着信TELがセットされています。
  • kokyaku_id = 顧客IDがセットされています。
  • kokyaku_name = 顧客名(会社名)がセットされています。
  • tantou_name = 担当者名がセットされています。
  • syubetsu = 回線種別がセットされています。