アスタリスクに関するオペレーターの作業の評価

こんにちは、%habrauser%



数日前、オンラインストアの部門長が私に頼りました。 すべての大規模なオンラインストアと同様、Elastixに基づいて構築された独自のコールセンターがあります。 彼は、Elastixでオペレーターを評価する可能性を作成するタスクに直面しました。



チャレンジ:



アスタリスク(elastix)の追加モジュールを追加する必要があります。



ホットラインを機能させるには、統計情報を収集する音声メニューが必要です。

質問:「ホットラインの専門家はあなたを助けましたか?」

回答オプション:いいえ-ボタン「0」およびはい-ボタン「1」



解決策





オペレーターと話をした後、クライアントはIVRに入り、そこで投票できるようになりましたが、さらに引き寄せられ、この問題を次のように解決しました。



1)mysql dbのクッキング:

デフォルトでは、アスタリスクはCDRをアスタリスクcdrdbデータベースに書き込みます。追加の統計のために、新しいテーブルをそこに追加します。



DROP TABLE IF EXISTS `opinion`; CREATE TABLE IF NOT EXISTS `opinion` ( `id` int(11) NOT NULL auto_increment, `callerid` varchar(15) NOT NULL default '', `exten` varchar(15) NOT NULL default '', `queues` varchar(7) NOT NULL, `opinion` char(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
      
      







2)マクロを調理する

/etc/asterisk/extensions_custom.confに以下を追加します。



 [macro-press-1] exten => s,1,MYSQL(Connect connid localhost _ _ asteriskcdrdb) exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO opinion (`id`, `callerid`, `exten`, `queues`, `opinion`) VALUES (NULL, ${FROMEXTEN}, ${CDR(dst)}, ${CDR(src)}, 1)) exten => s,n,MYSQL(Clear ${resultid}) exten => s,n,MYSQL(Disconnect ${connid}) [macro-press-0] exten => s,1,MYSQL(Connect connid localhost _ _ asteriskcdrdb) exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO opinion (`id`, `callerid`, `exten`, `queues`, `opinion`) VALUES (NULL, ${FROMEXTEN}, ${CDR(dst)}, ${CDR(src)}, 0)) exten => s,n,MYSQL(Clear ${resultid}) exten => s,n,MYSQL(Disconnect ${connid})
      
      







asteriskcdrdbデータベースのユーザーとパスワードは、通常/etc/asterisk/cdr_mysql.confファイルにあります



3)機能アプリケーションの追加

features_applicationmap_custom.confに必要な数値を追加し、マクロの実行にバインドします



 press1 => 1,peer/caller,Macro,press-1 press0 => 0,peer/caller,Macro,press-0
      
      







機能アプリケーションが機能するには、dialpalのグローバル変数にも追加する必要があります。

/etc/asterisk/extensions_override_freepbx.confに追加



 [globals] DYNAMIC_FEATURES = apprecord#press0#press1
      
      







通常、apprecordはFreepbxですでに使用されているため、そのままにしておきます。



結果





オペレーターとの会話の時点で、クライアントは0または1を押して評価する機会があります



成功した評価ログ:

  -- Feature Found: press1 exten: press1 -- Executing [s@macro-press-1:1] MYSQL("Local/299@from-queue-56b8;1", "Connect connid localhost root 123 asteriskcdrdb") in new stack -- Executing [s@macro-press-1:2] MYSQL("Local/299@from-queue-56b8;1", "Query resultid 1 INSERT INTO opinion (`id`, `callerid`, `exten`, `queues`, `opinion`) VALUES (NULL, +74993462198, 299, 1234, 1)") in new stack
      
      







データベースにあるものを見て



 mysql> SELECT * FROM opinion; +----+-------------+-------+--------+---------+ | id | callerid | exten | queues | opinion | +----+-------------+-------+--------+---------+ | 8 | 74993462198 | 299 | 1234 | 1 | | 9 | 74993462198 | 299 | 1234 | 1 | +----+-------------+-------+--------+---------+ 2 rows in set (0.00 sec)
      
      







更新:





オペレーターが電話を切った後でも、評価のためにIVRを固定できます。



キューの設定はWEBインターフェースで行う必要があります。FreePbxバージョンでメンバーがLOCAL / 999 @ advice-ivr / nを指定できる場合、最初の項目をスキップできます。そうでない場合は、メンバーをWebに追加しないで、queues_post_custom.confに追加します



 member=Local/299@opinion-ivr/n member=Local/999@opinion-ivr/n
      
      







extensions_custom.conf内



 [opinion-ivr] exten => _.,1,NoOp(Statrt IVR) exten => _.,n,DIAL(SIP/${EXTEN},,trg) ; g       exten => _.,n,Goto(opinion,,1) [opinion] exten => _X.,1,NoOp(Statrt IVR) exten => _X.,n,Background(Plese_press_0_or_1,m) ;      exten => _X.,n,Set(TIMEOUT(absolute)=2) exten => 0,1,MYSQL(Connect connid localhost root 123 asteriskcdrdb) exten => 0,n,MYSQL(Query resultid ${connid} INSERT INTO opinion (`id`, `callerid`, `exten`, `queues`, `opinion`) VALUES (NULL, ${FROMEXTEN}, ${DIALEDPEERNUMBER}, ${NODEST}, 0)) exten => 0,n,MYSQL(Disconnect ${connid}) exten => 1,1,MYSQL(Connect connid localhost root 123 asteriskcdrdb) exten => 1,n,MYSQL(Query resultid ${connid} INSERT INTO opinion (`id`, `callerid`, `exten`, `queues`, `opinion`) VALUES (NULL, ${FROMEXTEN}, ${DIALEDPEERNUMBER}, ${NODEST}, 1)) exten => 1,n,MYSQL(Disconnect ${connid})
      
      







すべての肯定的な評価!!!



All Articles