Интеграция с TrueConf
Схема подключения TrueConf - SSW - IP ТФОП
Для корректной работы SSW - TrueConf требуется подключенный и сконфигурированный LDAP/AD сервер.
Ldap сервер должен содержать для каждого абонента информацию о его номере, и идентификаторе пользователя TrueConf ID (в данном примере UID).


для примера (petrov.petr / 42007):
ldapsearch -x -D cn=admin,dc=myldap,dc=eltex,dc=local -w password -h 10.0.20.35 -b cn=petrov.petr@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local # extended LDIF # # LDAPv3 # base <cn=petrov.petr@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local> with scope subtree # filter: (objectclass=*) # requesting: ALL # # petrov.petr@trueconf.ru, people, myldap.eltex.local dn: cn=petrov.petr@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local cn: petrov.petr@trueconf.ru displayName: petrov.petr@trueconf.ru mail: petrov.petr@trueconf.ru objectClass: inetOrgPerson objectClass: top sn: 42007 telephoneNumber: 42007 uid: petrov.petr userPassword:: NDIwMDc= # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
Сервер TrueConf поддерживает идентификацию абонента только в символьном виде (например petrov.petr). В свою очередь SSW обрабатывает абонента по его номеру (например 42007). Для установления соединения между SSW ↔ TrueConf требуется выполнить модификацию 42007 → petrov.petr и в обратном направлении petrov.petr → 42007. Данная модификация выполняется в SSW на SIP-транке между SSW и TrueConf.
Подготовка конфигурации на SSW
Предполагается, конфигурация локальных абонентов, sip-trunk-и к сети ТфОП уже созданы и работают. Абоненты могут делать исходящие соединения на ТфОП и принимать звонки из ТфОП.
Конфигурация подключение к LDAP-серверу
В CoCon
1. Настройка интеграции.
/domain/<DOMAIN>/ldap/declare <ID> <TYPE> <HOST> <PORT> <DC_OR_DOMAIN>
где:
- <DOMAIN> — имя виртуальной АТС;
- <ID> — имя LDAP-сервера;
- <HOST> — IP или доменное имя LDAP-сервера;
- <PORT> — Port LDAP-сервера (default или порт);
- <DC_OR_DOMAIN> — LDAP Base DN, например dc=eltex,dc=local;
- <TYPE> — LDAP-сервер тип, ldap или ad.
Пример:
/domain/trueconf.ru/ldap/declare ldap_trueconf ldap 10.0.20.36 default dc=eltex,dc=local LDAP server ldap_trueconf successfully configured
2. Настройка атрибута пользователя для авторизации и синхронизации.
/domain/<DOMAIN>/ldap/set <ID> login-attribute <LDAP login attribute>
где:
- <DOMAIN> — имя виртуальной АТС;
- <ID> — уникальный идентификатор LDAP-сервера;
- <login attribute> — атрибут LDAP для поиска имени пользователя, используемого при подключении к серверу LDAP.
Пример:
/domain/trueconf.ru/ldap/set ldap_trueconf login-attribute cn LDAP/AD server' ldap_trueconf property "login-attribute" successfully updated
3. Настройка логина и пароля пользователя, выполняющего LDAP-запрос.
/domain/<DOMAIN>/ldap/set <ID> search-auth <LDAP user's login for search auth> <LDAP user's password>
где:
- <DOMAIN> — имя виртуальной АТС;
- <ID> — уникальный идентификатор LDAP-сервера;
- <LDAP user's login for search auth> — логин пользователя, выполняющего LDAP-запрос;
- <LDAP user's password> — пароль пользователя, выполняющего LDAP-запрос.
Пример:
/domain/trueconf.ru/ldap/set ldap_trueconf search-auth cn=admin,dc=myldap,dc=eltex,dc=local password LDAP/AD server' ldap_eltex property "search-auth" successfully updated
4. Просмотр конфигурации LDAP серверов.
/domain/<DOMAIN>/ldap/info
где:
- <DOMAIN> — имя виртуальной АТС.
Пример:
/domain/trueconf.ru/ldap/info
┌───────────────────────────────┬──┬───────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┐
│ Id │T │ Host:Port │ Properties │
├───────────────────────────────┼──┼───────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────┤
│ldap_trueconf │L │10.0.20.36:default │Base DN: dc=eltex,dc=local │
│ │ │ │Login attribute: cn │
│ │ │ │Search scope: Subtree (recursive) │
│ │ │ │Authenticated at: cn=admin,dc=myldap,dc=eltex,dc=local │
│ │ │ │SSL: false │
└───────────────────────────────┴──┴───────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┘
Total: 1 server(s)
Legend:
- L - LDAP server;
- A - Active Directory server
5. Проверка соединения.
/domain/<DOMAIN>/ldap/check-connection <ID>
где:
- <DOMAIN> — имя виртуальной АТС;
- <ID> — уникальный идентификатор AD-сервера.
Пример:
/domain/trueconf.ru/ldap/check-connection ldap_trueconf Connection successful
В web
Пример настройки параметров соединения с LDAP-сервером через web.
Обратите внимание на поле «Поиск пользователей». В нем указывается логин и пароль в формате «cn=<name>,dc=<name>,dc=<name>:12345». Перед паролем водится «:».
В данном примере «логин/пароль» → «admin/password» соответственно. В этом случае укажите в поле «Поиск пользователей/Search auth» → «cn=admin,dc=myldap,dc=eltex,dc=local:password».
- Выбрать приложение "Домены".
- Выбрать необходимый домен (в примере trueconf.ru).
- Выбрать Свойства домена.
- Выбрать LDAP сервера.
- Добавить.
- Заполнить вкладку "Добавить LDAP сервер"
- Указать логическое имя LDAP сервера
- Указать IP-add или доменное имя сервера.
- Выбрать порт по умолчанию (389) или требуемый для вашего проекта.
- Указать корневую точку LDAP сервера.
- Указать имя атрибута для идентификации (в примере "cn") bind сессии.
- Рекурсивный поиск (значение по умолчанию) - выполнять поиск и в поддиректориях.
- DN пользователя используемого для подключения к LDAP серверу, двоеточие ":", пароль.
- Подтвердить "ОК".
- Сохранить.

Настройки для поддержки символьного SIP URI
Для того чтобы SIP-адаптер начал обрабатывать символьный идентификатор абонента, необходимо включить, на уровне домена, обработку не номерных URI, следующей командой:
/domain/<DOMAIN>/sip/properties/set non_telephone_number_allow true
где:
- <DOMAIN> — имя виртуальной АТС;
Пример:
/domain/trueconf.ru/sip/properties/set non_telephone_number_allow true Property "non_telephone_number_allow" successfully changed from: false to true.
Создать модификацию
TrueConf использует при установления соединения между клиентами TrueConf только в символьную адресацию , для примера petrov.petr звонит ivanov.ivan-у. В свою очередь SSW использует только номерную адресацию. Поэтому при звонках TrueConf ↔ SSW требуется выполнять модификацию номера в имя и обратно, petrov.petr ↔ 42007, ivanov.ivan ↔ 42009. Данная модификация выполняется на SSW.
Установка параметров модификации для LDAP сервера
Указываем , какие атрибуты в профиле пользователя требуется считать с LDAP сервера для выполнении модификации, эти параметры можно установить только через CoCon:
/domain/<DOMAIN>/modificators/ldap/set <ID> <PROPERTY> <VALUE>
где:
- <DOMAIN> — имя виртуальной АТС;
- <ID> — уникальный идентификатор LDAP-сервера;
- <PROPERTY> — параметры для изменения
- in\internal_attribute — это атрибут LDAP-пользователя, в котором хранится номер абонента (используется на SSW (для примера telephoneNumber)). По умолчанию отсутствует;
- in\external_attribute — то атрибут LDAP-пользователя, в котором хранится символьный идентификатор абонента (используется для приема от TrueConf ( для примера uid)). По умолчанию отсутствует;
- out\internal_attribute — это атрибут LDAP-пользователя, в котором хранится номер абонента (используется на SSW (для примера telephoneNumber)). По умолчанию отсутствует;
- out\external_attribute — это атрибут LDAP-пользователя, в котором хранится символьный идентификатор абонента (используется для передачи на TrueConf ( для примера uid)). По умолчанию отсутствует;
- cache_ttl — время жизни кэша LDAP/AD-сервера, в секундах. По умолчанию — 500 (сек);
- <VALUE> — значение параметра (Имя атрибута в LDAP сервере). По умолчанию отсутствует;
Пример:
/domain/trueconf.ru/modificators/ldap/set ldap_trueconf in\internal_attribute telephoneNumber
/domain/trueconf.ru/modificators/ldap/set ldap_trueconf out\internal_attribute telephoneNumber
/domain/trueconf.ru/modificators/ldap/set ldap_trueconf in\external_attribute uid
/domain/trueconf.ru/modificators/ldap/set ldap_trueconf out\external_attribute uid
/domain/trueconf.ru/modificators/ldap/info
/domain/trueconf.ru/modificators/ldap/set ldap_trueconf in\internal_attribute telephoneNumber LDAP server' ldap_trueconf property [in,internal_attribute] successfully updated /domain/trueconf.ru/modificators/ldap/set ldap_trueconf out\internal_attribute telephoneNumber LDAP server' ldap_trueconf property [out,internal_attribute] successfully updated /domain/trueconf.ru/modificators/ldap/set ldap_trueconf in\external_attribute uid LDAP server' ldap_trueconf property [in,external_attribute] successfully updated /domain/trueconf.ru/modificators/ldap/set ldap_trueconf out\external_attribute uid LDAP server' ldap_trueconf property [out,external_attribute] successfully updated /domain/trueconf.ru/modificators/ldap/set ldap_trueconf cache_ttl 1000 LDAP server' ldap_trueconf property "cache_ttl" successfully updated /domain/trueconf.ru/modificators/ldap/info ┌───────────────┬────────────────────────────────────────┐ │ Id │ Properties │ ├───────────────┼────────────────────────────────────────┤ │ldap_trueconf │Cache policy: only_resp │ │ │Cache ttl: 10000 s. │ │ │Internal attribute (in): telephoneNumber│ │ │Internal attribute (out): telephoneNumbe│ │ │r │ │ │External attribute (in): uid │ │ │External attribute (out): uid │ └───────────────┴────────────────────────────────────────┘
Настройка модификации
Настройка через CoCon
Контекст модификации можно настроить командой:/domain/<DOMAIN>/modificators/edit <MODIFICATION_CONTEXT>
где:
- <DOMAIN> — имя виртуальной АТС;
- <MODIFICATION_CONTEXT> — уникальное имя модификации номеров (в примере ldap_trueconf);
Пример:
<?xml version="1.0" encoding="UTF-8"?>
<modificators xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_modificators.xsd" name="ldap_trueconf">
<in>
<rule name="in_local_calls">
<conditions/>
<actions>
<external_modification service="ldap_modification_service" id="ldap_trueconf" timeout="5000" args="["cgpn","cdpn"]"/>
</actions>
<result>
<finish/>
</result>
</rule>
</in>
<out>
<rule name="out_local_calls">
<conditions/>
<actions>
<external_modification service="ldap_modification_service" id="ldap_trueconf" timeout="5000" args="["cgpn","cdpn"]"/>
</actions>
<result>
<finish/>
</result>
</rule>
</out>
</modificators>
Данный пример контекста модификации преобразует только вызовы с символьным URI обоих параметров "cgpn"и"cdpn", правило по выходу ожидает, что оба номера можно будет преобразовать, поскольку, если LDAP-сервер не сможет отобразить хоть одно из запрашиваемых полей, внешняя модификация будет провалена!
где:
- <service> — это сервис, который занимается внешней модификацией и поддерживается на данный момент лишь один: ldap_modification_service;
- <id> — это сервер для модификации, настроенный ранее (в примере ldap_trueconf);
- <timeout> — время ожидания ответа;
- <args> — аргументы для сервиса внешней модификации. В данный момент в аргументах должен быть JSON список с строками cgpn и cdpn (с учетом регистра).
Настройка через веб
Модификацию можно настроить через веб приложение "Модификация номеров":

Кэширование
SSW кэширует результаты выполнения внешней маршрутизации с помощью сервера LDAP. Кэшируются только ответы на запросы в моменты инициализации вызова. Хранение кеша осуществляется с настраиваемым периодом (выше указанный параметр "cache_ttl" ). Есть возможность просмотра и очистки кэша с помощью следующих команд:
/domain/<DOMAIN>/modificators/ldap/cache/clean <ID> [--direction]/domain/<DOMAIN>/modificators/ldap/cache/info <ID> [--direction]
где:
- <DOMAIN> — имя виртуальной АТС;
- <id> — это сервер для модификации, настроенный ранее (в примере ldap_trueconf);
- <--direction> — направление обработки модификации , прием или передача (in / out)
Пример:
до запроса на LDAP-сервер
/domain/test_domain/modificators/ldap/cache/info *
LDAP cache *:
┌──┬────────────────────────────────────────┬────────────────────────────────────────┬────────────────────────────────────────┐
│Id│ Internal attributes │ External attrubutes │ Created At │
├──┼────────────────────────────────────────┼────────────────────────────────────────┼────────────────────────────────────────┤
└──┴────────────────────────────────────────┴────────────────────────────────────────┴────────────────────────────────────────┘
/domain/trueconf.ru/modificators/ldap/cache/info * LDAP cache *: ┌─────────────┬─────────┬────────────────────┬────────────────────┬────────────────────┬────────────────────┐ │ Id │Direction│Internal attributes │External attrubutes │ Host │ Created At │ ├─────────────┼─────────┼────────────────────┼────────────────────┼────────────────────┼────────────────────┤ │ldap_trueconf│out │42009 │ivanov.ivan │- │2025/05/23 08:49:37 │ │ldap_trueconf│out │42007 │petrov.petr │- │2025/05/23 08:49:37 │ │ldap_trueconf│in │42009 │ivanov.ivan │- │2025/05/23 08:49:37 │ │ldap_trueconf│in │42007 │petrov.petr │- │2025/05/23 08:49:37 │ └─────────────┴─────────┴────────────────────┴────────────────────┴────────────────────┴────────────────────┘
domain/trueconf.ru/modificators/ldap/cache/clean * LDAP cache for all successfully cleaned with result: ok. domain/trueconf.ru/modificators/ldap/cache/info * LDAP cache *: ┌──┬────────────────────────────────────────┬────────────────────────────────────────┬────────────────────────────────────────┐ │Id│ Internal attributes │ External attrubutes │ Created At │ ├──┼────────────────────────────────────────┼────────────────────────────────────────┼────────────────────────────────────────┤ └──┴────────────────────────────────────────┴────────────────────────────────────────┴────────────────────────────────────────┘
SIP-trunk SSW ↔ TrueConf
CLI
Создать SIP статический транк для TrueConf следующей командой:
/domain/<DOMAIN>/trunk/sip/declare <ROUTING_CONTEXT> <GROUP> <TRUNK_INTERFACE> <IPSET> static <DEST_HOST> <DEST_PORT> <MODE> <LISTEN_PORT>
где:
- <DOMAIN> — имя виртуальной АТС;
- <ROUTING_CONTEXT> — название существующего контекста маршрутизации (по умолчанию "default_routing");
- <GROUP> — название группы интерфейсов (может быть задана существующая или новая группа);
- <TRUNK_INTERFACE> — имя системного интерфейса, описывающего данное направление. Имя интерфейса является внутрисистемным идентификатором, участвующем в маршрутизации, отображении статистики и другое;
- <IPSET> — имя группы локальных адресов;
- static — декларация статического транка;
- <DEST_HOST> — IP-адрес или доменное имя встречного устройства для взаимодействия;
- <DEST_PORT> — транспортный порт встречного устройства для взаимодействия с ним по протоколу SIP;
- <MODE> — режим работы транка:
- sip-proxy — на направлении работает протокол SIP;
- sip-t — на направлении работает протокол SIP-T (используется инкапсуляция ISUP);
- sip-i — на направлении работает протокол SIP-I (используется инкапсуляция ISUP);
- sip-q — на направлении работает протокол SIP-Q(используется для инкапсуляции ISUP)
- <LISTEN_PORT> — транспортный порт, используемый SIP-адаптером для приема сигнализации. SIP-адаптер может использовать несколько портов для приема сигнализации, что позволяет организовать несколько транков с одним и тем же устройством. Как минимум один локальный (слушающий) порт должен быть назначен в обязательном порядке.
Пример:
/domain/trueconf.ru/trunk/sip/declare default_routing sip trueconf test_set static 10.0.20.95 5060 sip-proxy 5060 Executed on the sip1@ecss1 declared
Назначить на созданный транк "trueconf" ранее созданную модификацию "ldap_trueconf" следующей командой:
/domain/<DOMAIN>/iface/user-set <OWNER> <GROUP> <TRUNK> modificator <MODIFICATION_CONTEXT>
где:
- <DOMAIN> — имя виртуальной АТС;
- <OWNER> — имя владельца (символ "*" используется для указания всех владельцев);
- <GROUP> —имя группы (символ "*" используется для указания всех групп);
- <TRUNK> —имя транка;
- <MODIFICATION_CONTEXT> — имя модификации.
Пример:
/domain/trueconf.ru/iface/user-set sip1 sip trueconf modificator ldap_trueconf Property 'modificator' successfully changed to 'ldap_trueconf' for interfaces: trueconf
/domain/trueconf.ru/iface/info sip1 sip trueconf
┌─────────┬─┬───────────────────┬────────────────────────────────────────────────────────────────────────────────┐
│Interface│W│ Property │ Value │
├─────────┼─┼───────────────────┼────────────────────────────────────────────────────────────────────────────────┤
│trueconf │i│adapter\version │"3.14.15.17.192" │
│ │i│bandwidth\total │256 │
│ │i│cause_location │default │
│ │i│cdpn_transformation│none │
│ │D│cfc-support │true │
│ │i│declaration │{"abf",{1747,971812,384981}} │
│ │g│domain │"trueconf.ru" │
│ │i│dynamic │false │
│ │i│external_id │69957632 │
│ │g│gate │{gate_amqp,<<"acp.adapter.init.ex">>,<<"acp.sip.sip1.test_set.init.rk">>} │
│ │i│group │"sip" │
│ │i│id │<<"trueconf">> │
│ │i│ip │"10.0.20.96" │
│ │i│ip_set │"test_set" │
│ │i│isActive │true │
│ │i│listen_port │5060 │
│ │i│media-profile │{media_profile,"default",user, │
│ │ │ │ [{media_profile_codecs,'<other>', │
│ │ │ │ [{media_profile_codec,<<"<other>">>,<<"*">>,true,#{}}], │
│ │ │ │ #{offroad => false,'rtcp-enabled' => true}}, │
│ │ │ │ {media_profile_codecs,audio, │
│ │ │ │ [{media_profile_codec,<<"G722">>,<<"*">>,true,#{}}, │
│ │ │ │ {media_profile_codec,<<"PCMA">>,<<"*">>,true,#{}}, │
│ │ │ │ {media_profile_codec,<<"PCMU">>,<<"*">>,true,#{}}, │
│ │ │ │ {media_profile_codec,<<"G729">>,<<"*">>,true,#{}}, │
│ │ │ │ {media_profile_codec,<<"telephone-event">>,<<"*">>,true,#{}}], │
│ │ │ │ #{offroad => false,'rtcp-enabled' => true}}], │
│ │ │ │ #{'dtmf-receive-type' => auto,'dtmf-transmit-type' => transit}} │
│ │i│mode │sipproxy │
│ │i│modificator │ldap_trueconf │
│ │i│my_from │none │
│ │i│network_interface │"test_set" │
│ │i│owner │"sip1" │
│ │i│port │5060 │
│ │i│profile │undefined │
│ │i│remote_client │default │
│ │i│remote_network_type│local │
│ │i│req100rel │supported │
│ │i│routing.context │default_routing │
│ │D│site │<<"local">> │
│ │i│stat\cps_max\in │0 │
│ │i│stat\cps_max\out │0 │
│ │i│stat\cps_max\total │0 │
│ │i│stat\in │0 │
│ │i│stat\out │0 │
│ │i│stat\rejected\in │0 │
│ │i│stat\rejected\out │0 │
│ │i│subtype │trunk │
│ │D│terminal_type │smart │
│ │i│trunk │"trueconf.ru.sip.trunk.autoname" │
│ │i│type │sip │
│ │i│user_name │none │
│ │D│zone │<<"default">> │
└─────────┴─┴───────────────────┴────────────────────────────────────────────────────────────────────────────────┘
Legend:
W: Where property is set:
D: This is default property
G: This is global property
g: This is group property
O: This is owner property
B: This is group+owner property
i: This is interface property
?: Unknown property level
Note: * char in W column means "Can't read iface resource info". Error reason in value column in this case
Web
Вариант создание SIP-trunk-a через web интерфейс:
- Выбрать приложение "Менеджер транков"
- Выбрать добавить (+)
- Указать параметры:
- Имя транка для "TrueConf"
- Можно сразу указать предварительно созданную модификацию "ldap_trueconf"
- IP-add TrueConf сервера
- Порт приема sip сообщений от TrueConf сервера
- Сохранить конфигурацию "Создать"

Минимальная конфигурация для получения и обработки запросов от клиентов сервиса "TrueConf" на абонентов SSW создана.
Звонок от trueconf клиента petrov.petr@trueconf.ru на абонента SSW 42009 который так же имеет аккаунт trueconf = ivanov.ivan@trueconf.ru:
Пример
- TrueConf абонент А(petrov.petr@trueconf.ru) набирает из адресной книге абонента B (#sip:ivanov.ivan@trueconf.ru).
- TrueConf сервер отравляет вызов на SIP-транк по умолчанию на SSW.
- SSW получает invite c полями From: petrov.petr@trueconf.ru /To: ivanov.ivan@trueconf.ru через транк "trueconf" на котором установлена модификация "ldap_trueconf".
- SSW отправляет ldap запрос "searchRequest" с указанием требуемых атрибутов ( Filter: (&(|(uid=petrov.petr)(uid=ivanov.ivan))(objectClass=person)) ).
- В ответном сообщении LDAP сервер отправляет "searchResEntry" с данными:
(item telephoneNumber = 42009 / item uid = ivanov.ivan + item telephoneNumber = 42007 / item uid = petrov.petr). - SSW выполняет модификацию символьных URI в номера абонентов SSW, ivanov.ivan → 42009 и petrov.petr → 42007.
- SSW устанавливает соединение между транком "trueconf" и абонентом В (42009).
- Абонент В отвечает trueconf абоненту А(petrov.petr@trueconf.ru).
- Абонент А и В завершают разговор.
- SSW формирует записи в cdr и "Истории вызовов"
| |
| |
|

TYPE;DATIME;KOD_A;KOD_B;N_TR_GR_A;N_TR_GR_B;T_ECD;T_DBA;CAUSE_ISUP;CAUSE_INT;COMPLETIND;DIALED_DIG;ACTSUSB;CATEG_A;PLACE;REC_SEQ;SERVUSER;SERVINDIC;TREATMENT;CONN_ID;REDIRECTED;REDIRECTION;ORIG_CALLED;SRC_IP;DST_IP;PORT_A;PORT_B;DIAGNOSTIC Call;2025.05.23 12:46:19;42007;42009;trueconf.ru.sip.trunk.autoname;;5;2;16;normal;7;42009;;10;1;0;42007;;Call is complete;986411945;;;;10.0.20.95;10.0.20.138;trueconf;42009@trueconf.ru;





ldapsearch -x -D cn=admin,dc=myldap,dc=eltex,dc=local -w password -h 10.0.20.35 -b cn=petrov.petr@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local # extended LDIF # # LDAPv3 # base <cn=petrov.petr@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local> with scope subtree # filter: (objectclass=*) # requesting: ALL # # petrov.petr@trueconf.ru, people, myldap.eltex.local dn: cn=petrov.petr@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local cn: petrov.petr@trueconf.ru displayName: petrov.petr@trueconf.ru mail: petrov.petr@trueconf.ru objectClass: inetOrgPerson objectClass: top sn: 42007 telephoneNumber: 42007 uid: petrov.petr userPassword:: NDIwMDc= # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
ldapsearch -x -D cn=admin,dc=myldap,dc=eltex,dc=local -w password -h 10.0.20.35 -b cn=ivanov.ivan@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local # extended LDIF # # LDAPv3 # base <cn=ivanov.ivan@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local> with scope subtree # filter: (objectclass=*) # requesting: ALL # # ivanov.ivan@trueconf.ru, people, myldap.eltex.local dn: cn=ivanov.ivan@trueconf.ru,ou=people,dc=myldap,dc=eltex,dc=local cn: ivanov.ivan@trueconf.ru displayName: 42009 mail: ivanov.ivan@trueconf.ru objectClass: inetOrgPerson objectClass: top sn: 42009 telephoneNumber: 42009 uid: ivanov.ivan userPassword:: NDIwMDk= # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
Звонок от абонента SSW/ТфОП на конференцию запущенную на TrueConf
Пример
- TrueConf оператор создает конференцию (в примере ID конференции = 12345) в данной конференции указаны два участника, клиенты trueconf petrov.petr и ivanov.ivan. Клиент petrov.petr является владельцем данной конференции. Альтернативный вариант , клиент trueconf petrov.petr через приложение создает конференцию, назначает ID конференции = 12345 и указывает список участников (клиентов trueconf).
- Конференция активна, участники общаются.
- Требуется подключится сотруднику у которого нет возможности использовать ПО TrueConf, есть только телефон SSW (42001). Сотрудник знает идентификатор конференции. Аналогичным образом SSW обработает звонок от абонента ТфОП на конференцию запущенную на TrueConf.
- Абонент SSW (42001) набирает код доступа к IVR ВСК TrueConf 0904.
- Абонент слышит приглашение к донабору номера - "введите номер конференции".
- Абонент набирает идентификатор конференции (12345).
- IVR TrueConf выполняет модификацию номера 00<ConfID> (два 00 необходимы для понимания TrueConf-ом звонка в конференцию).
- SSW посылает запрос Invite в TrueConf server, через SIP-транк "trueconf".
- Абонент SSW попадет в конференцию. (В зависимости от конфигурации конференции, может требоваться подтверждение от инициатора).
- Клиенты trueconf и абонент SSW участвуют в конференции.
- Абонент SSW завершают разговор (отключается от конференции). Или инициатор конференции ее завершает.
- SSW формирует записи в cdr и "Истории вызовов" (на номер доступа к ВСК TrueConf 0904).
Для реализации данного функционала нужно дополнить конфигурацию на SSW.
Добавить сервис IVR для доступа к TrueConf
- Для создания IVR TrueConf нужно открыть IVR редактор.





- Сохранить созданный IVR скрипт.

Добавить правило маршрутизации.
CLI
/domain/<DOMAIN>/routing/edit default_routing
где:
- <DOMAIN> — имя виртуальной АТС;
добавив туда следующее правило
<rule name="trueconf">
<conditions>
<cdpn digits="00%"/>
</conditions>
<result>
<external>
<trunk value="trueconf"/>
</external>
</result>
</rule>
Web
В "Менеджер маршрутизации" добавить еще одно правило доступа к sip-trunk на TrueConf.

Изменить модификацию
В текущей конфигурации при звонке через sip-trunk "trueconf" все cgpn/cdpn будут анализироваться в LDAP сервере для замены на символьный формат URI. В случае звонка от абонентов SSW/ТфОП на активную конференцию требуется передать код конференции в цифровом виде без модификации (00<Conf_ID>).
Добавим правило по выходу для модификации "ldap_trueconf".
CLI
domain/<DOMAIN>/modificators/edit ldap_trueconf
где:
- <DOMAIN> — имя виртуальной АТС;
добавив туда следующее правило по выходу (OUT) , и поставить его до основного правила модификации "in_local_calls".
. . .
<rule name="00_Conf_ID">
<conditions>
<cdpn digits="00%"/>
</conditions>
<actions/>
<result>
<finish/>
</result>
</rule>
. . .
Данным правилом мы пропускаем звонок в случае cdpn с любыми цифрами после 00 без модификации номера В. Номер А так же отправляется на TrueConf конференцию без модификации, указывая, что звонок на конференцию прошел от абонента SSW / ТфОП.
Web
В "Модификация номеров" добавить еще одно правило по выходу. И установить его на первую позицию.

Результат:
| |
INVITE sip:0012345@10.0.20.95:5060 SIP/2.0
| |
|
Вызов из конференции TrueConf на абонента ТфОП / корпоративной сети.
Пример

- Конференция активна, участники общаются.
- В процессе конференции потребовалось подключить сотрудника, который доступен по корпоративному телефону / по мобильному или городскому телефону.



- TrueConf сервер устанавливает соединение через SIP trunk, в качестве номера А указывается номер конференции (00+номер конференции) + имя конференции (Конференция 12345).
- При приеме вызова абонентом он подключается к конференции.
- Клиенты trueconf и абонент SSW участвуют в конференции.
- Абонент SSW завершают разговор (отключается от конференции). Или инициатор конференции ее завершает.

Для реализации данного функционала нужно дополнить конфигурацию на SSW.
Изменить модификацию
В текущей конфигурации при звонке через sip-trunk "trueconf" все cgpn/cdpn будут анализироваться в LDAP сервере для замены на символьный формат URI. В случае звонка из конференции на абонента SSW/ТфОП требуется передать номер абонента В в оригинальном виде без модификации (42001). Модификация номера А так же не должна выполнятся → будет передан номер конференции (00+12345).
Добавим правило по входу для модификации "ldap_trueconf".
CLI
domain/<DOMAIN>/modificators/edit ldap_trueconf
где:
- <DOMAIN> — имя виртуальной АТС;
добавив туда следующее правило по входу (IN) , и поставить его до основного правила модификации "in_local_calls".
. . .
<in>
<rule name="00_42">
<conditions>
<cgpn digits="00%"/>
<cdpn digits="42%"/>
</conditions>
<actions/>
<result>
<finish/>
</result>
</rule>
</in>
. . .
Данным правилом мы пропускаем звонок в случае cdpn с любыми цифрами после 42 и cgpn с любыми цифрами после 00 без модификации номеров.
Web
В "Модификация номеров" добавить еще одно правило по входу. И установить его на позицию перед правилом "in_local_calls".

Результат:
| |
|
Звонок клиента TrueConf на абонента ТфОП / корпоративной сети.
Пример

- Сервер TrueConf по SIP trunk посылает Invite c указанием абонент А = petrov.petr@trueconf.ru, а абонент В = 42001.
- SSW выполняет модификацию номера абонента А petrov.petr@trueconf.ru → 42007, номер абонента В остается без изменений.
- SSW устанавливает соединение с абонентом В 42001.
- Клиент trueconf petrov.petr@trueconf.ru и абонент SSW участвуют в разговоре.
- Абонент SSW или клиент trueconf завершают разговор.
- SSW формирует записи в cdr и "Истории вызовов" (на номер 42007).
Для реализации данного функционала нужно дополнить конфигурацию на SSW.
Изменить модификацию
В текущей конфигурации при звонке через sip-trunk "trueconf" все cgpn/cdpn будут анализироваться в LDAP сервере для замены на символьный формат URI. В случае звонка от клиента TrueConf на абонента SSW/ТфОП требуется передать номер абонента В в оригинальном виде без модификации (42001). Модификация номера А должна быть выполнена (для генерации CDR /Истории звонков) petrov.petr@trueconf.ru → 42007.
Добавим правило по входу для модификации "ldap_trueconf".
CLI
domain/<DOMAIN>/modificators/edit ldap_trueconf
где:
- <DOMAIN> — имя виртуальной АТС;
добавив туда следующее правило по входу (IN) , и поставить его до основного правила модификации "in_local_calls".
. . .
<in>
<rule name="42__">
<conditions>
<cdpn digits="42%"/>
</conditions>
<actions>
<external_modification service="ldap_modification_service" id="ldap_trueconf" timeout="5000" args="["cgpn"]"/>
</actions>
<result>
<finish/>
</result>
</rule>
</in>
. . .
Данным правилом мы пропускаем звонок в случае cdpn с любыми цифрами после 42 без модификации номера В , модификация будет выполнятся только для номера А.
Web
В "Модификация номеров" добавить еще одно правило по входу. И установить его на позицию перед правилом "in_local_calls".

Результат:
| |
|