整合 VtigerCRM 與 Asterisk

    簡介

    Vtiger CRM 整合與 Asterisk

    目的

    • 當 Asterisk 有來電時,VtigerCRM 會跳出視窗顯示客戶的資料。
    • 客服人員(Agent) 可以直接點選 VtigerCRM > Leads 的電話號碼,進行電話撥號。
       

    系統環境

    • PIAF 1.7.5.5
    • Asterisk 1.6.2.17
    • CentOS 5.5
    • VtigerCRM 5.2/5.3/5.4
    • 也適用 VtigerCRM 5.3+Asterisk 1.8

    VtigerCRM 5.2

    官方連結:

    注意:如果要安裝 VtigerCRM 5.3,必須有 PHP 5.2.x 以上版本。

    安裝套件

    相依性其他套件

    yum install libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel xfree Xfree86-dev openssl openssl-devel kbr5 kbr5-devel make zlib krb5-devel binutils automake gcc flex autoconf bison libxml2-devel gcc-c++ perl-XML-LibXML
    

     

    cd /usr/src
    wget https://sourceforge.net/projects/vtigercrm/files/vtiger%20CRM%205.2.0/Core%20Product/vtigercrm-5.2.0.tar.gz/download
    tar xzf vtigercrm-5.2.0.tar.gz

    假設 VtigerCRM 的網頁目錄是 /var/www/html/vtigercrm

    mv vtigercrm /var/www/html 
    
    設定 VtigerCRM

    設定權限

    chmod -R a+rw /var/www/html/vtigercrm/
    chown -R asterisk:asterisk /var/www/html/vtigercrm/ 
    

    設定 PHP 的建議參數

    cd /var/www/html/vtigercrm
    mv htaccess.txt .htaccess
    vi .htaccess 
    

    .htaccess :

    Options -Indexes
    php_value max_execution_time 600
    php_flag display_errors on
    php_flag allow_call_time_pass_reference on
    php_flag log_errors off
    php_value error_reporting "2 8 8192"
    

    新增一個 Apache 設定檔
    /etc/httpd/conf.d/vtigercrm.conf(Ubuntu:/etc/apache2/conf.d)

    <Directory "/var/www/html/vtigercrm">
      Options Indexes FollowSymLinks
      AllowOverride Options
      Order allow,deny
      Allow from all
    </Directory>
    

    Tips:

    * 目錄路徑 /var/www/html/vtigercrm 必需正確。

    * 如果不使用分開的 Apache 設定檔,會影響到 FreePBX 的運用。

    重啟 Apache 服務

    使用瀏覽器,輸入 123.123.123.123/vtigercrm,以介面方式來安裝。
    選擇 Install > Agree > PHP 建議參數偵測

    註:如果有出現紅字,必須先作修正,IMAP Support 必須有安裝 Webmail 模組。

    Next >
    Database Information

    HostName = localhost
    UserName = db_user
    Password = db_pass
    DatabaseName = db_name
    [*] Create Database 如果尚未建立料庫,這要勾選,且必須在下方輸入 root 帳號密碼

    CRM Configuration

    URL = 首頁網址
    Currnecy Name = 幣別

    User Configuration

    Password = 管理密碼
    Email = 管理者信箱

    確認所有設定 > Next > 選擇所有模組 > Next >

    系統開始安裝

    Finish

    電話整合的設定

    1. 設定 Asterisk 連結
      Vtiger Admin > Settings > Module Manager > PBX Manager Settings
      Asterisk Server IP = localhost
      Asterisk Server Port = 5038
      Asterisk Username = vtigercrm
      Asterisk Password = THISisPASS
      Asterisk Version = 這裡無法選擇,請直接修改資料庫 vtigercrm520.vtiger_asterisk。
    2. 為 admin 設定一個分機號碼
      Vtiger Admin > Settings > Users > Edit
      Asterisk Extension = 分機號
      Receive Incoming Calls = [勾選]
       

    設定有電話來電時,可以跳出訊息視窗

    下載 AsteriskClient.php for Vtiger 5.2.0

    cp 520AsteriskClient.php /var/www/html/vtigercrm/cron/modules/PBXManager/
    chown asterisk:asterisk /var/www/html/vtigercrm/cron/modules/PBXManager/520AsteriskClient.php
    chmod 0755 /var/www/html/vtigercrm/cron/modules/PBXManager/520AsteriskClient.php

    測試 520AsteriskClient.php

    cd /var/www/html/vtigercrm/cron/modules/PBXManager/
    php 520AsteriskClient.php

    正常應該要出現:

    Connecting to asterisk server @ 2011-08-01 09:57:21
    Connected successfully

    Trying to login to asterisk
    Logged in successfully to asterisk server

    設定這個程序保持運行中
    新增一個啟動的 PHP 檔 或 BASH

    PHP: /var/www/html/vtigercrm/cron/modules/PBXManager/cron-inbound-popup.php

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)

    BASH: /var/www/html/vtigercrm/cron/modules/PBXManager/cron-inbound-popup.sh

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)

    Cron Job:

    # for VtigerCRM
    */5 * * * * /usr/bin/php /var/www/html/vtigercrm/cron/modules/PBXManager/cron-inbound-popup.php&
    or
    */5 * * * * bash /var/www/html/vtigercrm/cron/modules/PBXManager/cron-inbound-popup.sh 

    設定網頁撥號

    編輯 /var/www/html/vtigercrm/modules/PBXManager/utils/AsteriskClass.php

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)

    Tips:

    from-internal 是在 Asterisk 用來撥出的 context。

    Asterisk

    新增 Vtiger 的 AMI 連接
    編輯 /etc/asterisk/manger.conf,增加以下內容。 (使用 FreePBX 者,請改成 manager_custom.conf)

    [vtigercrm]
    secret = THISisPASS
    deny = 0.0.0.0/0.0.0.0
    permit = 127.0.0.1/255.255.255.0
    read = system,call,log,verbose,command,agent,user write=system,call,log,verbose,command,agent,user
    

    重啟 Asterisk

    VtigerCRM 測試

    進線來電測試

    1. 確定 520AsteriskClient.php 有在執行中。
    2. VtigerCRM Admin > My Preferences > Edit >
      Asterisk Extension = 輸入分機號
      Receive Incoming Calls = [勾選]
    3. 使電話撥入 Asterisk,然後轉接到剛剛設定的分機號。
    4. 在 VtigerCRM 網頁右下角會顯示來電號碼,如果符合 Leads 的客戶資料,也會顯示客戶名稱。

    Tips:

    * 不支援 Queue,請注意。

    網頁撥號測試

    • 確定分機已經註冊中,且正常待機。
    • 登入 VtigerCRM > SALES > Leads
      選擇一個要聯絡的客戶,點選 Phone 的電話號碼
    • VtigerCRM 右下角會顯示撥號的訊息
    • 目前帳號的分機號會接收到來電,接起後,系統會自動撥到客戶的電話號碼。

    Tips:

    * Leads 的電話號碼格式若是像這樣 (800)677-5522,Asterisk 仍可以正常撥出號碼但會影響 Inbound Calls 的來電號碼搜尋功能。

    FAQ

    Q:如何模擬 incoming pop up

    A: 執行以下 SQL statement

    INSERT INTO vtiger_asteriskincomingcalls (refuid,from_number,from_name,to_number,callertype,flag,timer) VALUES(1314450735.9,800677522,'alang',101,'SIP',0,1314450741);
    

    Notes:

    • refuid : 這值來自於 table vtiger_asteriskincomingevents。
    • flag : 手動輸入 0 -> pop up 後 -> vtiger 自動改成 1。
    • 此筆紀錄完成 pop up 後,會自動被清除。
    Q:如何修改 pop up 的訊息內容

    A: 請修改檔案 /var/www/html/vtigercrm/modules/PBXManager/TraceIncomingCall.php

    標籤 (Edit tags)
    • No tags

    文件 2

    文件大小日期附件上傳者 
     520AsteriskClient_fix_by_alang.php
    Fix for VtigerCRM 5.2.1 + PIAF 1.7.5.5
    10.72 KB16:53, 1 Aug 2011alang動作
     530AsteriskClient_ast18_fix_by_alang.php
    VtigerCRM 5.3, Asterisk 1.8 support IVR,Queue,RingGroup
    5.63 KB13:45, 15 Jun 2012alang動作
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core