General_API
  1. 音声認識結果連携
General_API
  • コムデザインAPIドキュメント
    • 汎用API
      • サービス
      • 汎用API共通仕様
      • 汎用APIを利用開始までの流れ
      • 汎用APIドキュメント
        • 通話ステータス通知API
        • 通話履歴取得API
        • 待呼取得API
        • 音声認識結果一括取得API
        • 音声認識結果取得API
        • 音声認識結果一括送信API
        • 音声データ取得API
        • 使用回線数取得API
    • WebSocket(リアルタイム連携)
      • 音声データ連携
        • 音声データ連携ドキュメント
        • WebSocket切断方法
        • WebSocket 音声用API
        • WebSocket 制御用API
      • 音声認識結果連携
        • 音声認識結果連携ドキュメント
        • 音声認識メッセージ
        • 音声認識メッセージ形式
    • 変更履歴
  1. 音声認識結果連携

音声認識結果連携ドキュメント

はじめに#

音声認識結果をリアルタイムにコムデザインのサーバから取得する WebSocket API について説明します
コムデザインのサーバが WebSocket サーバになります
サーバ - サーバ間での接続は1つのみを想定しており、エージェント毎に接続するなど複数の接続はしないでください

メッセージ形式#

メッセージは、JSON 形式で、WebSocket のテキスト形式で送受信します
メッセージ種別は、Header.sType 又は msgType 項目で識別します
JSON の項目は固定ではなく将来的に増える事があるので、書かれていない項目は無視するようにして下さい
JSON の項目が増えた場合でも、対応出来る作りにして下さい

音声認識配信サーバへの接続方法#

1.
音声認識配信サーバとの接続は「WebSocket 接続 -> Logon メッセージ送信 -> LogonAck メッセージ受信」で確立されます
WebSocket で指定されたエンドポイントに接続します。
WebSocket エンドポイントはコムデザインから指定された値を設定して下さい
WebSocket 接続時のプロトコル指定オプションに "bcevtio" を指定して下さい。プロトコルを指定しないと接続出来ません
◇JavaScript 例
var ws = new WebSocket("wss://cdstevt01v.comdesign.co.jp:8309/v1/bcevtio", "bcevtio");
2.
サーバに接続出来たら、5 秒以内に "Logon" メッセージを送信します
3.
サーバからの "LogonAck" or "Error" メッセージが返されるのを待ちます
"LogonAck" メッセージ受信後に、音声認識メッセージが配信されて来るようになります
"Error" が返された場合は、WebSocket をクローズし終了します

Logon メッセージ#

sChannel には "Server:AsrResultV1:テナントID_*" を指定します
sAccessToken には、コムデザインから指定されたアクセストークンを設定します
{
  "Header": {
    "sType": "Logon",
    "sChannel": "Server:AsrResultV1:05012341234_*",
    "sAccessToken": "af2f7fd947385b74a27cf0e8fa1dd5c2",
    "bChannelWildCard": true
  }
}
◇JavaScript 例
function OnWebSocketOpen(evt)
{
const vLogon = {
    Header: {
        sType:          "Logon",
        sChannel:       "Server:AsrResultV1:" + [テナントID] + "_*",
        sAccessToken:   [アクセストークン],
        bChannelWildCard: true
    }
};
ws.send(JSON.stringify(vLogon));
// "LogonAck" or "Error" メッセージ待ちへ
}

LogonAck メッセージ#

LogonAck の項目は、メッセージ種別(Header.sType)以外は使用しないでください
Header.sType 以外の項目は、将来的に変更されたり削除される可能性があります
{
  "Header": {
    "sType": "LogonAck",
    "sServerName": "WORKPC",
    "nWebSocketPort": 8201,
    "nBindCpfMsgPort": 8200,
    "sClientAddr": "127.0.0.1",
    "nClientPort": 60389,
    "sChannel": "Server:AsrResultV1:05012341234_*"
  }
}

Error メッセージ#

sDescription にエラー情報が設定されます
{
  "Header": {
    "sType": "Error",
    "sDescription": "Invalid Header.sAccessToken"
  }
}
◇JavaScript 例
function OnWebSocketMessage(evt)
{
    const vMessage = JSON.parse(evt.data);
    if(vMessage.Header.sType === "LogonAck")
    {
        // 認識結果配信待ちへ
    }
    else if(vMessage.Header.sType === "Error")
    {
        const sErrorDescription = vMessage.Header.sDescription;
        ws.close(1000);
        // 終了処理へ
    }
}

WebSocket 切断方法#

LogonAck 以降に WebSocket を切断する時は、サーバから切断されるように、出来るだけ「Logoff メッセージ送信 -> WebSocket クローズ待ち -> WebSocket.Close」にしてください

Logoff メッセージ#

1.
Logoff メッセージを送信する
2.
サーバが Logoff メッセージを受信すると、サーバが WebSocket を閉じるので、クライアントは WebSocket が閉じられるのを待って下さい
{
  "Header": {
    "sType": "Logoff"
  }
}
◇JavaScript 例
function Close()
{
    ws.send('{"Header":{"sType":"Logoff"}}');
    // OnWebSocketClose() 待ちへ
}
function OnWebSocketClose(evt)
{
    ws.close(1000);
    // 終了処理へ
}
更新日時 2025-06-25 08:09:40
前へ
WebSocket 制御用API
次へ
音声認識メッセージ
Built with