1. เป้าหมาย
เป้าหมายในการเชื่อมต่อ vtiger CRM เข้ากับ Elastix คือ สามารถทำ click-to-call จากหน้าเว็บ
ของ vtiger CRM ได้ และมี balloon pop-up บนหน้าเว็บ vtiger CRM เมื่อมี incoming call เข้ามา
ขั้นตอนแรก มาดู diagram กันก่อน
- IP ของ vtiger CRM คือ 192.168.1.240
- IP ของ Elastix คือ 192.168.1.100
- IP Phones หมายเลข 201, 202, 203 register กับ Elastix
- Elastix มี SIP trunk ชื่อ myvoip สำหรับเชื่อมต่อไปภายนอกองค์กรผ่าน router/firewall/SBC
2. คอนฟิก vtiger CRM
ล็อกอินเข้าหน้าเว็บ vtiger CRM
คลิกรูปฟันเฟืองตรงมุมบนขวา เลือก CRM Settings → Integration → PBXManager
Edit Asterisk Server Details ดังรูป
แล้วคลิกไปที่ My Preferences
ในหัวข้อ More Information ให้ใส่ CRM Phone Extension = 201 (หรือหมายเลขอื่นๆ ของ Elastix ที่เราใช้งาน)
3. คอนฟิก Elastix
3.1 ติดตั้ง java 1.7
#yum install java-1.7.0-openjdk.x86_64
3.2 ติดตั้ง VtigerAsteriskConnector
#cd /
#wget https://www.vtiger.com/products/apps/VtigerAsteriskConnector/VtigerAsteriskConnector-1.4.zip
#unzip VtigerAsteriskConnector-1.4.zip
3.3 edit ไฟล์ /VtigerAsteriskConnector/conf/VtigerAsteriskConnectors.properties ดังนี้
=======================================
// Location where the application server will be running
ServerIP = 192.168.1.100
ServerPort = 8484
// Call Recordings storage path
StorageDir = /VtigerAsteriskConnector/recording
// Enable(true) or Disable(false) call recordings
Recording = true
// Location where the applications database files will be stored
AsteriskAppDBPath = /VtigerAsteriskConnector/recording
// Asterisk Server Details
AsteriskServerPublicIP = 192.168.1.100
AsteriskServerIP = 192.168.1.100
AsteriskServerPort = 5038
AsteriskUsername = admin
AsteriskPassword = myippbx
// Vtiger CRM URL
VtigerURL = http://192.168.1.240/vtigercrm
VtigerSecretKey = 465590920562139fd2f5c1
//Enable(true) or Disable(false) Asterisk Events and Database Logs in Connector
AsteriskLog = true
DatabaseLog = true
==========================================================
VtigerSecretKey นำมาจาก PBXManager ของ vtiger CRM ในข้อ 1
3.4 edit ไฟล์ /etc/rc.local โดยเพิ่ม 2 บรรทัดนี้เข้าไป
# start VtigerAsteriskConnector at boot time
/VtigerAsteriskConnector/bin/start.sh
3.5 edit ไฟล์ /etc/asterisk/manager.conf ดังนี้
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
displayconnects=no ;only effects 1.6+
[admin]
secret = myippbx
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
permit=192.168.1.240/255.255.255.0
read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
writetimeout = 5000
#include manager_additional.conf
#include manager_custom.conf
3.6 edit ไฟล์ /etc/asterisk/cdr_manager.conf ดังนี้
[general]
enabled = yes
3.7 สร้าง directory สำหรับเก็บไฟล์เสียง
#mkdir /VtigerAsteriskConnector/recording
#chown asterisk.asterisk /VtigerAsteriskConnector/recording
3.8 start connector
#/VtigerAsteriskConnector/bin/start.sh
3.9 เพิ่ม vtiger_inbound, vtiger_outbound contexts ในไฟล์ /etc/asterisk/extensions_custom.conf
[vtiger_outbound]
exten => _X.,1,Agi(agi://192.168.1.100/incoming.agi)
[vtiger_inbound]
exten => _X.,1,Agi(agi://192.168.1.100/incoming.agi)
3.10 เพิ่ม contacts และ เบอร์โทรศัพท์ ใน vtiger CRM แล้วลอง click-to-call ได้เลย :)