利用者:Kei ef 2000

提供: VoIP-Info.jp
2009年1月14日 (水) 20:20時点におけるKei ef 2000 (トーク | 投稿記録)による版 (Asterisk SugarLookupとは)
移動先: 案内検索

Asterisk SugarLookup

Sugarlookup jp 01.jpg

Asterisk SugarLookupとは


「Asterisk SugarLookup」は、Asterisk(及びその派生)のAGIとして動作する、Perlで書かれたプログラムです。


■機能概要

※今のところ、AsteriskでキャッチしたCALLERIDをキーにして、全ての機能が動作する設計になっています。

・SugarCRMに登録されている電話番号を検索し、ヒットしたらその氏名をAsteriskにCALLERID(name)として、返す

・SugarCRMに登録されている電話番号の持ち主(取引先、取引先担当者)を捜し出し、着信記録をSugarCRMに自動的に残す

・SugarCRMに該当する電話番号が無い場合、「未登録(表現は自由に設定可)」からの着信として、自動的に記録する

※AsteriskにCALLERID(name)を返す場合、日本語にも対応していますが、文字コードはSugarCRM側DBに依存します。


■詳細

Asteriskに着信が有った際に、そのCallerID(発信者の電話番号)をキーに、SugarCRMに登録されている「取引先」

「取引先担当者」の名前を引き出し、Asterisk側にCALLERID(name)として渡す事で、各電話機やPCの画面上に、

掛かってきた電話の主の情報を表示させる事が出来ます。


また、Asteriskに着信が有ると、既にSugarCRMに登録された電話番号で有れば、その「取引先」もしくは「取引

先担当者」からの「インバウンド」コールとして、自動的にSugarCRMに記録させる事が出来ます。

新規顧客からの着信の場合、未登録者からの着信として、電話番号と共に「インバウンド」コールとして、自動

記録させる事も出来ます。

これによって、コールセンター含め、顧客からの問い合わせへの対応が漏れなく、かつ正確に対応する事が可能

になります。またこれらの情報を使って、より効果的な営業やサポート活動に繋がります。


※Asterisk、及びその派生(例:TrixboxCE,FreePBX)プロダクトで動作します

※SugarCRM、及びその派生(例:Info@Hand)プロダクトで動作します

Asterisk SugarLookup日本語版はUTF-8で書かれています)。

導入の為に必要なもの

■動作環境

▽IP-PBX側
正常に稼働しているAsterisk(Ver1.4.xxで動作確認済)
もしくはAGIが使えるAsteriskの派生プロダクト(例:TrixboxCE等)

▽SugarCRM側
英語、もしくは日本語版(日本語パッチでも可)のSugarCRM5.0もしくは5.1
※Asteriskと同じサーバー上に無くても使えるが、接続の為に必要なポートが空いている必要がある

※基本的に、上記が動くサーバーで有れば、OSやアーキテクチャには依存しない(筈。。。)


■上記以外で必要な物

▽Perl関連
Asterisk::AGI;
LWP::UserAgent;
DBI;
Time::Piece
Time::Piece::MySQL

もし無ければ、上記の各CPANモジュールをコマンドプロンプトからAsteriskの稼働しているサーバーにインストールして下さい

※インストール方法
例: install <モジュール名>


▽「Asterisk SugarLookup」本体
本家Sugar ForgeのProjectページから、英語もしくは日本語版のファイルをダウンロードして下さい。

Sugar Forge/Asterisk SugarLookupプロジェクトページへGO!
-> http://www.sugarforge.org/projects/sugarlookup/
※2009年1月2日現在、英語、日本語版共にVer1.1.0が最新

Asterisk側の準備

■「Asterisk SugarLookup」のインストール


1,ダウンロードした「AsteriskSugarLookup(sugarlookup_xxx.agi)」を、AsteriskのAGIディレクトリにコピー、もしくは移動する

例:
cp sugarlookup_xxx.agi /var/lib/asterisk/agi-bin/


<p>2,sugarlookup_xxx.agiをsugarlookup.agiにリネームし、オーナーとグループをasteriskを実行しているユーザ名及びグループ名に変更する

例:
mv sugarlookup_xxx.agi sugarlookup.agi
chown asterisk sugarlookup.agi
chgrp asterisk sugarlookup.agi


3,sugarlookup.agiに実行権限を付与する

例:
chmod +x sugarlookup.agi


4,Asteriskの任意のダイヤルプランに、着信時にsugarlookup.agiを呼び出す様設定を追加する

例:Asteriskの場合
exten => s,1,NoOp(Sugarlookup started)
exten => s,n,AGI(sugarlookup.agi)
exten => s,n,NoOp(Sugarlookup end)
exten => s,n,Set(CALLERID(name)=${NAME}) ;AsteriskにCALLERID(name)を返す場合には、 着信のコンテクストにこの1行を追加して下さい(ver1.1.0の新機能)

例:FreePBX/TrixboxCEの場合
/etc/asterisk/extensions_custom.confに、以下を加える

[custom-sugarlookup]
exten => s,1,NoOp(Sugarlookup started)
exten => s,n,AGI(sugarlookup.agi)
exten => s,n,Set(CALLERID(name)=${NAME}) ;FreePBX/TrixboxCEにCALLERID(name)を返す 場合には、着信のコンテクストにこの1行を追加して下さい(Ver1.1.0の新機能)。
exten => s,n,goto(ここに着信させるダイヤルプランのコンテクストを指定する,1,1)


次に「Asterisk SugaLookup」を動作させたいインバウンドルートのDestinationに、先ほど作成した専用のコンテクスト[custom-sugarlookup]を指定します
※私は、カスタムDistinationで、以下を指定して作成しました

custom-sugarlookup,s,1


以上で、Asterisk側の準備は完了です。

Sugar CRM側の準備

■SugarCRM上での準備

・電話番号未登録者からの着信時にもコールを自動記録したい場合、「取引先」に専用の取引先を作成します

例:
「未登録者」や「新規顧客」等、任意の名称

※未登録者からの着信も記録するか否かは、sugarlookup.agiの設定にて、切り替える事ができます


■データベース(MySQL)の管理者権限、及び環境を確認する

※sugarlookup.agiの設定で使います


・SugarCRM(MySQL)の設置されたサーバーのIPアドレス

※標準のポート以外を利用している場合には、ポート番号も必要)

・SugarCRMのデータベース名

・SugarCRMデータベースのユーザー名

・SugarCRMデータベースのパスワード

・SugarCRMの管理者ID(sugar_admin_id)

※通常は、"1"

・上記で作成した未登録者からの着信時に割り当てる取引先のID(account_id)

※sugar_admin_idやaccount_idは、phpmyadmin等で調べると、便利です


「Asterisk SugarLookup」の設定

※Asterisk SugarLookupの設定は、直接sugarlookup.agiファイルをviなどエディターで編集してください

次期バージョンでは、設定ファイルと実行ファイルが分割される予定です


■設定項目

※Ver1.1.0_jpでは、48~66行目  

・$sugarlookup_active = "1";# SugarLookupの有効="1",無効="0"

・$lookup_account_only = "0";# "1"にすると電話番号を「取引先」からのみ検索します。
"0"の場合は、始めに「取引先担当者」を検索し、なければ「取引先」も検索します

・$database_hostname = "127.0.0.1";# MySQLサーバーのIPアドレス。
標準のポート以外を使用している場合には、"127.0.0.1;port=8080"の様にする

・$database_name = "sugarcrm";# MySQLサーバーに設定したSugarCRMのデータベース名

・$database_user = "sugar_admin_username";# SugarCRMデータベースのユーザー名 

・$database_password ="sugar_admin_password";# SugarCRMデータベースのパスワード

・$autocall_txt = "自動着信記録 電話:";# SugarCRMに記録される件名

・$sugar_admin_id = "1";# SugarCRMの管理者のid。通常は"1"

・$log_unknown_callers = "1";# 未登録者からの着信もSugarCRMに記録するかどうか(1=はい,0=いいえ)

・$sugar_account_id_missing_callerid = "be881b77-0946-11f6-66ca-492ae96d135c";# SugarCRM上で
未登録者用の専用「取引先」を作成し、そのaccount_idをphpmyadmin等で調べて、その値に変更して下さい

・$unknown_caller_autocall_txt = "未登録者からの自動着信記録 電話:";# 未登録者からの電話着信
の場合に記録される件名で、行末にそのCallerIDが自動付加されます

・$description = "Asteriskによる自動着信記録";# 「コール」に記録される注釈

・$set_callerid_to_asterisk = "1"; # AsteriskへCALLERID(name)を返す機能を有効にするには"1"を
セットし、"0"で無効(SugarCRMへの記録のみ)となります。

Asterisk SugarLookupと今後について


■ホームページ(SugarForge)

http://www.sugarforge.org/projects/sugarlookup/


■開発陣営

Terje Christensen

ふかうみ けんいち<kenichiアットマークkula.co.jp>


■今後について

▽次期バージョンで搭載する予定の機能


Ver1.1.x

・Asterisk側へのCALLERID(name)を返すか否かの切り替え機能 ->完了

・設定ファイルと実行ファイルの分割

・インストール及び初期設定スクリプトの搭載

・SugarCRMに登録された電話番号に"-","(",")"及びスペースが含まれていた場合でも、正しくCallerIDを引っ張ってくる機能 ->完了


Ver2.x

・通話終了後、通話時間、対応した担当者、ステータスをSugarCRM側に記録

・通話を転送した場合にも、上記情報と転送先等が記録される

・ドキュメントファイルをリリースファイルに添付


その他

・ヴォイスメールが録音された場合、SugarCRM上からそのファイルを再生できる

・着信時にSugarCRM上に、該当する取引先をポップアップさせる

・ポップアップしたメニューから、アポイントやメモ、ミーティングを作成できる

・クリックtoコール

・AsteriskとSugarCRMのワンパッケージソリューション


▽今後の予定

・Ver1.1.0のバグフィックス

・Ver2のリリース(時期は気まぐれ?)