Сегодня у нас есть FreeSWITCH с подключенными телефонами и отдельно у менеджеров установлен Terrasoft CRM. Необходимо обеспечить возможность определения имени из Terrasoft CRM звонящего абонента на SIP-телефонах. Для этого я написал PHP-скриптик:
<?php
// Параметры для подключения к Microsoft SQL
define ("_DBHOST", "10.10.10.1");
define ("_DBPORT", "1433");
define ("_DBUSER", "sa");
define ("_DBPASS", "pass");
define ("_DB", "Terrasoft_XRM+SD332");
// Подключение к Microsoft SQL
$host = _DBHOST . ":" . _DBPORT;
$link = mssql_connect($host, _DBUSER, _DBPASS)
$selected = mssql_select_db(_DB, $link)
// Получение телефона
$phone = $_GET["cid"];
// SQL запрос
$select = "select [A].[Name] AS [Name]
, [A].[OfficialAccountName] AS [FullName]
from [dbo].[tbl_AccountCommunication] [AC]
join [dbo].[tbl_Account] [A] on [A].[ID] = [AC].[AccountID]
where [AC].[Digits] like '%$phone'
UNION ALL
select [C].[Name] AS [Name]
, [CA].[OfficialAccountName] AS [FullName]
from [dbo].[tbl_ContactCommunication] [CC]
join [dbo].[tbl_Contact] [C] on [C].[ID] = [CC].[ContactID]
left join [dbo].[tbl_Account] [CA] on [C].[ID] = [CA].[PrimaryContactID]
where [CC].[Digits] like '%$phone' ";
$query = mssql_query($select, $link)
if (!mssql_num_rows($query)) {
$result = $phone;
} else {
$row = mssql_fetch_row($query);
$result = mb_convert_encoding($row[0],'UTF-8','WINDOWS-1251');
}
$result = trim($result);
echo $result;
// Закрываем соединение с Microsoft SQL
$db_close = mssql_close($link)
?>
Размещаем скриптик на сервере с PHP и Apache. В настройках модулей FreeSWITCH включаем:
<load module="mod_memcache"/>
<module="mod_cidlookup"/>
В настройках
модуля cidlookup прописываю:
<param name="url" value="http://localhost/terrasoft.php?cid=${caller_id_number}""/>
<param name="cache" value="true" />
<param name="cache-expire" value="86400" />
А в dialplan public.xml добавляем
<action application="cidlookup" data="$1"/>
Наслаждаемся 😉 А в консоли это вот так выглядит:
Приветствую! Могли бы вы восстановить статью, а то самое важное и интересное потерялось 🙂 Очень буду благодарен!
Восстановил 🙂