Skip to main content

Skinny LDAP Schema

About

by Mathieu Parent last updated 2011.03.08 and archived here for others to peruse.

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