FreeSWITCH cidlookup и Terrasoft

FreeSWITCHСегодня у нас есть 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"/>

Наслаждаемся 😉 А в консоли это вот так выглядит:

FS достает Caller Name из базы Terrasoft по CallerID

FS достает Caller Name из базы Terrasoft по CallerID

2 комментария on "FreeSWITCH cidlookup и Terrasoft"


  1. Приветствую! Могли бы вы восстановить статью, а то самое важное и интересное потерялось 🙂 Очень буду благодарен!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.