光CTIスマートコネクトサービスは、WebSocket APIを提供します。
※Windows 7SP1 では動作しません。WebSocket API をご利用の際は、 Windows 8、8.1、10 をご使用ください。
(Windows 7SP1 は OSレベルの WebSocketに非対応のため、ご利用いただけません。)
【サンプルプログラムの利用方法】
- サーバーにするパソコンに「光CTIスマートコネクトサービス」をインストールします。
- 以下の【クライアントプログラム(JavaScript)のサンプルソース】を参考にプログラムを作成します。
- 作成したクライアントプログラム(JavaScript)をクライアント上で実行します。(ブラウザで開く)
【使用するポート】
- 55963ポート(サービス側のパソコンでオープンが必要です。)
- 80ポート(クライアント側のパソコンでオープンが必要です。)
【クライアントプログラム(JavaScript)のサンプルソース】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<!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’) | |
|
||
接続中クライアントリストから登録解除する | UnRegist(‘name’) | |
|
||
キープアライブ(タイムアウトを防ぐため、クライアントから5分間隔で呼び出す)
※調査の結果、本メッセージを送信しなくても接続がキープされているようです。 |
KeepAlive(‘name’) | |
WCFのタイムアウトを防ぐため、クライアントから定期的にキープアライブをコールします。(10分以内に1回コールする必要があります。)
|
データ名称 | CallBack メッセージ | |
---|---|---|
サービスからの通知 | { “title”:”タイトル”, “msg”:”メッセージ”, “tyakusin_nichiji”:”着信日時”, “from”:”相手TEL”, “to”:”着信TEL”, “kokyaku_id”:”顧客ID”, “kokyaku_name”:”顧客名(会社名)”, “tantou_name”:”担当者名”, “syubetsu”:”回線種別” } ※JSON形式 |
|
サービスから着信メッセージ、クライアント生存確認、処理完了通知がコールバックされます。
|