Skinny LDAP Schema
About
by Mathieu Parent last updated 2011.03.08 and archived here for others to peruse.
Click here to expand Table of Contents
skinny.schema
##
## FreeSWITCH Attribute and Objectclass Definitions
## for Skinny Call Control Protocol (SCCP)
##
## Maintained by: Mathieu Parent <math.parent@gmail.com>
## See http://wiki.freeswitch.org/wiki/Mod_skinny
# Attributes .1002.1
# ==================
# skinny device attributes .1002.1.1
# ----------------------------------
attributetype ( 1.3.6.1.4.1.27880.1002.1.1.1 NAME 'skinnyDeviceName'
DESC 'Skinny Call Control Protocol device name'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
ORDERING caseExactOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.1.2 NAME 'skinnyDeviceOwnerUserId'
DESC 'Skinny Call Control Protocol device owner user id'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.1.3 NAME 'skinnyDeviceUserLocale'
DESC 'Skinny Call Control Protocol device user locale'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.1.4 NAME 'skinnyDeviceNetworkLocale'
DESC 'Skinny Call Control Protocol device network locale'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.1.5 NAME 'skinnyDeviceButtonTemplate'
DESC 'Skinny Call Control Protocol device phone button template'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.1.6 NAME 'skinnyDeviceSoftkeyTemplate'
DESC 'Skinny Call Control Protocol device softkey template'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.1.7 NAME 'skinnyDeviceFirmware'
DESC 'Skinny Call Control Protocol device firmware'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.1.8 NAME 'skinnyDeviceType'
DESC 'Skinny Call Control Protocol device type'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
# skinny button attributes .1002.1.2
# ----------------------------------
attributetype ( 1.3.6.1.4.1.27880.1002.1.2.1 NAME 'skinnyButtonPosition'
DESC 'Skinny Call Control Protocol button position'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.2.2 NAME 'skinnyButtonType'
DESC 'Skinny Call Control Protocol button type'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.2.3 NAME 'skinnyButtonLabel'
DESC 'Skinny Call Control Protocol button label'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
ORDERING caseExactOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.2.4 NAME 'skinnyButtonValue'
DESC 'Skinny Call Control Protocol button value'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
ORDERING caseExactOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
# skinny line button attributes .1002.1.3
# ---------------------------------------
attributetype ( 1.3.6.1.4.1.27880.1002.1.3.1 NAME 'skinnyLineCallerName'
DESC 'Skinny Call Control Protocol line button caller name'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
ORDERING caseExactOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.3.2 NAME 'skinnyLineForwardAll'
DESC 'Skinny Call Control Protocol line button forward all'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
ORDERING caseExactOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.3.3 NAME 'skinnyLineForwardBusy'
DESC 'Skinny Call Control Protocol line button forward busy'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
ORDERING caseExactOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.3.4 NAME 'skinnyLineForwardNoAnswer'
DESC 'Skinny Call Control Protocol line button forward no answer'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
ORDERING caseExactOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.27880.1002.1.3.5 NAME 'skinnyLineNoAnswerRingDuration'
DESC 'Skinny Call Control Protocol line button no answer ring duration'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
# Object Classes .1002.2
# ======================
objectclass (1.3.6.1.4.1.27880.1002.2.1 NAME 'skinnyDevice' SUP top AUXILIARY
DESC 'Skinny Call Control Protocol device (v1.0)'
MAY ( skinnyDeviceName $ description $ macAddress $ ipHostNumber $
skinnyDeviceOwnerUserId $ skinnyDeviceUserLocale $ skinnyDeviceNetworkLocale $
skinnyDeviceButtonTemplate $ skinnyDeviceSoftkeyTemplate $ skinnyDeviceFirmware $
skinnyDeviceType))
objectclass (1.3.6.1.4.1.27880.1002.2.2 NAME 'skinnyButton' SUP top STRUCTURAL
DESC 'Skinny Call Control Protocol button (v1.0)'
MUST ( skinnyButtonPosition $ skinnyButtonType $ skinnyButtonLabel )
MAY ( skinnyButtonValue ))
objectclass (1.3.6.1.4.1.27880.1002.2.3 NAME 'skinnyLineButton' SUP skinnyButton
DESC 'Skinny Call Control Protocol line button (v1.0)'
MUST ( skinnyButtonValue )
MAY ( skinnyLineCallerName ))
objectclass (1.3.6.1.4.1.27880.1002.2.4 NAME 'skinnySharedLine' SUP top STRUCTURAL
DESC 'Skinny Call Control Protocol shared line button (v1.0)'
MUST ( skinnyButtonValue )
MAY ( skinnyLineForwardAll $ skinnyLineForwardBusy $
skinnyLineForwardNoAnswer $ skinnyLineNoAnswerRingDuration ))
How to use it
There are missing pieces, see (DEPRECATED) (Administration and management).
Retrieving data:
- Search for objectClass=skinnyDevice having skinnyDeviceName=SEP001120AABBCC or macAddress=00:11:20:AA:BB:CC
- fill some of the <params> using some of the device object attributes
- Search for objectClass=skinnyButton (sub) within the device, and loop
- if button is a line: search for objectClass=skinnySharedLine and value to have eventual shared attributes
- else all information is here
NB: there may be special devices without skinnyDeviceName or macAddress ; they represent device defaults (by type if skinnyDeviceType is set).
This (outdated) example uses GOsa:
version: 1
dn: cn=tel-parentm,ou=phones,ou=systems,dc=example,dc=net
objectClass: top
objectClass: goFonHardware
objectClass: skinnyDevice
cn: tel-parentm
ipHostNumber: 10.128.10.11
macAddress: 00:11:20:AA:BB:CC
goFonDefaultIP: dynamic
goFonDmtfMode: rfc2833
goFonType: user
dn: skinnyButtonPosition=1,cn=tel-parentm,ou=phones,ou=systems,dc=example,dc
=net
objectClass: skinnyLineButton
objectClass: skinnyButton
objectClass: top
skinnyButtonLabel: Line 1
skinnyButtonPosition: 1
skinnyButtonType: Line
skinnyButtonValue: 7628
skinnyLineCallerName: Calling as 7628
dn: skinnyButtonPosition=3,cn=tel-parentm,ou=phones,ou=systems,dc=example,dc
=net
objectClass: skinnyLineButton
objectClass: skinnyButton
objectClass: top
skinnyButtonLabel: Line 3
skinnyButtonPosition: 3
skinnyButtonType: Line
skinnyButtonValue: 7610
skinnyLineCallerName: Calling as 7610
dn: skinnyButtonPosition=5,cn=tel-parentm,ou=phones,ou=systems,dc=example,dc
=net
objectClass: skinnyButton
objectClass: top
skinnyButtonLabel: Test
skinnyButtonPosition: 5
skinnyButtonType: SpeedDial
skinnyButtonValue: 7626
dn: skinnyButtonPosition=6,cn=tel-parentm,ou=phones,ou=systems,dc=example,dc
=net
objectClass: skinnyButton
objectClass: top
skinnyButtonLabel: Some URL
skinnyButtonPosition: 6
skinnyButtonType: ServiceUrl
skinnyButtonValue: http://phone-xml.berbee.com/menu.xml