Бери и создавай свою схему в разрезе всего что тут написал. основной затык у новичков вызывает создание индивидуальных OID. Где взять, как рассчитать. Ниче сложного нет.
1.3.6.1.4.1.4203.666.x.x.... - эта ветка считается экспериментальной/временной. Потом, если решение идет в массы - OID меняются уже на постоянные и уникальные.
Остальное все в доках. Мне как-то понадобилась централизованная авторизация/аутентификация для FreeSwitch IP PBX - пришлось сколхозить схему -
# Telephone Attributes
attributetype ( 1.3.6.1.4.1.4203.666.6273.2.1 NAME 'telephoneNumberAccessCode'
DESC 'Access code for telephoneNumber services'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )attributetype ( 1.3.6.1.4.1.4203.666.6273.2.2 NAME 'faxDeliveryMailbox'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
attributetype ( 1.3.6.1.4.1.4203.666.6273.2.3 NAME 'voiceDeliveryMailbox'
DESC 'Voice Mailbox'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.4.1.4203.666.6273.2.4 NAME 'phoneGroupName'
DESC 'Telephone Group Name'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.4.1.4203.666.6273.2.5 NAME 'registrar'
DESC 'The last serving registrar'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
objectclass ( 1.3.6.1.4.1.4203.666.6273.2.100 NAME 'telephoneNumberAccount'
DESC 'Telephone account'
SUP top STRUCTURAL
MUST ( telephoneNumber )
MAY ( userPassword $ telephoneNumberAccessCode $ macAddress $ faxDeliveryMailbox $ registrar ) )
objectclass ( 1.3.6.1.4.1.4203.666.6273.2.101 NAME 'phoneGroup'
DESC 'Telephone Group'
SUP top STRUCTURAL
MUST ( phoneGroupName )
MAY ( telephoneNumber $ description ) )
# Autoprovision options
attributetype ( 1.3.6.1.4.1.4203.666.6273.4.1 NAME 'provisionDeviceName'
DESC 'Autoprovision Device Name'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.4.1.4203.666.6273.4.2 NAME 'provisionOptionName'
DESC 'Autoprovision Option Name'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
attributetype ( 1.3.6.1.4.1.4203.666.6273.4.3 NAME 'provisionOptionValue'
DESC 'Autoprovision Option Value'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
objectclass ( 1.3.6.1.4.1.4203.666.6273.4.100 NAME 'autoprovisionRecord'
DESC 'Autoprovision option record'
STRUCTURAL
MUST ( provisionDeviceName $ provisionOptionName )
MAY ( provisionOptionValue ) )
# Autoprovision options end
В результате через OpenLDAP таскается все что для IP телефонии нужно, от аутентификации и авто-provisioning до автоматического роуминга телефонов - одна телефонная станция в одном офисе - сама знает на какой сервер в какой офис роутить звонок all over the world.