Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Общий раздел => Тема начата: samsan от 21 Апрель 2017, 08:23:50
-
Доброго времени!
Просьба к уважаемым гуру направить на путь истинный новичка в LDAP:
Возникло желание запустить справочную книгу для телефонии. В стандартном варианте особых проблем не возникло.
Однако - использование справочника предполагается для телефонов с разными локациями. Как следствие, в зависимости от локации, номера и префиксы при обмене с телефонной книгой должны обрабатыватья и формироваться, из универсального 10- значного формата, для каждой локации отдельно.
Первая попытка состояла в настройке персональный фильтров для каждого телефона - увы не удачно из за особенностей формирования фильтров на телефоне.
Второй возможный вариант по моим представлениям, это обработка запроса на поиск и возврат данных в зависимости от имени пельзователя использованного при регистрации на сервере.
Однако пока не могу найти механизмы с помощью которых можно реализовать это задачу (
Это можно сделать с помощью BDB? Использовать Perl?
Дайте пожалуйста ссылочку-подсказку )
-
Здравствуйте! Для анализа задачи нужно больше информации.
1. Покажите запись каталога, в которой хранится телефонный номер, исходный формат номера.
2. В каталоге кроме телефонного справочника хранится что-то ещё?
3. С помощью какой программы Вы получаете номера на телефонах?
4. В каком виде должен быть представлен исходный номер на телефоне 1, телефоне 2 и т.д.
Егор
-
Егор,
>1. Покажите запись каталога, в которой хранится телефонный номер, исходный формат номера.
>2. В каталоге кроме телефонного справочника хранится что-то ещё?
dn: uid=674742, ou=people, dc=yealink,dc=rcs4
uid: 674742
telephoneNumber: 9785044064
mobile: 79131112223344
pager: 9785064064
objectClass: inetOrgPerson
sn: Иванов И.И.
cn: старший помошник
o: РЦС
uo: Отдел связи
>3. С помощью какой программы Вы получаете номера на телефонах?
Немного не ясен вопрос. На IP телефонах имеется встроенный клиент LDAP
При поступлении входящего звонка либо при наборе номера на сервер формируется запрос
( Filter: (|(pager=44064*)(telephoneNumber=44064*)(mobile=44064*)) ). Результаты поиска отображаются на дисплее телефона (Yealink T28).
>4. В каком виде должен быть представлен исходный номер на телефоне 1, телефоне 2 и т.д.
Исходнй номер может быть представлен во множестве форматов. Зависит от того по какой сети поступил вызов (местная корп, зоновая корп, городская, междугородняя. ) Полностью все виды префиксов и соттветствия префиксов в разных сетях описываются давольно емкими таблицами.
Пример, телефон А находится в тойже локации, телефон Б в другой.(другой город и другая корп зона):
Формат хранения 9785044064
Возможные форматы для входящего звонка с этого номера
на телефон А:
44064 местный корп
2294064 местный городской
на телефон Б:
05044064 зоновый корп
(7)3832294064 межгород
возможные форматы набора этого номера
с телефона А:
44064 местный корп
9 2294064 метн городской
стелефона Б:
0 5044064 зоновый корп
98 3832294064 межгород
-
Егор,
Забыл уточнить. Речь конечно идет об OpenLdap server.
-
Здравствуйте!
При поступлении входящего звонка либо при наборе номера на сервер формируется запрос
Не очень понятно, что Вам нужно получить из каталога при входящем звонке? При исходящем, как я понял, нужно при вводе нескольких цифр получать подсказку с вариантами номеров из справочника, один из которых можно принять и сделать звонок. Правильно ли я понимаю?
Возьмём вариант с исходящим звонком. Я не зря спрашивал про программное обеспечение LDAP-клиента: в зависимости от возможностей его настройки задачу либо в принципе не решить, либо стоит браться за её решение. Если настройка позволяет задавать фильтры только приведённого Вами типа:
(|(pager=44064*)(telephoneNumber=44064*)(mobile=44064*))
то, как Вы сами понимаете, необходимая запись просто не будет найдена. Нужно, чтобы было хотя бы так:
(|(pager=*44064*)(telephoneNumber=*44064*)(mobile=*44064*))
Если фильтры настраиваются и запись из каталога поднимается, и остаётся только из "общего" формата сделать конкретный для зоны, то стандартные механизмы манипуляции данными тут, к сожалению, не подойдут. Придётся писать посредника (прокси) на back-shell или back-perl, который примет запрос от клиента, сделает свой запрос в каталог, выполнит преобразование данных и вернёт преобразованные записи клиенту. На back-perl я, честно говоря, ни разу не пробовал, на back-shell есть некоторый опыт, например, можно посмотреть здесь (http://pro-ldap.ru/forum/index.php?topic=433.msg1169#msg1169). В общем, попытаться можно. Perl, как я понял, Вам предпочтительнее, так как таблица преобразований сложная. Что ж, не боги горшки обжигают, можно и с ним разобраться. Если что, готов помочь. Пишите.
Егор
-
Егор,
Большое спасибо!
Back-perl - то что мне нужно.
Буду разбираться )