利用者:Kei ef 2000

2008年12月10日 (水) 00:51時点における114.149.88.69 (トーク)による版 (Asterisk側の準備)

Asterisk SugarLookup

導入の為に必要なもの

■動作環境

▽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/
※2008年12月10日現在、英語、日本語版共にVer1.0.2が最新

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)

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

[custom-sugarlookup]
exten => s,1,NoOp(Sugarlookup started)
exten => s,2,AGI(sugarlookup.agi)
exten => s,3,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.0.2_jpでは、48~61行目  

・$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による自動着信記録";# 「コール」に記録される注釈


Asterisk SugarLookupと今後について


■ホームページ(SugarForge)

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


■開発陣営

Terje Christensen

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


■今後について

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


Ver1.1

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

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

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

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


Ver2.x

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

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

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


その他

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

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

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

・クリックtoコール

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


▽今後の予定

・Ver1.1のリリース(年内)

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