# # Copyright (c) 2007-2008 Suretec Systems Ltd. - # # Version: 3.1.5 # # Changes: # - Fixed wrong DESC - 07/05/2008 # # Author: Gavin Henry - # # 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 objectIdentifier AstAccountSubscribeContext AstAttrType:46 objectIdentifier AstAccountIpAddr AstAttrType:47 objectIdentifier AstAccountUserAgent AstAttrType:48 objectIdentifier AstAccountLastQualifyMilliseconds AstAttrType:49 ############################################################################# # 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 Expiration Timestamp' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountRegistrationContext NAME 'AstAccountRegistrationContext' DESC 'Asterisk Account Registration Context' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountRegistrationExten NAME 'AstAccountRegistrationExten' DESC 'Asterisk Account Registration Extension' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountNoTransfer NAME 'AstAccountNoTransfer' DESC 'Asterisk Account No Transfer' 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 Account Restrict CallerID' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountRTPTimeout NAME 'AstAccountRTPTimeout' DESC 'Asterisk Account RTP Timeout' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountRTPHoldTimeout NAME 'AstAccountRTPHoldTimeout' DESC 'Asterisk Account 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 Account Realmed Password' 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 Music On Hold' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountCanCallForward NAME 'AstAccountCanCallForward' DESC 'Asterisk Account 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 Account Secret' 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) attributetype ( AstAccountSubscribeContext NAME 'AstAccountSubscribeContext' DESC 'Asterisk subscribe context' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountIpAddr NAME 'AstAccountIpAddr' DESC 'Asterisk aaccount IP address' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountUserAgent NAME 'AstAccountUserAgent' DESC 'Asterisk account user context' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15) attributetype ( AstAccountLastQualifyMilliseconds NAME 'AstAccountLastQualifyMilliseconds' DESC 'Asterisk Account Last Qualify Milliseconds' 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 $ AstAccountLastQualifyMilliseconds ) ) 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 $ AstAccountSubscribeContext $ AstAccountIpAddr $ AstAccountUserAgent $ AstAccountLastQualifyMilliseconds ) ) ############################################################################# # # 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 ) )