A Call Center Application for Twilio! Runa-CCA stands for "Rutoru's Network Laboratory - Call Center Application". This is the dedicated version for Twilio.
Runa-CCAは、Twilioを使った、やや本格的なコールセンターシステムです。PHPマイクロフレームワークSlimを使って、MVCを意識した作りになっています。以前作成したTwilio-MiniCCを大幅に作り替えました。
Twilio調査中というのと、プログラミング勉強中というのとで、いろいろといまいちです。バージョンアップしていきます。
最新はVersion 2.0。
簡易CRM機能として、顧客情報&応対履歴管理機能、ポップアップ機能を搭載しました。Twilioの仕様によりポップアップは手動(ボタン押下)になります。
バージョンについてはREADME最後の方で説明しています。
Twilio を使ったコールセンターシステムで、以下の機能を実装しています。
-
ソフトフォン
- Twilioソフトフォン
- ログイン認証(SystemAdmin,Supervisor,Operator権限)
- 発信・着信
- キューへの発信・着信待機(オペレータの所属するキューの一覧より発信可能)
- ミュート/ミュート解除(Version 1.2〜)
- DTMF送信用ダイヤルパッド(Version 1.2〜)
- 簡易CRM
- お客様情報ポップアップ(Version 2.0〜)
- お客様情報の検索・追加・変更(Version 2.0〜)
- 応対履歴登録(Version 2.0〜)
- Twilioソフトフォン
-
Webクライアント
- 管理機能
- ログイン認証(SystemAdmin,Supervisor,Operator権限)
- オペレータ管理(追加・一覧表示・削除・変更)
- キュー管理(追加・一覧表示・削除・変更)
- パスワード変更
- 簡易CRM
- お客様情報の検索・追加・変更・削除(Version 2.0〜)
- 応対履歴登録(Version 2.0〜)
- 管理機能
-
コールフロー
- 音声自動応答(IVR)
- 音声ガイダンス
- キューイング(待ち順番アナウンス付き)
- ヒストリカルレポート収集
-
レポート
- ウォールボード(オペレータの所属するキュー情報を表示)(Version 1.1〜)
お客様がある電話番号に電話をかけると、お問い合わせは1を、最新の製品情報をお聞きになりたい場合は2を押すように求められます。1を押したら、オペレータに接続します。オペレータ不在時はキューに入ります。お客様の待ちの順番をアナウンスした後、保留音が流れます。オペレータが準備でき次第、オペレータに接続します。2を押したら、製品情報ガイダンスが流れます。1,2以外が押されたら再度入力が求められます。10秒待っても何の入力も無い場合、あるいはお客様がPB信号を送ることができない場合は、オペレータにつなぎます。
以下の3カ所でヒストリカルレポートを収集します。 MySQLのテーブルに格納されます。レポートの参照は、MySQLの色々なツールで可能だと思います。データベース設計がまだ十分ではありません。
- お客様側キュー(Enqueue)から出た時 … お客様がキューから出る際の情報です。QueueResultを取得できるので、キューに入った後にお客様が電話を切った(放棄呼)の情報を取得することができます。コールセンターで放棄呼がどれだけ発生しているのかを把握することは極めて重要になります。データは
enqueue_data
テーブルに格納されます。 - オペレータ側キュー(Queue)から出た時 … オペレータが応答した際の情報です。データは
queue_data
テーブルに格納します。 - 通話終了時 ... 「StatusCallback」です。StatusCallbackは通話終了後に非同期で発生するリクエストで、通話に関する情報を収集しデータベースに書き込みを行うことができます。デフォルトはオフ。Twilioの設定画面から「電話番号」をクリックした後、 「Optional Voice Settings」をクリック。表示される「Status Callback URL」に作成したプログラムを設定する必要があります。データは
statuscallback_data
テーブルに格納されます。
今後記載。
プレリリース版です。
リリース版です。
- Webクライアントのキュー管理機能をTwilioと統合。Twilio REST APIを使用し、WebクライアントからTwilioのQueue追加・変更・削除が可能になりました。
- Webクライアントのオペレータ管理・キュー管理において、トランザクション管理を実装。TwilioのREST APIが動作しなかった場合にもDBロールバックを行うようにしました。
- Webクライアントの管理画面(Configurator)権限を以下の通りに整理しました。
- Operator ... 何も出来ない(自分のパスワード変更のみ)
- Supervisor ... オペレータ管理
- SystemAdmin ... キュー管理+オペレータ管理
- Twilioからリクエストされる部分について、Twilio推奨の認証(検証)方法を導入しました。
- 上記実現のため、ソースコードならびにDB構造の変更を行っています。
ウォールボード機能を追加しました。
- Webクライアントの管理画面(Configurator)からウォールボードを起動します。1.1ではログインユーザの所属するキューの情報をリアルタイムで表示します。10秒更新です。
- TwiML出力方法の変更。Webクライアント側と合わせてTwigを利用するようにしました。
- 不要ファイルの削除と、細かなバグ修正を実施。
ソフトフォンの機能追加を行いました。
-
ソフトフォン
- ミュート/ミュート解除、ダイヤルパッド(DTMF送信用)ボタンを追加。
- ボタンの表示・非表示を追加(通話設立前はHangUpボタン非表示等)。
- ソフトフォン小型化。
- ソフトフォン起動前に、オペレータが持っているキュー情報を更新する仕様に変更。
-
Webクライアント
- キューID(TwilioのFriendly Name)の空白を非許容に変更(CSSと相性悪いので)。a-Z0-9に加えて#_-を許容。
- キューを持っていないオペレータの表示がエラーになっていたので、エラーにならないように修正。
-
その他
- サンプルSQLのキュー作成部分を削除(Webクライアントからキューを作成してください)。
簡易CRM機能を追加しました。
-
簡易CRM
- お客様情報ポップアップ機能を追加。
- お客様情報の検索・追加・変更・削除機能を追加。
- 応対履歴登録機能を追加。
-
その他
- twilio.jsを1.2に変更。
- デザイン統一(シンプル化)。
Copyright © 2014 rutoru
Licensed under MIT license.
https://github.com/rutoru/Runa-CCA/blob/master/LICENSE