ダウンロードアドレス

distディレクトリには、すでにコンパイルおよび圧縮されたコードが含まれており、直接あなたのプロジェクトで使用できます。 私のコードを変更した場合は、まずコンパイルする必要があります。コンパイル方法はこちらにあります。

!!!注意:通話コンポーネントとUdeskシステムは、同時に1箇所にしか存在できません。一方でログインすると、もう一方は強制的にログアウトされます。

!!!注意:通話コンポーネント2.0バージョンでは、独立したAPIファイルが新たに追加されました。使用方法はコンポーネントと基本的に同じで、説明はドキュメントの最下部にあります。

図例

直接使用

1、distディレクトリの内容をあなた自身のプロジェクトに導入し、fontsディレクトリをあなたのプロジェクトの静的リソースディレクトリにコピーします。

<!--  cssを導入-->
<link rel="stylesheet" type="text/css" href="./css/callcenter-component.css">
<!--  jsを導入-->
<script src='./callcenter-component.js'></script>

2、コンポーネントを初期化する

まずagent_api_tokenを取得してください。取得方法

<script>
var callComponent = new UdeskCallcenterComponent({
    container: document.body,    //コンポーネントのコンテナ
    token: 'xxxxxxxx',           //ログインインターフェースから取得したカスタマーサポートトークン(agent_api_token)
    subDomain: 'demo',          //Udeskに登録したサブドメイン。例:ログインアドレスがdemo.udesk.cnの場合、ここにはdemoと入力します。
    showManualScreenPop:true,    //「手動スクリーンポップ」機能を有効にするかどうか
    onScreenPop: function(conversation){},  //スクリーンポップイベントをトリガーするメソッド
    onHangup: function(conversation){}
});
</script>

オプション

属性名 必須 デフォルト 説明
container Document はい 通話コンポーネントのコンテナ
token String はい カスタマーサポートトークン(agent_api_token)、取得方法
subDomain String はい Udeskに登録したサブドメイン。例:ログインアドレスがdemo.udesk.cnの場合、subDomainはdemoです。
showManualScreenPop String いいえ false 手動スクリーンポップ機能を有効にするかどうか
onScreenPop(conversation) function いいえ スクリーンポップイベント
onRinging(conversation) function いいえ 着信イベント。電話機が着信したときにトリガーされます。
onTalking(conversation) function いいえ 通話イベント。通話が接続されたときにトリガーされます。
onHangup(conversation) function いいえ 通話終了イベント。通話が終了したときにトリガーされます。
onWorkStatusChange(status) function いいえ カスタマーサポートのステータスが変更されたときにトリガーされます。
onWorkWayChange(way) function いいえ カスタマーサポートのオンライン方式が変更されたときにトリガーされます。
onDropCall(result) function いいえ 通話コンポーネントの通話終了ボタンをクリックした後のコールバック関数
onInitSuccess() function いいえ 初期化データの取得が成功したときにトリガーされます。
onInitFailure() function いいえ 初期化データの取得が失敗したときにトリガーされます。
onTokenExpired(callback:(newToken:string)=>void) function いいえ トークンが失効したときにトリガーされます。パラメータはコールバックメソッドで、このコールバックメソッドを呼び出してトークンを更新します。
onIvrCallResult(result:{code:number}) function いいえ IVR転送結果。codeが1000の場合は成功です。
onResumeAgentResult(result:{code:number}) function いいえ IVRからの復帰結果。codeが1000の場合は成功です。

メソッド

makeCall(number, options)

電話を発信します

number string -(必須)電話番号

options object
このパラメータはオブジェクトであり、以下のパラメータを渡すことができます

options.biz_id string
このフィールドはお客様が指定する任意の文字列です。通話イベントプッシュ時にこのidが付与されます

answer()

着信時に、このインターフェースを呼び出して電話に応答します。
オンライン状態がウェブ電話の場合のみ有効です

destroy()

通話コンポーネントを破棄します

setWorkStatus(status)

カスタマーサポートのオンライン状態(空き、ビジー、整理中、オフライン、休憩など)を設定します。

status String - カスタマーサポートの状態。idle、busy、resting、offlineのみ指定可能です

setWorkingWay(workingWay)

カスタマーサポートのオンライン方式(IP電話、携帯電話、ウェブ電話)を設定します。

workingWay String - カスタマーサポートのオンライン状態。fixed_voip_online、phone_online、voip_onlineのいずれかのみ指定可能です

setupDefaultNumber(number_id,success_callback,failure_callback)

新しい中継番号を設定します

number_id number 中継番号id
success_callback function リクエスト成功時のコールバック
failure_callback function リクエスト失敗時のコールバック

hangup(success_callback, failure_callback)

現在の通話を切断します。パラメータは成功と失敗のコールバックです。success_callbackはリクエスト送信成功のみを示し、実際の切断成功はonDropCallイベントを基準とします。

success_callback function リクエスト成功時のコールバック
failure_callback function リクエスト失敗時のコールバック

getCallNumbers()

中継番号リストを返します。{id: number, number: string, name: string, memo: string}[]

属性名 説明
id 中継番号id
number 電話番号
name 名称
memo 備考

getAutomaticCallNumGroup()

自動発信タスクの顧客電話グループを返します。着信音が鳴り、かつ自動発信の場合のみ、この顧客のデータを取得できます。例:{ ad_task_id:1,customer_id:2,numbers:["18812345678", "18712345678"]}

注: 着信音が鳴り、かつ自動発信タスクの場合のみデータが保存されます。それ以外の場合、このフィールドは空です。詳細は以下の通りです:

属性名 説明
ad_task_id タスクid
customer_id 顧客id
numbers ["18812345678", "18712345678"] # 番号/番号グループ}

startIvrCalling(ivrNode:{transfer_mode:"agent_hold"|"agent_hangup",id:string})

IVRに転送します。パラメータはivrIdです

holdCallSelect(successCallback:()=>void, failureCallback:()=>void)

通話を保留する

recoveryCallSelect(successCallback:()=>void, failureCallback:()=>void)

通話を再開する

transferToGroup(groupId:number|string, successCallback:(res)=>void, failureCallback:(res)=>void)

サポートグループに転送する

successCallbackはリクエストが成功したことのみを示し、実際の転送成功はonTransferResultで取得する必要があります

transferToExternalPhone(phoneNumber:string, successCallback:(res)=>void,failureCallback:(res)=>void)

外線に転送する

successCallbackはリクエストが成功したことのみを示し、実際の転送成功はonTransferResultで取得する必要があります

startConsultingToExternalPhone(phoneNumber:string, successCallback:(res)=>void,failureCallback:(res)=>void)

外線に相談する

successCallbackはリクエストが成功したことのみを示し、実際の相談成功はonConsultResultで取得する必要があります

startThreeWayCallingToExternalPhone(phoneNumber: string, successCallback:(res)=>void, failureCallback:(res)=>void)

外線で三者通話を行う

successCallbackはリクエストが成功したことのみを示し、実際の三者通話成功はonThreeWayCallingResultで取得する必要があります

transferAfterConsult(agentId: string)

相談後に転送する

agentId: サポート担当者ID

threeWayCallingAfterConsult(agentId: string)

相談後に三者通話を行う

agentId: サポート担当者ID

transferAfterThreeWayCalling(agentId: string)

三者通話後に転送する

agentId: サポート担当者ID

setupDefaultNumber(phoneNumberId: string|number, successCallback:(res)=>void, failureCallback:(res)=>void)

発信時の発信者番号を設定する。最初のパラメータは中継番号IDです

getCallNumbers():Object[]

選択可能な中継番号を取得する

conversationオブジェクト

ポップアップイベントにはconversationオブジェクトが渡され、このオブジェクトには以下のパラメータが含まれています

属性名 説明
call_id call_id
conversation_id 通話記録ID
call_type 通話タイプ。以下のいずれかの値のみ可能:着信、発信、着信(転送)、着信(三者通話)、着信(相談)、着信(強制割り込み)、着信(モニタリング)、着信(強制切断)
customer_phone_number 顧客番号
customer_phone_location 番号の地域
queue_name 元のキュー
queue_overflow オーバーフローキュー
queue_status キュー状態
queue_time キュー待機時間(秒)
agent_id サポート担当者ID
agent_name サポート担当者名
agent_email サポート担当者メールアドレス
ring_time 呼び出し開始時間。例:2017-03-09T14:34:24+08:00
ivr_variables インテリジェントルーティングで保存された変数。形式:变量名1:[变量值1][,变量名2:[变量值2]...]。例:"x:1,y:2,aa:1,bb:2,cc:,变量2:2"
display_name 中継番号
device_info サポート担当者のオンライン方法
category 通話タイプ。consult(相談)、consult_outline(外線相談)、three_party(三者通話)、three_party_outline(外線三者通話)、listening(モニタリング)、barge_in(強制割り込み)、whisper(ささやき)、transfer(転送)、transfer_outline(外線転送)、substitute(インターセプト)、transfer_after_consult(相談後転送)、three_party_after_consult(相談後三者通話)、transfer_after_three_party(三者通話後転送)、requeue(キュー再投入)
dtmf dtmf
multi_ring_count 順次呼び出し回数
relevant_agent 関連するサポート担当者

通話API

1、distディレクトリのcall-api.jsをプロジェクトにインポート

<!--  jsを導入-->
<script src="./js/call-api.js"></script>

2、使用前にtokenを初期化する必要があります

まずagent_api_tokenを取得してください。取得方法

<script>
window.callAPI.tokenInit(
        '88354be49e4aa632bdbfb8a60bcae04ec157fad4b4fa554daebae3de1d7bc8de9cc80e9f3c39174cb45d3c3ab52fdcfdaf1216ff2dedc11aa13a1b14e89819065a547cf2',
        'linapp',
        function(callback) {
            setTimeout(function() {
                callback('f3ebff04e6cf899cac39da98bcb1ccdd77e9c8ccd94fa70419668c4bb6510b5fe277cb786662b4c6173706fa2915e9184619f42b766f76226f043693cca1dbdf5a2e1d49');
            }, 1000);
        }
    )
</script>

tokenInit初期化パラメータ

方法

tokenInit(token,subDomain,onTokenExpired)

APIにtokenとsubDomainを初期化します 注: APIを呼び出す前にtokenを初期化する必要があります

パラメータ説明

属性名 必須 説明
token String はい サポートエージェントtoken、 取得方法
subDomain String はい Udeskに登録したサブドメイン、例えばログインアドレスがdemo.udesk.cnの場合、subDomainはdemoです
onTokenExpired(result) function いいえ tokenが失効した時のコールバック関数

setMonitorWorkStatus(agent_no,workStatus,successCallback,failureCallback)

他のサポートエージェントのオンライン状態を切り替えます 例: 空き 忙しい オフライン 休憩など カスタム休憩は別のメソッドを参照してください

setMonitorWorkRestingStatus(agent_no,cc_custom_state_id,successCallback,failureCallback)

他のサポートエージェントのカスタム休憩状態を切り替えます、空き 忙しい オフライン 休憩などを切り替える必要がある場合は別のメソッドを参照してください

setMonitorAgentWorkWay(agent_no, agent_work_way,successCallback,failureCallback)

他のサポートエージェントのデバイスを切り替えます、例: IP電話 携帯電話 ウェブ電話

monitorAgentListeing(agent_no,successCallback,failureCallback)

他のサポートエージェントに対してリスニング操作を行います

monitorAgentInterpose(agent_no,successCallback,failureCallback)

他のサポートエージェントに対して強制介入操作を行います

monitorAgentSubstitute(agent_no,successCallback,failureCallback)

他のカスタマーサポートをインターセプト操作します

パラメータ説明

属性名 必須 説明
agent_no number はい カスタマーサポートID
workStatus String はい カスタマーサポートの状態。指定可能な値は以下のみ:idle、busy、resting、offline
cc_custom_state_id number はい カスタム休憩状態のID
agent_work_way string はい デバイス状態。指定可能な値は以下のみ:fixed_voip_online、phone_online、voip_online
successCallback function いいえ リクエスト成功時のコールバック関数
failureCallback function いいえ リクエスト失敗時のコールバック関数

ブラウザ対応状況

IE firefox chrome safari opera
10 11 16 6 12.10

ビルド方法

1、nodejsのインストール

ダウンロードしてインストール

2、webpackのインストール

プロジェクトはwebpackでパッケージ化されています。事前にwebpackをインストールする必要があります。

npm install -g webpack

3、依存関係のダウンロード

プロジェクトディレクトリに移動し、以下のコマンドを実行します。

npm install

4、コンパイル、パッケージ化、圧縮

webpack