简介
3CX 提供了 SQL 数据库的集成。配置在服务器端完成,方便简单。这种集成使 3CX PBX 能够连接到Microsoft SQL Server,MySQL 和 PostgreSQL 数据库,从而提供以下优势:
- 联系人同步 – 来自外部号码的呼叫会触发数据库中的联系人查找,并将联系人信息将添加到3CX联系人中。这样,当您接到电话时,来电者姓名会自动显示在您的电话显示屏中。
- 呼叫弹出窗口 – 使用 3CX Web 客户端时,当您收到呼叫时,客户记录会自动显示给您。
- 呼叫日志 – 将呼叫记录在数据库中。
- 将收到的未知呼叫自动创建新联系人并存入数据库。
本指南将指导您完成在服务器端使用3CX PBX设置SQL数据库所需的步骤。
3CX 配置
General Configuration
- 登录 3CX 管理控制台,到 设置 – CRM 集成 – 服务器端,并在下拉菜单中选择需要的数据库种类。
- 输入对应的连接信息:
- Server:服务器的名称或者 IP 地址。如果需要的话,MS SQL 服务器可以输入实例名称或者端口号码,比如:
- myServerName
- myServerName\myInstanceName
- myServerAddress,Port
- Port:与服务器建立连接的数据库端口。MS SQL Server 不用填此项。
- Database:使用的数据库名称。
- Username:连接数据库的用户名。
- Password:连接数据库的密码。
- Server:服务器的名称或者 IP 地址。如果需要的话,MS SQL 服务器可以输入实例名称或者端口号码,比如:
- 输入 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]%’
- 输入联系人 URL 前缀和尾缀。这些是创建联系 URL 所必需的,联系 URL 是联系 URL 前缀,数据库返回的 ContactID 和联系人 URL 后缀串联。此联系人 URL 被视为 3CX 联系人中联系人的密钥,用于在数据库中检测到任何更改时更新联系人。此外,此联系人 URL 显示在 3CX Web 客户端中,因此,如果您有一个显示联系人记录的网页,请使用这些设置创建指向该页面的 URL。
Call Journaling
- 如果需要将外部通话记录到数据库中,请启用“Call Jouraling”复选框并配置“Call Journaling SQL 语句”。
- 请注意,您可以在 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 对象,可以根据用户格式化。
- Call Journaling SQL 语句应该是 INSERT 语句,比如:
INSERT INTO calls (contactnumber, agentextension, description, calldatetime, callduration) VALUES (‘[Number]’, ‘[Agent]’, ‘3CX PhoneSystem Call’, ‘[DateTime]’, ‘[Duration]’)
创建联系人
- 当没有找到该联系人时创建新的联系人。需要开启 “Enable Contact Creation” 选项并配置 “Contact Creation SQL Statement”。
- 用户可以在 Contact Creation SQL 中使用变量。[]中包含的就是变量,不如外部号码作为变量就是 [Number]。可用变量如下:
- Number – 外部联系人号码(已拨的外部分机号码和呼入的主叫号码)。
- 联系人创建 SQL 语句必须为创建的联系人返回以下区分大小写的列:contactid,firstname,lastname,companyname,email,phonemobile,phonemobile2,phonehome,phonehome2,phonebusiness,phonebusiness2,phoneother,faxbusiness,faxhome,pager,photourl。您可以使用上面针对查找 SQL 语句解释的相同技术更改返回的列的名称。
- 对于 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]’