В разделе приведены описания интеграции AD/ldap, которая отвечает за следующие задачи и функции:
domain/<DOMAIN>/ldap/declare <ID> <TYPE> <HOST> <PORT> <DC_OR_DOMAIN>
где:
1. Настройка интеграции.
domain/test_domain/ldap/declare server_ad ad 192.168.114.224 default voip.eltex.local |
2. Настройка пользователя для авторизации и синхронизации.
domain/<DOMAIN>/ldap/set <ID> sync-auth <AD user login> <AD user password>
где:
domain/test_domain/ldap/set ad_test sync-auth michail.svetlov 12345 LDAP/AD server' ad_test property "sync-auth" successfully updated |
3. Просмотр активных подключений.
domain/<DOMAIN>/ldap/info
где:
domain/test_domain/ldap/info ┌──────────────────────────────┬──┬──────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────┐ │ Id │T │ Host:Port │ Properties │ ├──────────────────────────────┼──┼──────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤ │ad_test │A │192.168.56.30:default │Domain: voip.eltex.local │ │ │ │ │SSL: false │ │ │ │ │Sync Authenticated at: michail.svetlov │ └──────────────────────────────┴──┴──────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────┘ Total: 1 server(s) |
4. Проверка соединения.
domain/<DOMAIN>/ldap/check-connection <ID>
где:
domain/test_domain/ldap/check-connection ad_test Connection successful |
5. Настройка синхронизации учетных данных.
Для синхронизации учетных данных:
Команда синхронизации SIP-аккаунта с пользователем AD:
domain/<DOMAIN>/ldap/sync/force <ID> <ADDRESS>
где:
domain/test_domain/ldap/sync/force ad_test 42005 Alias with address 42007 synchronized successfully |
Синхронизация происходит по параметру sip-user-name на softswitch и параметру TelephoneNumber на AD. |
6. Проверка синхронизации.
Для проверки синхронизации используйте команду.
domain/<DOMAIN>/alias/info <ADDRESS>
где:
Выполнение команды до синхронизации:
domain/test_domain/alias/info 42005 Aliases in domain test_domain ┌───────┬─────────────────┬─┬─┬──────────────────────────┬────────────────────────────────┐ │Address│ Iface │A│W│ Property │ Value │ ├───────┼─────────────────┼─┼─┼──────────────────────────┼────────────────────────────────┤ │42005 │42005@test_domain│ │ │user_agent │"VP-15P/2.7.6.34 sofia-sip/1.12"│ │ │ │ │ │uid │06b4e88042702a1c │ │ │ │ │D│timezone │'UTC+07:00' │ │ │ │ │ │terminal_type │smart │ │ │ │ │D│ss\mgm\telephone │enabled │ │ │ │ │p│screening │networkProvided │ │ │ │ │ │profile │"user_default" │ │ │ │ │D│pin │"1111" │ │ │ │ │p│npi │isdnTelephony │ │ │ │ │p│ni │private │ │ │ │ │p│nai │subscriberNumber │ │ │ │ │d│media-profile │"default" │ │ │ │ │ │isIfaceActive │false │ │ │ │ │p│category │ordinarySubscriber │ │ │ │ │d│access_type │access_type0 │ │ │ │ │p│access_group │all │ └───────┴─────────────────┴─┴─┴──────────────────────────┴────────────────────────────────┘ |
Выполнение команды после синхронизации:
domain/test_domain/alias/info 42005 Aliases in domain test_domain ┌───────┬─────────────────┬─┬─┬──────────────────────────┬────────────────────────────────┐ │Address│ Iface │A│W│ Property │ Value │ ├───────┼─────────────────┼─┼─┼──────────────────────────┼────────────────────────────────┤ │42005 │42005@test_domain│ │ │user_agent │"VP-15P/2.7.6.34 sofia-sip/1.12"│ │ │ │ │ │uid │06b4e88042702a1c │ │ │ │ │D│timezone │'UTC+07:00' │ │ │ │ │ │terminal_type │smart │ │ │ │ │D│ss\mgm\telephone │enabled │ │ │ │ │p│screening │networkProvided │ │ │ │ │ │profile │"user_default" │ │ │ │ │D│pin │"1111" │ │ │ │ │p│npi │isdnTelephony │ │ │ │ │p│ni │private │ │ │ │ │p│nai │subscriberNumber │ │ │ │ │d│media-profile │"default" │ │ │ │ │ │ldap\id │stepanov@voip.eltex.local │ │ │ │ │ │isIfaceActive │false │ │ │ │ │ │email │"stepan.stepanov@eltex.loc" │ │ │ │ │ │displayName │stepan.stepanov │ │ │ │ │p│category │ordinarySubscriber │ │ │ │ │d│access_type │access_type0 │ │ │ │ │p│access_group │all │ └───────┴─────────────────┴─┴─┴──────────────────────────┴────────────────────────────────┘ |
На уровне LDAP-серверов есть следующие поля:
1. Настройка интеграции.
domain/<DOMAIN>/ldap/declare <ID> <TYPE> <HOST> <PORT> <DC_OR_DOMAIN>
где:
domain/test_domain/ldap/declare ldap_eltex ldap 192.168.56.157 default dc=eltex,dc=local LDAP server ldap_eltex successfully configured |
2. Настройка атрибута пользователя для авторизации и синхронизации.
domain/<DOMAIN>/ldap/set <ID> login-attribute <LDAP login attribute>
где:
domain/test_domain/ldap/set ldap_eltex login-attribute cn LDAP/AD server' ldap_eltex 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/test_domain/ldap/set ldap_eltex search-auth cn=admin,dc=eltex,dc=local 12345 LDAP/AD server' ldap_eltex property "search-auth" successfully updated |
4. Просмотр активных подключений.
domain/<DOMAIN>/ldap/info
где:
domain/test_domain/ldap/info ┌────────────────────────────────┬──┬──────────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────────────┐ │ Id │T │ Host:Port │ Properties │ ├────────────────────────────────┼──┼──────────────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────┤ │ldap_eltex │L │192.168.56.157:default │Base DN: dc=eltex,dc=local │ │ │ │ │Login attribute: cn │ │ │ │ │Search scope: Subtree (recursive) │ │ │ │ │Authenticated at: cn=admin,dc=eltex,dc=local │ │ │ │ │SSL: false │ │ │ │ │connection_check_timeout: 1 │ └────────────────────────────────┴──┴──────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ Total: 1 server(s) |
5. Проверка соединения.
domain/<DOMAIN>/ldap/check-connection <ID>
где:
domain/test_domain/ldap/check-connection ldap_eltex Connection successful |
Пример настройки параметров соединения с LDAP-сервером через web.
Обратите внимание на поле «Поиск пользователей». В нем указывается логин и пароль в формате «cn=<name>,dc=<name>,dc=<name>:12345». Перед паролем водится «:».
В данном примере «логин/пароль» → «admin/12345» соответственно. В этом случае укажите в поле «Поиск пользователей/Search auth» → «cn=admin,dc=evndomain,dc=loc:12345».

Позволяет использовать учетные записи пользователя, созданные на LDAP-сервере для последующего входа в CoCon/Web.
Отредактируйте конфигурационный файл /etc/ecss/global.config. Выполните команду на обоих хостах.
%% File autogenerate.
. . .
{cocon, [
% ms, delay for node in cluster group
{heartbeat, 3000},
% name of amqp exchange
{exchange, "ccn.direct"},
% Type DB storage for user authentication (ldap, mysql, undefined)
%% default: mysql
{user_data, 'mysql'},
% Type DB for audit data (ldap, mysql, undefined)
%% default: mysql
{audit, 'mysql'},
%%%% Settings LDAP (not required)
%% ldap ip
{ldap_server_ip, "cocon.ldap.ecss"},
%% ldap port
{ldap_server_port, "389"},
%% DN for storage users
{ldap_people_dn, "ou=people,dc=ecss"},
%% DN for storage groups
{ldap_groups_dn, "ou=groups,dc=ecss"},
%% DN for storage events
{ldap_audit_dn, "ou=audit,dc=ecss"},
%% DN for ldap usages (audit, etc)
{ldap_system_username, "cn=admin,dc=ecss"},
{ldap_system_password, "admin"},
. . .
|
Необходимо изменить несколько строк:
В результате файл отобразится следующим образом:
%% File autogenerate.
. . .
{cocon, [
% ms, delay for node in cluster group
{heartbeat, 3000},
% name of amqp exchange
{exchange, "ccn.direct"},
% Type DB storage for user authentication (ldap, mysql, undefined)
%% default: mysql
{user_data, 'ldap'},
% Type DB for audit data (ldap, mysql, undefined)
%% default: mysql
{audit, 'mysql'},
%%%% Settings LDAP (not required)
%% ldap ip
{ldap_server_ip, "10.0.20.51"},
%% ldap port
{ldap_server_port, "389"},
%% DN for storage users
{ldap_people_dn, "ou=people,dc=myldap,dc=eltex,dc=local"},
%% DN for storage groups
{ldap_groups_dn, "ou=groups,dc=myldap,dc=eltex,dc=local"},
%% DN for storage roles
{ldap_roles_dn, "ou=roles,dc=myldap,dc=eltex,dc=local"},
%% DN for storage events
{ldap_audit_dn, "ou=audit,dc=ecss"},
%% DN for ldap usages (audit, etc)
{ldap_system_username, "cn=admin,dc=myldap,dc=eltex,dc=local"},
{ldap_system_password, "eltex"},
. . .
|
Перезапустите сервисы "ecss-*" на обоих хостах, для этого выполните команду ниже. Команда выполняется последовательно, дождитесь окончания выполнения на сервере ecss1, проверьте что все сервисы поднялись. Выполните команду на сервере ecss2.
sudo systemctl restart ecss-mediator.service ecss-pa-sip.service ecss-core.service ecss-ds.service ecss-mycelium.service |
После перезагрузки SSW на LDAP-сервере отобразяться следующие директории:
В директориях будет храниться информация системных пользователей SSW, по умолчанию admin и support.

Данные пользователя необходимы для входа в систему через cocon или веб.

ssh operator@localhost -p8023 operator@localhost's password: operator@[mycelium1@ecss1]:/$ system-status Checking... ┌─┬───────────────┬──────────────────────────┬───────────────────────────────┬─────────────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime│ ├─┼───────────────┼──────────────────────────┼───────────────────────────────┼─────────────────────┼──────┤ │ │core1@ecss1 │ecss-core-3.14.15.1004 │core1@ecss1,core1@ecss2 │not running │1h 5m │ │ │core1@ecss2 │ecss-core-3.14.15.1004 │core1@ecss1,core1@ecss2 │not running │1h 5m │ │ │ds1@ecss1 │ecss-ds-3.14.15.1004 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │1h 5m │ │ │ds1@ecss2 │ecss-ds-3.14.15.1004 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │1h 5m │ │ │md1@ecss1 │ecss-mediator-3.14.15.1004│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │1h 5m │ │ │md1@ecss2 │ecss-mediator-3.14.15.1004│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │1h 5m │ │ │mycelium1@ecss1│ecss-mycelium-3.14.15.1004│mycelium1@ecss1,mycelium1@ecss2│not running │1h 5m │ │ │mycelium1@ecss2│ecss-mycelium-3.14.15.1004│mycelium1@ecss1,mycelium1@ecss2│not running │1h 5m │ │ │sip1@ecss1 │ecss-pa-sip-3.14.15.1004 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│1h 5m │ │ │sip1@ecss2 │ecss-pa-sip-3.14.15.1004 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│1h 5m │ └─┴───────────────┴──────────────────────────┴───────────────────────────────┴─────────────────────┴──────┘ |
Для синхронизации учетных данных:
domain/<DOMAIN>/ldap/sync/properties/set --ldap_to_alias_settings_map <LDAP parametr> <alias parametr> <type of parameter>
где:
domain/test_domain/ldap/sync/properties/set --ldap_to_alias_settings_map displayname displayName string Success: Option(s) changed successfully. |
До изменения параметра:
domain/test_domain/ldap/sync/properties/info
┌─────────────────────────────┬───────────┬────────────────────────────────────────────────────────────────────────────────┐
│ Property │ Domain │ Value │
├─────────────────────────────┼───────────┼────────────────────────────────────────────────────────────────────────────────┤
│deactivate_list │test_domain│[] │
│clean_list │test_domain│[] │
│set_list │test_domain│[] │
│delete_nonexistent_properties│test_domain│false │
│sleep_interval │test_domain│disabled │
│synchronize_interval │test_domain│undefined │
│ldap_to_alias_settings_map │test_domain│#{"cn" => {[displayName],string}, │
│ │ │ "jabber_id" => {[jabber,id],string}, │
│ │ │ "mail" => {[email],string}} │
│search_parameter │test_domain│"telephoneNumber" │
│server │test_domain│<<"ldap_eltex">> │
└─────────────────────────────┴───────────┴────────────────────────────────────────────────────────────────────────────────┘
|
После изменения параметра:
domain/test_domain/ldap/sync/properties/info
┌─────────────────────────────┬───────────┬────────────────────────────────────────────────────────────────────────────────┐
│ Property │ Domain │ Value │
├─────────────────────────────┼───────────┼────────────────────────────────────────────────────────────────────────────────┤
│deactivate_list │test_domain│[] │
│clean_list │test_domain│[] │
│set_list │test_domain│[] │
│delete_nonexistent_properties│test_domain│false │
│sleep_interval │test_domain│disabled │
│synchronize_interval │test_domain│undefined │
│ldap_to_alias_settings_map │test_domain│#{"cn" => {[subscriber_portal,login],string}, │
│ │ │ "displayname" => {[displayName],string}, │
│ │ │ "jabber_id" => {[jabber,id],string}, │
│ │ │ "mail" => {[email],string}} │
│search_parameter │test_domain│"telephoneNumber" │
│server │test_domain│<<"ldap_eltex">> │
└─────────────────────────────┴───────────┴────────────────────────────────────────────────────────────────────────────────┘
|
Команда синхронизации SIP-аккаунта с пользователем LDAP:
domain/<DOMAIN>/ldap/sync/force <ID> <ADDRESS>
где:
domain/test_domain/ldap/sync/force ldap_eltex 42007 Alias with address 42007 synchronized successfully |
Синхронизация происходит по параметру sip-user-name на softswitch и параметру "TelephoneNumber" на LDAP. |
Контроль пользователей в LDAP-сервере производится именно по параметру "TelephoneNumber". Вне зависимости от того, как вы записали этот параметр в *.ldif файле. Пример:
|
Для проверки синхронизации используйте команду:
domain/<DOMAIN>/alias/info <ADDRESS>
где:
domain/test_domain/alias/info 42007 |
Выполнение команды до синхронизации:
domain/test_domain/alias/info 42007 Aliases in domain test_domain ┌───────┬─────────────────┬─┬─┬──────────────────────────┬────────────────────────────────┐ │Address│ Iface │A│W│ Property │ Value │ ├───────┼─────────────────┼─┼─┼──────────────────────────┼────────────────────────────────┤ │42007 │42007@test_domain│ │ │user_agent │"VP-15P/2.7.6.34 sofia-sip/1.12"│ │ │ │ │ │uid │06b4e88042702a1c │ │ │ │ │D│timezone │'UTC+07:00' │ │ │ │ │ │terminal_type │smart │ │ │ │ │ │subscriber_portal\password│abf │ │ │ │ │ │subscriber_portal\login │"42007" │ │ │ │ │D│ss\mgm\telephone │enabled │ │ │ │ │p│screening │networkProvided │ │ │ │ │ │profile │"user_default" │ │ │ │ │D│pin │"1111" │ │ │ │ │p│npi │isdnTelephony │ │ │ │ │p│ni │private │ │ │ │ │p│nai │subscriberNumber │ │ │ │ │d│media-profile │"default" │ │ │ │ │ │ldap\id │42007 │ │ │ │ │ │isIfaceActive │true │ │ │ │ │ │email │"petrov.petr" │ │ │ │ │ │displayName │42007 │ │ │ │ │p│category │ordinarySubscriber │ │ │ │ │d│access_type │access_type0 │ │ │ │ │p│access_group │all │ └───────┴─────────────────┴─┴─┴──────────────────────────┴────────────────────────────────┘ |
Выполнение команды после синхронизации:
domain/test_domain/alias/info 42007 Aliases in domain test_domain ┌───────┬─────────────────┬─┬─┬──────────────────────────┬────────────────────────────────┐ │Address│ Iface │A│W│ Property │ Value │ ├───────┼─────────────────┼─┼─┼──────────────────────────┼────────────────────────────────┤ │42007 │42007@test_domain│ │ │user_agent │"VP-15P/2.7.6.34 sofia-sip/1.12"│ │ │ │ │ │uid │06b4e88042702a1c │ │ │ │ │D│timezone │'UTC+07:00' │ │ │ │ │ │terminal_type │smart │ │ │ │ │ │subscriber_portal\password│abf │ │ │ │ │ │subscriber_portal\login │"42007" │ │ │ │ │D│ss\mgm\telephone │enabled │ │ │ │ │p│screening │networkProvided │ │ │ │ │ │profile │"user_default" │ │ │ │ │D│pin │"1111" │ │ │ │ │p│npi │isdnTelephony │ │ │ │ │p│ni │private │ │ │ │ │p│nai │subscriberNumber │ │ │ │ │d│media-profile │"default" │ │ │ │ │ │ldap\id │42007 │ │ │ │ │ │isIfaceActive │true │ │ │ │ │ │email │"petrov.petr" │ │ │ │ │ │displayName │petrov.petr │ │ │ │ │p│category │ordinarySubscriber │ │ │ │ │d│access_type │access_type0 │ │ │ │ │p│access_group │all │ └───────┴─────────────────┴─┴─┴──────────────────────────┴────────────────────────────────┘ Legend: A: "Is active" alias flag: *: Passive alias <Empty>: Active alias W: Where property is set: a: This is address property in domain A: This is global address property d: This is domain property D: This is default property i: This is iface property in domain g: This is global property p: This is alias'es profile's property <Empty>: This is alias property Note: * char in W column means "Can't read alias info". Error reason in value column in this case |
Активация интеграции в КЦ задается при установке или реконфигурации пакета ecss-cc-ui.
sudo dpkg-reconfigure ecss-cc-ui |
Вопросы, задаваемые при установке пакета ecss-cc-ui приведены в разделе Приложение Д. Вопросы, задаваемые при инсталляции пакетов ECSS.
Для авторизации агентов Call-центра через LDAP/AD создайте конфигурацию LDAP/AD в рамках домена, после чего на уровне настроек Call-центра укажите, через какое соединение будет происходить авторизация агентов. Для этого выполните команду:
domain/<DOMAIN>/cc/properties/set ldap_server_id <LDAP_ID>
где
domain/test_domain/cc/properties/set ldap_server_id ldap_eltex Property "ldap_server_id" successfully changed from: undefined to <<"ldap_eltex">>. |
Активировуйте авторизацию через LDAP:
domain/<DOMAIN>/сс/properties/set ldap_authentication_enabled true
где
domain/test_domain/cc/properties/set ldap_authentication_enabled true Property "ldap_authentication_enabled" successfully changed from: false to true. |
Для авторизации агента Call-центра LDAP/AD пропишите свойство ldap_username — имя учетной записи LDAP/AD:
domain/<DOMAIN>/cc/agent/set <AGENT_ID> ldap_username <login>
где
domain/test_domain/cc/agent/set 100 ldap_username 42009 ok Configuration changes will be applied after re-login |
domain/test_domain/cc/agent/info 100 ┌─────┬─────────────────────────────────────────┐ │Agent│ Properties │ ├─────┼─────────────────────────────────────────┤ │100 │agent_id <<"100">> │ │ │auto_complete true │ │ │call_recording true │ │ │check_sip_reg_when_distribute false │ │ │check_sip_reg_when_login false │ │ │description │ │ │display_name │ │ │group default │ │ │ldap_username <<"42009">>│ │ │load 1 │ │ │only_one_session true │ │ │password 1111 │ │ │pickup true │ │ │profile 103 │ │ │skills │ │ │supervisor true │ │ │working_timeout 120 min. │ └─────┴─────────────────────────────────────────┘ |
Перелогиньте агента СС, авторизация будет происходить по LDAP/AD. Также можно продолжать использовать для авторизации идентификатор агента СС и пароль агента СС. |



Для того чтобы аутентификация пользователей конкретной инсталляции портала абонента осуществлялась через LDAP (Active Directory), а не через собственную базу портала абонента, введите в консоли cocon следующее:
Настройте или измените параметры:
domain/<DOMAIN>/subscriber-portal/properties/set ldap_server_id <LDAP_ID>
где:
domain/test_domain/subscriber-portal/properties/set ldap_server_id ldap_eltex Property "ldap_server_id" successfully changed from: ldap_test to ldap_eltex. |
Активируйте авторизацию через LDAP:
domain/<DOMAIN>/subscriber-portal/properties/set ldap_authentication_enabled true
где
domain/test_domain/subscriber-portal/properties/set ldap_authentication_enabled true Property "ldap_authentication_enabled" successfully changed from: false to true. |
Результат выполнения команды:
domain/test_domain/subscriber-portal/properties/info ┌───────────────────────────┬───────────┬──────────────────────────────────────────────────────────────────────────────────────┐ │ Property │ Domain │ Value │ ├───────────────────────────┼───────────┼──────────────────────────────────────────────────────────────────────────────────────┤ │auto_create_account │test_domain│true │ │auto_delete_account │test_domain│true │ │connection │test_domain│Host: 127.0.0.1; Database: ecss_subscribers; Login: subscribers; Password: subscribers│ │enable │test_domain│true │ │expire_time │test_domain│3600 │ │ldap_authentication_enabled│test_domain│true │ │ldap_server_id │test_domain│ldap_eltex │ │web_sp_server │test_domain│http://sp.web.ecss/ │ └───────────────────────────┴───────────┴──────────────────────────────────────────────────────────────────────────────────────┘ |
Задайте логин от портала абонента в настройках alias:
domain/<DOMAIN>/alias/set <address range> <iface group> <name range> subscriber_portal\login <login>
где
domain/test_domain/alias/set 42009 sip 42009@test_domain subscriber_portal\login 42009 There are aliases within domain test_domain affected by settings property subscriber_portal\login: 42009 <-> 06b2992e97da9a69 Legend: a: Setup alias address i: Setup alias inteface !: Setup broken. Alias allready exists *: Setup broken. Alias not exists L: Setup broken. No free subscriber licences. x: Setup broken. Unexpected error <empty>: Successfull setup |
Результат выполнения команды:
domain/test_domain/alias/info 42009 sip 42009@test_domain Aliases in domain test_domain ┌───────┬─────────────────┬─┬─┬───────────────────────┬────────────────────────────────┐ │Address│ Iface │A│W│ Property │ Value │ ├───────┼─────────────────┼─┼─┼───────────────────────┼────────────────────────────────┤ │42009 │42009@test_domain│ │ │user_agent │"VP-15P/2.7.6.34 sofia-sip/1.12"│ │ │ │ │ │uid │06b020400d09f86e │ │ │ │ │D│timezone │'UTC+07:00' │ │ │ │ │ │terminal_type │smart │ │ │ │ │ │subscriber_portal\login│"42009" │ │ │ │ │D│ss\mgm\telephone │enabled │ │ │ │ │p│screening │networkProvided │ │ │ │ │ │profile │"user_default" │ │ │ │ │D│pin │"1111" │ │ │ │ │p│npi │isdnTelephony │ │ │ │ │p│ni │private │ │ │ │ │p│nai │subscriberNumber │ │ │ │ │d│media-profile │"default" │ │ │ │ │ │ldap\id │42009 │ │ │ │ │ │isIfaceActive │true │ │ │ │ │ │email │"ivanov.ivan" │ │ │ │ │ │displayName │ivanov.ivan │ │ │ │ │p│category │ordinarySubscriber │ │ │ │ │d│access_type │access_type0 │ │ │ │ │p│access_group │all │ └───────┴─────────────────┴─┴─┴───────────────────────┴────────────────────────────────┘ Legend: A: "Is active" alias flag: *: Passive alias <Empty>: Active alias W: Where property is set: a: This is address property in domain A: This is global address property d: This is domain property D: This is default property i: This is iface property in domain g: This is global property p: This is alias'es profile's property <Empty>: This is alias property Note: * char in W column means "Can't read alias info". Error reason in value column in this case |
В случае использования LDAP в качестве авторизации, выставлять свойство subscriber_portal\password не нужно. |
В приложении Портал абонента ("Subscriber portal") включите LDAP/AD авторизацию:

На сервере LDAP/AD сделайте учетную запись абонента. Проверьте с данной учетной записью вход на портал абонента.
После выполнения настроек приложение "Портал абонента" готово для использования. См. раздел Портал абонента.
Модификация cgpn/cdpn может быть востребована при установлении SIP-соединения TrueConf. Для данного типа соединения требуется передавать информацию о идентификации абонента в символьном виде (например, mikhail.svetlov@test.ru). В ECSS информация об абоненте сохраняется в виде абонентского номера (например, 2000 посылается в invite-запросе в формате 2000@test.ru). Для установления соединения с TrueConf требуется выполнить модификацию 2000 → mikhail.svetlov и в обратном направлении mikhail.svetlov → 2000.
Для того чтобы SIP-адаптер начал обрабатывать символьные RURI, необходимо включить обработку символьных RURI:
/domain/<DOMAIN>/sip/properties/set non_telephone_number_allow true
domain/test_domain/sip/properties/set non_telephone_number_allow true Property "non_telephone_number_allow" successfully changed from: false to true. |
"Сервер модификации" — надстройка над обычным LDAP/AD-сервером, настроенным ранее. Эти параметры можно настроить только через CoCon:
/domain/<DOMAIN>/modificators/ldap/set <SERVER_NAME> internal_attribute <INTERNAL_ATTR>/domain/<DOMAIN>/modificators/ldap/set <SERVER_NAME> external_attribute <EXTERNAL_ATTR>/domain/<DOMAIN>/modificators/ldap/set <SERVER_NAME> cache_ttl <CACHE_TTL>
где:
domain/test_domain/modificators/ldap/set ldap_eltex internal_attribute telephoneNumber LDAP server' ldap_eltex property "internal_attribute" successfully updated domain/test_domain/modificators/ldap/set ldap_eltex external_attribute mail LDAP server' ldap_eltex property "external_attribute" successfully updated domain/test_domain/modificators/ldap/set ldap_eltex cache_ttl 1000 LDAP server' ldap_eltex property "cache_ttl" successfully updated |
Контекст модификации можно настроить через через CoCon:domain/<DOMAIN>/modificators/edit <MODIFICATION_CONTEXT>
где:
Пример:
<?xml version="1.0" encoding="UTF-8"?>
<modificators xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_modificators.xsd" description="" name="ldap">
<in>
<rule name="in_local_calls">
<conditions/>
<actions>
<external_modification service="ldap_modification_service" id="ldap_eltex" 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_eltex" timeout="5000" args="["cgpn","cdpn"]"/>
</actions>
<result>
<finish/>
</result>
</rule>
</out>
</modificators> |
Данный пример контекста модификации преобразует только вызовы с символьного RURI на символьный RURI с транка, а правило по выходу ожидает, что оба номера можно будет преобразовать, поскольку, если LDAP-сервер не сможет отобразить хоть одно из запрашиваемых полей, внешняя модификация будет провалена! |
где:
Далее, созданный контекст модификации выставляется на интерфейс транка:
/domain/<DOMAIN>/iface/user-set <OWNER> <GROUP> <TRUNK> modificator <MODIFICATION_CONTEXT>
Пример:
domain/test_domain/iface/user-set sip1 sip trunkA modificator ldap Property 'modificator' successfully changed to 'ldap' for interfaces: trunkA |
Аналогично, модификацию можно настроить через веб:

Добавьте созданный модификатор на транк:

В текущий момент работает только один режим кэширования результатов внешней маршрутизации с помощью серверов LDAP/AD - only_resp. В этом режиме кэшируются только ответы на запросы в моменты инициализации вызова. Хранение кеша осуществляется с настраиваемым периодом (параметр cache_ttl выше). Есть возможность просмотра и очистки кэша с помощью следующих команд:
/domain/<DOMAIN>/modificators/ldap/cache/clean */<SERVER_NAME>/domain/<DOMAIN>/modificators/ldap/cache/info */<SERVER_NAME>
Работа команды до запроса на LDAP-сервер:
domain/test_domain/modificators/ldap/cache/info * LDAP cache *: ┌──┬────────────────────────────────────────┬────────────────────────────────────────┬────────────────────────────────────────┐ │Id│ Internal attributes │ External attrubutes │ Created At │ ├──┼────────────────────────────────────────┼────────────────────────────────────────┼────────────────────────────────────────┤ └──┴────────────────────────────────────────┴────────────────────────────────────────┴────────────────────────────────────────┘ |
Работа команды после запроса на LDAP-сервер:
domain/test_domain/modificators/ldap/cache/info * LDAP cache *: ┌──────────┬────────────────────────────────────────┬────────────────────────────────────────┬────────────────────────────────────────┐ │ Id │ Internal attributes │ External attrubutes │ Created At │ ├──────────┼────────────────────────────────────────┼────────────────────────────────────────┼────────────────────────────────────────┤ │ldap_eltex│42007 │petrov.petr │2024/05/30 09:28:09 │ │ldap_eltex│42009 │ivanov.ivan │2024/05/30 09:28:09 │ └──────────┴────────────────────────────────────────┴────────────────────────────────────────┴────────────────────────────────────────┘ |
Работа команды после отчистки кэша:
domain/test_domain/modificators/ldap/cache/clean * LDAP cache for all successfully cleaned with result: ok. domain/test_domain/modificators/ldap/cache/info * LDAP cache *: ┌──┬────────────────────────────────────────┬────────────────────────────────────────┬────────────────────────────────────────┐ │Id│ Internal attributes │ External attrubutes │ Created At │ ├──┼────────────────────────────────────────┼────────────────────────────────────────┼────────────────────────────────────────┤ └──┴────────────────────────────────────────┴────────────────────────────────────────┴────────────────────────────────────────┘ |
Отображение тестового трейса:



Учетная запись абонента на LDAP-сервере: