diff options
Diffstat (limited to 'trunk/contrib/scripts/asterisk.ldap-schema')
-rw-r--r-- | trunk/contrib/scripts/asterisk.ldap-schema | 562 |
1 files changed, 562 insertions, 0 deletions
diff --git a/trunk/contrib/scripts/asterisk.ldap-schema b/trunk/contrib/scripts/asterisk.ldap-schema new file mode 100644 index 000000000..c69d51a70 --- /dev/null +++ b/trunk/contrib/scripts/asterisk.ldap-schema @@ -0,0 +1,562 @@ +# +# Copyright (c) 2007 Suretec Systems Ltd. - <http://www.suretecsystems.com/> +# +# Asterisk LDAP Schema +# +# Digium root OID (http://www.iana.org/assignments/enterprise-numbers) +# +# 1.3.6.1.4.1.22736 +# 1.3.6.1.4.1.22736.5 LDAP elements +# 1.3.6.1.4.1.22736.5.4 Attribute Types +# 1.3.6.1.4.1.22736.5.5 Object Classes +# +objectIdentifier AsteriskRoot 1.3.6.1.4.1.22736 +objectIdentifier AsteriskLDAP AsteriskRoot:5 + +############################################################################# +# Attribute group OIDs. e.g.: objectIdentifier AstAttrType AsteriskLDAP:4 +############################################################################# +objectIdentifier AstAttrType AsteriskLDAP:4 + + +############################################################################# +# Attribute OIDs e.g.: objectIdentifier AstContext AstAttrType:1 +############################################################################# +objectIdentifier AstContext AstAttrType:1 +objectIdentifier AstExtension AstAttrType:2 +objectIdentifier AstPriority AstAttrType:3 +objectIdentifier AstApplication AstAttrType:4 +objectIdentifier AstApplicationData AstAttrType:5 +objectIdentifier AstAccountAMAFlags AstAttrType:6 +objectIdentifier AstAccountCallerID AstAttrType:7 +objectIdentifier AstAccountContext AstAttrType:8 +objectIdentifier AstAccountMailbox AstAttrType:9 +objectIdentifier AstMD5secret AstAttrType:10 +objectIdentifier AstAccountDeny AstAttrType:11 +objectIdentifier AstAccountPermit AstAttrType:12 +objectIdentifier AstAccountQualify AstAttrType:13 +objectIdentifier AstAccountType AstAttrType:14 +objectIdentifier AstAccountDisallowedCodec AstAttrType:15 +objectIdentifier AstAccountExpirationTimestamp AstAttrType:16 +objectIdentifier AstAccountRegistrationContext AstAttrType:17 +objectIdentifier AstAccountRegistrationExten AstAttrType:18 +objectIdentifier AstAccountNoTransfer AstAttrType:19 +objectIdentifier AstAccountCallGroup AstAttrType:20 +objectIdentifier AstAccountCanReinvite AstAttrType:21 +objectIdentifier AstAccountDTMFMode AstAttrType:22 +objectIdentifier AstAccountFromUser AstAttrType:23 +objectIdentifier AstAccountFromDomain AstAttrType:24 +objectIdentifier AstAccountFullContact AstAttrType:25 +objectIdentifier AstAccountHost AstAttrType:26 +objectIdentifier AstAccountInsecure AstAttrType:27 +objectIdentifier AstAccountNAT AstAttrType:28 +objectIdentifier AstAccountPickupGroup AstAttrType:29 +objectIdentifier AstAccountPort AstAttrType:30 +objectIdentifier AstAccountRestrictCID AstAttrType:31 +objectIdentifier AstAccountRTPTimeout AstAttrType:32 +objectIdentifier AstAccountRTPHoldTimeout AstAttrType:33 +objectIdentifier AstAccountRealmedPassword AstAttrType:34 +objectIdentifier AstAccountAllowedCodec AstAttrType:35 +objectIdentifier AstAccountMusicOnHold AstAttrType:36 +objectIdentifier AstAccountCanCallForward AstAttrType:37 +objectIdentifier AstAccountSecret AstAttrType:38 +objectIdentifier AstAccountName AstAttrType:39 +objectIdentifier AstConfigFilename AstAttrType:40 +objectIdentifier AstConfigCategory AstAttrType:41 +objectIdentifier AstConfigCategoryMetric AstAttrType:42 +objectIdentifier AstConfigVariableName AstAttrType:43 +objectIdentifier AstConfigVariableValue AstAttrType:44 +objectIdentifier AstConfigCommented AstAttrType:45 + + +############################################################################# +# Object Class OIDs +############################################################################# +objectIdentifier AstObjectClass AsteriskLDAP:2 +objectIdentifier AsteriskExtension AstObjectClass:1 +objectIdentifier AsteriskIAXUser AstObjectClass:2 +objectIdentifier AsteriskSIPUser AstObjectClass:3 +objectIdentifier AsteriskConfig AstObjectClass:4 + + +############################################################################# +# attribute definitions +# +# OID (the first arg) comes from the objectIdentifier defined above +# +# NAME should be the same as objectIdentifier +# +# DESC should be the description of the attribute +# +# EQUALITY is the rule to use when doing a search/compare for an +# attribute value. +# +# SUBSTR is the rule to use when doing a substring search (*foo*) +# +# SYNTAX is the syntax (i.e., type) of the attribute. We should +# probably stick to syntaxes: +# +# 1.3.6.1.4.1.1466.115.121.1.15 -> directoryString (UTF-8 string) +# 1.3.6.1.4.1.1466.115.121.1.26 -> IA5String (ASCII String) +# 1.3.6.1.4.1.1466.115.121.1.27 -> integer (Integer value) +# +# SINGLE-VALUE should be present if only one instance of this +# attribute is allowed within an entry. +# +# {32} is the allowed length +# +# e.g.: +# +# attributetype ( AstExample +# NAME ( 'AstExample' ) +# DESC 'Asterisk Example Attribute' +# EQUALITY caseIgnoreMatch +# SUBSTR caseIgnoreSubstringsMatch +# SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32} +# SINGLE-VALUE ) +# +############################################################################# + +attributetype ( AstContext + NAME 'AstContext' + DESC 'Asterisk Context' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstExtension + NAME 'AstExtension' + DESC 'Asterisk Extension' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstPriority + NAME 'AstPriority' + DESC 'Asterisk Priority' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstApplication + NAME 'AstApplication' + DESC 'Asterisk Application' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstApplicationData + NAME 'AstApplicationData' + DESC 'Asterisk Application Data' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountAMAFlags + NAME 'AstAccountAMAFlags' + DESC 'Asterisk Account AMA Flags' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountCallerID + NAME 'AstAccountCallerID' + DESC 'Asterisk Account CallerID' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountContext + NAME 'AstAccountContext' + DESC 'Asterisk Account Context' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountMailbox + NAME 'AstAccountMailbox' + DESC 'Asterisk Account Mailbox' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstMD5secret + NAME 'AstMD5secret' + DESC 'Asterisk Account MD5 Secret' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountDeny + NAME 'AstAccountDeny' + DESC 'Asterisk Account Deny' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountPermit + NAME 'AstAccountPermit' + DESC 'Asterisk Account Permit' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountQualify + NAME 'AstAccountQualify' + DESC 'Asterisk Account Qualify' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountType + NAME 'AstAccountType' + DESC 'Asterisk Account Type' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountDisallowedCodec + NAME 'AstAccountDisallowedCodec' + DESC 'Asterisk Account Disallowed Codec' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountExpirationTimestamp + NAME 'AstAccountExpirationTimestamp' + DESC 'Asterisk Account Allowed Codec' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountRegistrationContext + NAME 'AstAccountRegistrationContext' + DESC 'Asterisk Account AMA Flags' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountRegistrationExten + NAME 'AstAccountRegistrationExten' + DESC 'Asterisk Account AMA Flags' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountNoTransfer + NAME 'AstAccountNoTransfer' + DESC 'Asterisk Account AMA Flags' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountCallGroup + NAME 'AstAccountCallGroup' + DESC 'Asterisk Account Call Group' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountCanReinvite + NAME 'AstAccountCanReinvite' + DESC 'Asterisk Account Can Reinvite' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountDTMFMode + NAME 'AstAccountDTMFMode' + DESC 'Asterisk Account DTMF Flags' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountFromUser + NAME 'AstAccountFromUser' + DESC 'Asterisk Account From User' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountFromDomain + NAME 'AstAccountFromDomain' + DESC 'Asterisk Account From Domain' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountFullContact + NAME 'AstAccountFullContact' + DESC 'Asterisk Account Full Contact' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountHost + NAME 'AstAccountHost' + DESC 'Asterisk Account Host' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountInsecure + NAME 'AstAccountInsecure' + DESC 'Asterisk Account Insecure' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountNAT + NAME 'AstAccountNAT' + DESC 'Asterisk Account NAT' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountPickupGroup + NAME 'AstAccountPickupGroup' + DESC 'Asterisk Account PickupGroup' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountPort + NAME 'AstAccountPort' + DESC 'Asterisk Account Port' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountRestrictCID + NAME 'AstAccountRestrictCID' + DESC 'Asterisk Restrict CallerID' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountRTPTimeout + NAME 'AstAccountRTPTimeout' + DESC 'Asterisk RTP Timeout' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountRTPHoldTimeout + NAME 'AstAccountRTPHoldTimeout' + DESC 'Asterisk RTP Hold Timeout' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountRealmedPassword + NAME 'AstAccountRealmedPassword' + DESC 'Asterisk RTP Hold Timeout' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountAllowedCodec + NAME 'AstAccountAllowedCodec' + DESC 'Asterisk Account Allowed Codec' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountMusicOnHold + NAME 'AstAccountMusicOnHold' + DESC 'Asterisk Account Allowed Codec' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountCanCallForward + NAME 'AstAccountCanCallForward' + DESC 'Asterisk Can CAll Forward' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountSecret + NAME 'AstAccountSecret' + DESC 'Asterisk Can CAll Forward' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstAccountName + NAME 'AstAccountName' + DESC 'Asterisk Account Username' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstConfigFilename + NAME 'AstConfigFilename' + DESC 'Asterisk LDAP Configuration Filename' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstConfigCategory + NAME 'AstConfigCategory' + DESC 'Asterisk LDAP Configuration Category' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstConfigCategoryMetric + NAME 'AstConfigCategoryMetric' + DESC 'Asterisk LDAP Configuration Category Metric' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstConfigVariableName + NAME 'AstConfigVariableName' + DESC 'Asterisk LDAP Configuration Variable Name' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstConfigVariableValue + NAME 'AstConfigVariableValue' + DESC 'Asterisk LDAP Configuration Variable Value' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +attributetype ( AstConfigCommented + NAME 'AstConfigCommented' + DESC 'Asterisk LDAP Configuration Commented' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) + +############################################################################# +# Object Class definitions +# +# This is where to define the object classes. Object classes are used +# to define which attribute MAY (optional) or MUST (required) belong +# to an entry. +# +# Classes can be AUXILIARY or STRUCTURAL. An entry in the directory +# must have one and only one structural class, but can have many +# AUXILIARY classes. +# +############################################################################# + +objectclass ( AsteriskExtension + NAME 'AsteriskExtension' + DESC 'PBX Extension Information for Asterisk' + SUP top AUXILIARY + MUST cn + MAY ( + AstContext $ + AstExtension $ + AstPriority $ + AstApplication $ + AstApplicationData + ) + ) + +############################################################################# +# +# AsteriskIAXUser and AsteriskSIPUser extend AsteriskExtension. These +# represent real accounts in Asterisk. +# +# NOTE: They are defined as AUXILIARY in case they need to be mixed with an +# existing directory deployment. +# +############################################################################# + +objectclass ( AsteriskIAXUser + NAME 'AsteriskIAXUser' + DESC 'IAX2 User information for Asterisk' + SUP AsteriskExtension AUXILIARY + MUST cn + MAY ( + AstAccountAMAFlags $ + AstAccountCallerID $ + AstAccountContext $ + AstAccountFullContact $ + AstAccountHost $ + AstAccountMailbox $ + AstMD5secret $ + AstAccountDeny $ + AstAccountPermit $ + AstAccountPort $ + AstAccountQualify $ + AstAccountType $ + AstAccountDisallowedCodec $ + AstAccountExpirationTimestamp $ + AstAccountRegistrationContext$ + AstAccountRegistrationExten $ + AstAccountNoTransfer $ + AstAccountName + ) + ) + +objectclass ( AsteriskSIPUser + NAME 'AsteriskSIPUser' + DESC 'SIP User information for Asterisk' + SUP AsteriskExtension AUXILIARY + MUST cn + MAY ( + AstAccountAMAFlags $ + AstAccountCallGroup $ + AstAccountCallerID $ + AstAccountCanReinvite $ + AstAccountContext $ + AstAccountDTMFMode $ + AstAccountFromUser $ + AstAccountFromDomain $ + AstAccountFullContact $ + AstAccountHost $ + AstAccountInsecure $ + AstAccountMailbox $ + AstAccountRealmedPassword $ + AstAccountNAT $ + AstAccountDeny $ + AstAccountPermit $ + AstAccountPickupGroup $ + AstAccountPort $ + AstAccountQualify $ + AstAccountRestrictCID $ + AstAccountRTPTimeout $ + AstAccountRTPHoldTimeout $ + AstAccountType $ + AstAccountDisallowedCodec $ + AstAccountAllowedCodec $ + AstAccountMusicOnHold $ + AstAccountExpirationTimestamp $ + AstAccountRegistrationContext $ + AstAccountRegistrationExten $ + AstAccountCanCallForward $ + AstAccountSecret $ + AstAccountName + ) + ) + +############################################################################# +# +# AsteriskIAXUser and AsteriskSIPUser extend AsteriskExtension. These +# represent real accounts in Asterisk. +# +# NOTE: They are defined as AUXILIARY in case they need to be mixed with an +# existing directory deployment. +# +############################################################################# + +objectclass ( AsteriskConfig + NAME 'AsteriskConfig' + DESC 'Asterisk configuration Information' + SUP top AUXILIARY + MUST cn + MAY ( + AstConfigFilename $ + AstConfigCategory $ + AstConfigCategoryMetric $ + AstConfigVariableName $ + AstConfigVariableValue $ + AstConfigCommented + ) + ) + |