File: ser.schema

package info (click to toggle)
kamailio 4.2.0-2%2Bdeb8u3
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 56,276 kB
  • sloc: ansic: 552,836; xml: 166,484; sh: 8,659; makefile: 7,676; sql: 6,235; perl: 3,487; yacc: 3,428; python: 1,457; cpp: 1,219; php: 1,047; java: 449; pascal: 194; cs: 40; awk: 27
file content (260 lines) | stat: -rw-r--r-- 7,980 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
#
# $Id$
#
# This is the default LDAP schema of SER for OpenLDAP.
# Written by Jan Janak <jan@iptel.org>.
#

#
# The root OID of IANA private enterprise numbers
#
objectIdentifier ianaPrivate 1.3.6.1.4.1

#
# The root OID of many LDAPv3 attributes
#
objectIdentifier ldap3OID ianaPrivate:1466

#
# The root OID assigned by the IANA to iptel.org
#
objectIdentifier iptelorg ianaPrivate:24960

#
# SER related objects and attributes
#
objectIdentifier ser	          iptelorg:0
objectIdentifier serLDAP          ser:1
objectIdentifier serAttributeType serLDAP:0
objectIdentifier serObjectClass   serLDAP:1

#
# Convenience macros for commonly used syntax OIDs
#
objectIdentifier ldapSyntax            ldap3OID:115.121.1
objectIdentifier stringSyntax          ldapSyntax:15
objectIdentifier octetStringSyntax     ldapSyntax:40
objectIdentifier bitStringSyntax       ldapSyntax:6
objectIdentifier intSyntax             ldapSyntax:27
objectIdentifier numericStringSyntax   ldapSyntax:36
objectIdentifier binarySyntax          ldapSyntax:5
objectIdentifier boolSyntax            ldapSyntax:7
objectIdentifier genTimeSyntax         ldapSyntax:24 

#
# This is the parent attribute type for various UID attributes of SER, such
# as serUID and serDID.
#
attributeType ( serAttributeType:0 
	NAME 'serUUID'
	DESC 'SER Universally Unique Identifier'
	SYNTAX stringSyntax
	SINGLE-VALUE 
 )

#
# serUID attribute stores universally unique identifiers of SER users, the
# identifier is an opaque string by default.
#
attributeType ( serAttributeType:1 NAME 'serUID'
	DESC 'SER User Identifier'
	SUP serUUID 
 )

#
# serDID attributes contain universally unique identifiers of virtual SER
# domains. They are used to group a bunch of domain names together in a
# single virtual domain.
#
attributeType ( serAttributeType:2 NAME 'serDID'
	DESC 'SER Domain Identifier'
	SUP serUUID
 )

#
# digesetUsername attribute contains the value of username field from
# digest authentication credentials as specified in RFC2617. This attribute,
# together with digestRealm, is used by SER during digest authentication to
# lookup credentaials of a particular user.
#
attributeType ( serAttributeType:3 NAME 'digestUsername'
	DESC 'SIP Digest Authentication username'
	SYNTAX stringSyntax
	EQUALITY caseIgnoreMatch
	SINGLE-VALUE
 )

#
# digestRealm attribute contains the value of realm field from digest
# authentication credentials as specified in RFC2617. This attribute, 
# together with digestUsername, is used by SER during digest authentication 
# to lookup credentials of a particular user.
#
attributeType ( serAttributeType:4 NAME 'digestRealm'
	DESC 'SIP Digest Authentication realm attribute'
	SYNTAX stringSyntax
	EQUALITY caseIgnoreMatch
	SINGLE-VALUE
 )

#
# digestPassword attribute contains the plain-text password for digest 
# authentication (see RFC2617)
#
attributeType ( serAttributeType:5 NAME 'digestPassword'
	DESC 'SIP Digest Authentication password'
	SYNTAX octetStringSyntax
	EQUALITY octetStringMatch
	SINGLE-VALUE
 )

#
# The attribute serFlags contains various SER and SERWeb related flags,
# the flags are used to mark entries as deleted or disabled, they are
# used to mark entries that are exclusively for SER or SERWeb, and so on.
# The maximum length of the bit string fields is 32 bits, the most
# significant bits of values longer than 32 will be ignored.
#
attributeType ( serAttributeType:6 NAME 'serFlags'
	DESC 'SER flags'
	SYNTAX bitStringSyntax
	EQUALITY bitStringMatch
	SINGLE-VALUE
 )

#
# This attribute contains the HA1 string as defined in RFC2617. The 
# string is an MD5 hash of digest username, realm, and password. 
# See RFC2617 for more details. SER is using either HA1 or plain-text
# password (depending on configuration) when verifying digest credentials.
#
attributeType ( serAttributeType:7 NAME 'digestHA1'
    DESC 'Digest Authentication HA1 String'
    SYNTAX octetStringSyntax
    EQUALITY octetStringMatch
    SINGLE-VALUE
 )

#
# This attribute contains the HA1 string as defined in RFC2617. This is
# similar to digestHA1 attribute, except that the MD5 hash in digestHA1b
# also includes a domain part in username, so the username is of form
# user@domain. This is sometimes needed when authenticating user agents
# that put user@domain into the digest username field.
#
attributeType ( serAttributeType:8 NAME 'digestHA1b'
    DESC 'Digest Authentication HA1 String (includes domain in username)'
    SYNTAX octetStringSyntax
    EQUALITY octetStringMatch
    SINGLE-VALUE
 )

#
# This attribute stores a domain name within a virtual domain handled
# by a SER server. SER users this value to determine whether the SIP
# requests are to/from one of its virtual domains.
#
attributeType ( serAttributeType:9 NAME 'serDomain'
    DESC 'Domain Name'
    SYNTAX stringSyntax
    EQUALITY caseIgnoreMatch
    SINGLE-VALUE
 )

#
# SER attributes is a generic mechanism for storing configuration data.
# This attribute contains the name of an SER attribute.
#
attributeType ( serAttributeType:10 NAME 'serAttrName'
    DESC 'SER Attribute Name'
	SYNTAX stringSyntax
    EQUALITY caseExactMatch
    SINGLE-VALUE
 )

#
# SER attributes is a generic mechanism for storing configuration data.
# This attribute contains SER attribute type. There are two types of
# SER attributes: integer and string.
#
attributeType ( serAttributeType:11 NAME 'serAttrType'
    DESC 'SER Attribute Type'
    SYNTAX intSyntax
	SINGLE-VALUE
 )

#
# SER attributes is a generic mechanism for storing configuration data.
# This attribute contains the value (as string) of a SER attribute.
#
attributeType ( serAttributeType:12 NAME 'serAttrValue'
    DESC 'SER Attribute Value'
    SYNTAX stringSyntax
    EQUALITY caseExactMatch
    SINGLE-VALUE
 )

#
# digestAuthCredentials objects are used by SER to perform digest
# authentication as defined in RFC3261 and RFC2617. Every object must
# contain a username, a realm, and a UID of the user who owns the
# credentials. In addition to that the object can contains either
# password in plain-text format, or the HA1 string, or both. Which of
# them will be used by SER depends on the configuration.
#
# This is an analogy to 'credentials' table found in SER relational
# database schema.
#
objectClass ( serObjectClass:0 NAME 'digestAuthCredentials'
	DESC 'Credentials for SIP Digest Authentication'
	MUST ( digestUsername $ digestRealm $ serUID $ serFlags )
	MAY ( serDID $ digestPassword $ digestHA1 $ digestHA1b )	
 )

#
# serDomain objects are used to store the information about virtual
# domains supported by a SER server. The purpose of the object is
# to map domain names (which appear in SIP messages) to universally
# unique domain identifiers and vice versa. 
#
# This is an analogy to 'domain' table found in SER relational database
# schema.
#
objectClass ( serObjectClass:1 NAME 'serDomain'
    DESC 'SER Virtual Domains'
    MUST ( serDID $ serDomain $ serFlags )
 )

#
# This is an abstract class that can be used as a base for other classes
# storing SER uri/user/domain/global attributes. An object storing SER 
# attributes must contain serAttrName, serAttrType, serAttrValue, and 
# serFlags attributes.
#
objectClass ( serObjectClass:2 NAME 'serAttrAbstract'
    ABSTRACT
    MUST ( serAttrName $ serAttrType $ serAttrValue $ serFlags )
 )

#
# An auxiliary class that can be used to extend other objects in an LDAP
# directory with the possibility to store SER attributes.
#
objectClass ( serObjectClass:3 NAME 'serAttr'
    AUXILIARY
    SUP serAttrAbstract
 )

#
# This class is used to store domain level attributes. Domain level
# attributes are attributes used to store configuration information related
# to a virtual domain (i.e. common configuration for all users/URIs within
# that virtual domain), such as digest authentication realm or default 
# language.
#
objectClass ( serObjectClass:4 NAME 'serDomainAttr'
    DESC 'SER Domain Attributes'
    SUP serAttrAbstract
    MUST ( serDID )
 )