在 3CX 服务端整合微软 SQL, MySQL, PostgreSQL 数据库

简介

3CX 提供了 SQL 数据库的集成。配置在服务器端完成,方便简单。这种集成使 3CX PBX 能够连接到Microsoft SQL Server,MySQL 和 PostgreSQL 数据库,从而提供以下优势:

  • 联系人同步 – 来自外部号码的呼叫会触发数据库中的联系人查找,并将联系人信息将添加到3CX联系人中。这样,当您接到电话时,来电者姓名会自动显示在您的电话显示屏中。
  • 呼叫弹出窗口 – 使用 3CX Web 客户端时,当您收到呼叫时,客户记录会自动显示给您。
  • 呼叫日志 – 将呼叫记录在数据库中。
  • 将收到的未知呼叫自动创建新联系人并存入数据库。

本指南将指导您完成在服务器端使用3CX PBX设置SQL数据库所需的步骤。

3CX 配置

General Configuration

  1. 登录 3CX 管理控制台,到 设置 – CRM 集成 – 服务器端,并在下拉菜单中选择需要的数据库种类。
  2. 输入对应的连接信息:
    • Server:服务器的名称或者 IP 地址。如果需要的话,MS SQL 服务器可以输入实例名称或者端口号码,比如:
      1. myServerName
      2. myServerName\myInstanceName
      3. myServerAddress,Port
    • Port:与服务器建立连接的数据库端口。MS SQL Server 不用填此项。
    • Database:使用的数据库名称。
    • Username:连接数据库的用户名。
    • Password:连接数据库的密码。
  3. 输入 Lookup SQL Statement。这里使用的语句必须是能返回以下内容的 SELECT 语句:case-sensitive columns: contactid,firstname,lastname,companyname,email,phonemobile,phonemobile2,phonehome,phonehome2,phonebusiness,phonebusiness2,phoneother,faxbusiness,faxhome,pager,photourl。如果使用的数据库列名不同,可以更改返回名称,如下所示:

    SELECT id as contactid, first_name as firstname, last_name as lastname, email as email, phone as phonebusiness, mobile as phonemobile, fax as faxbusiness FROM contacts WHERE phone LIKE ‘%[Number]%’ or mobile like ‘%[Number]%’ or fax LIKE ‘%[Number]%’

  4. 输入联系人 URL 前缀和尾缀。这些是创建联系 URL 所必需的,联系 URL 是联系 URL 前缀,数据库返回的 ContactID 和联系人 URL 后缀串联。此联系人 URL 被视为 3CX 联系人中联系人的密钥,用于在数据库中检测到任何更改时更新联系人。此外,此联系人 URL 显示在 3CX Web 客户端中,因此,如果您有一个显示联系人记录的网页,请使用这些设置创建指向该页面的 URL。

Call Journaling

  1. 如果需要将外部通话记录到数据库中,请启用“Call Jouraling”复选框并配置“Call Journaling SQL 语句”。
  2. 请注意,您可以在 Call Journaling SQL Statement 中使用变量。变量在[]之间指定,例如外部数字指定为[Number]。可用的变量是:
    • CallType – 呼叫类型,可以是”Inbound”, “Outbound”, “Missed” 或者 “Unanswered”。
    • Number – 外部联系号码(已拨打的外形号码或者呼入的主叫号码)。
    • Agent – 处理这个通话的坐席分机号码。
    • Duration – 通话持续时间。以 “hh:mm:ss” 形式显示。
    • DurationTimeSpan – TimeSpan 对象的通话持续时间,可以根据客户需求格式化。
    • DateTime – 使用3CX服务器中的本地格式在本地时区中进行呼叫的开始日期和时间。
    • CallStartTimeLocal – 以本地时间记录通话开始的日期和时间,是一个 DateTime 对象,可以根据用户格式化。
    • CallStartTimeUTC – 以 UTC 时间记录通话开始的日期和时间,是一个 DateTime 对象,可以根据用户格式化。
    • CallEndTimeLocal – 以本地时间记录通话结束的日期和时间,是一个 DateTime 对象,可以根据用户格式化。
    • CallEndTimeUTC – 以 UTC 时间记录通话结束的日期和时间,是一个 DateTime 对象,可以根据用户格式化。
  3. Call Journaling SQL 语句应该是 INSERT 语句,比如:

    INSERT INTO calls (contactnumber, agentextension, description, calldatetime, callduration) VALUES (‘[Number]’, ‘[Agent]’, ‘3CX PhoneSystem Call’, ‘[DateTime]’, ‘[Duration]’)

     

     

创建联系人

  1. 当没有找到该联系人时创建新的联系人。需要开启 “Enable Contact Creation” 选项并配置 “Contact Creation SQL Statement”。
  2. 用户可以在 Contact Creation SQL 中使用变量。[]中包含的就是变量,不如外部号码作为变量就是 [Number]。可用变量如下:
    • Number – 外部联系人号码(已拨的外部分机号码和呼入的主叫号码)。
  3. 联系人创建 SQL 语句必须为创建的联系人返回以下区分大小写的列:contactid,firstname,lastname,companyname,email,phonemobile,phonemobile2,phonehome,phonehome2,phonebusiness,phonebusiness2,phoneother,faxbusiness,faxhome,pager,photourl。您可以使用上面针对查找 SQL 语句解释的相同技术更改返回的列的名称。
  4. 对于 Contact Creation SQL 语句,您可以使用组合语句,首先插入记录,然后再查询。例如:

    INSERT INTO contacts (first_name, last_name, phone) VALUES (‘New’, ‘3CX Contact’, ‘[Number]’);SELECT id as contactid, first_name as firstname, last_name as lastname, phone as phonebusiness FROM contacts WHERE phone = [Number]’