Add res_config_ldap for realtime LDAP engine.
(closes issue #5768) Reported by: mguesdon Patches: res_config_ldap-v0.7.tar.gz uploaded by mguesdon (license 121) res_ldap.conf.sample uploaded by suretec (license 70) asterisk-v3.1.4.ldif uploaded by suretec (license 70) asterisk-v3.1.4.schema uploaded by suretec (license 70) Tested by: oej, mguesdon, suretec, cthorner git-svn-id: http://svn.digium.com/svn/asterisk/trunk@99696 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
395fa10a4b
commit
533d426fef
2
CHANGES
2
CHANGES
|
@ -463,6 +463,8 @@ Miscellaneous New Modules
|
|||
to retrieve, create, update, and delete realtime information from a remote
|
||||
web server. Note that this module requires func_curl.so to be loaded for
|
||||
backend functionality.
|
||||
* Added a new module, res_config_ldap, which permits the use of an LDAP
|
||||
server for realtime data access.
|
||||
|
||||
Miscellaneous
|
||||
-------------
|
||||
|
|
|
@ -13,6 +13,7 @@ IMAP_TK=@PBX_IMAP_TK@
|
|||
ISDNNET=@PBX_ISDNNET@
|
||||
IXJUSER=@PBX_IXJUSER@
|
||||
JACK=@PBX_JACK@
|
||||
LDAP=@PBX_LDAP@
|
||||
LTDL=@PBX_LTDL@
|
||||
LUA=@PBX_LUA@
|
||||
MISDN=@PBX_MISDN@
|
||||
|
|
|
@ -0,0 +1,141 @@
|
|||
;
|
||||
; Configuration file for res_config_ldap
|
||||
;
|
||||
|
||||
; Sample Asterisk config file for res_config_ldap
|
||||
; in extconfig.conf you can use it like this:
|
||||
; sipusers = ldap,"dc=myDomain,dc=myDomainExt",sip
|
||||
; sippeers = ldap,"dc=myDomain,dc=myDomainExt",sip
|
||||
; extensions = ldap,"dc=myDomain,dc=myDomainExt",extensions
|
||||
; sip.conf = ldap,"dc=myDomain,dc=myDomainExt",config
|
||||
|
||||
|
||||
[_general]
|
||||
;host=192.168.1.1,ldap.mydomain.com ; LDAP host(s)
|
||||
;protocol=3 ; Version of the LDAP protocol to use default is 3.
|
||||
;basedn=MyRootDN ; Base DN
|
||||
;pass=MyPassword ; Bind password
|
||||
;user=MyDN ; Bind DN
|
||||
|
||||
; Configuration Table
|
||||
[config]
|
||||
; addtional filter - This specifies an additional set of criteria to be used
|
||||
; when querying the LDAP server.
|
||||
additionalFilter=(objectClass=PBXConfig)
|
||||
; Attributes mapping (asterisk variable name = ldap attribute name)
|
||||
; When Asterisk requests the variable by the name of the value on the left,
|
||||
; this module will look up the attribute listed on the right.
|
||||
filename = PBXConfigFilename
|
||||
category = PBXConfigCategory
|
||||
variable_name = PBXConfigVariableName
|
||||
variable_value = PBXConfigVariableValue
|
||||
cat_metric = PBXConfigCategoryMetric
|
||||
commented = PBXConfigCommented
|
||||
|
||||
; Extensions Table
|
||||
[extensions]
|
||||
context = PBXExtensionContext
|
||||
exten = PBXExtensionExten
|
||||
priority = PBXExtensionPriority
|
||||
app = PBXExtensionApplication
|
||||
appdata = PBXExtensionApplicationData
|
||||
additionalFilter=(objectClass=PBXExtension)
|
||||
|
||||
; Sip Users Table
|
||||
[sip]
|
||||
name = uid
|
||||
amaflags = PBXAccountAMAFlags
|
||||
callgroup = PBXAccountCallGroup
|
||||
callerid = PBXAccountCallerID
|
||||
canreinvite = PBXAccountCanReinvite
|
||||
context = PBXAccountContext
|
||||
dtmfmode = PBXAccountDTMFMode
|
||||
fromuser = PBXAccountFromUser
|
||||
fromdomain = PBXAccountFromDomain
|
||||
fullcontact = PBXAccountFullContact
|
||||
fullcontact = gecos
|
||||
host = PBXAccountHost
|
||||
insecure = PBXAccountInsecure
|
||||
mailbox = PBXAccountMailbox
|
||||
md5secret = realmedPassword
|
||||
nat = PBXAccountNAT
|
||||
deny = PBXAccountDeny
|
||||
permit = PBXAccountPermit
|
||||
pickupgroup = PBXAccountPickupGroup
|
||||
port = PBXAccountPort
|
||||
qualify = PBXAccountQualify
|
||||
restrictcid = PBXAccountRestrictCID
|
||||
rtptimeout = PBXAccountRTPTimeout
|
||||
rtpholdtimeout = PBXAccountRTPHoldTimeout
|
||||
type = PBXAccountType
|
||||
disallow = PBXAccountDisallowedCodec
|
||||
allow = PBXAccountAllowedCodec
|
||||
MusicOnHold = PBXAccountMusicOnHold
|
||||
regseconds = PBXAccountExpirationTimestamp
|
||||
regcontext = PBXAccountRegistrationContext
|
||||
regexten = PBXAccountRegistrationExten
|
||||
CanCallForward = PBXAccountCanCallForward
|
||||
additionalFilter=(objectClass=PBXAccountSIP)
|
||||
|
||||
; IAX Users Table
|
||||
[iax]
|
||||
amaflags = PBXAccountAMAFlags
|
||||
callerid = PBXAccountCallerID
|
||||
context = PBXAccountContext
|
||||
fullcontact = PBXAccountFullContact
|
||||
fullcontact = gecos
|
||||
host = PBXAccountHost
|
||||
mailbox = PBXAccountMailbox
|
||||
md5secret = realmedPassword
|
||||
deny = PBXAccountDeny
|
||||
permit = PBXAccountPermit
|
||||
port = PBXAccountPort
|
||||
qualify = PBXAccountQualify
|
||||
type = PBXAccountType
|
||||
disallow = PBXAccountDisallowedCodec
|
||||
allow = PBXAccountAllowedCodec
|
||||
regseconds = PBXAccountExpirationTimestamp
|
||||
regcontext = PBXAccountRegistrationContext
|
||||
regexten = PBXAccountRegistrationExten
|
||||
notransfer = PBXAccountNoTransfer
|
||||
additionalFilter=(objectClass=PBXAccountIAX)
|
||||
|
||||
; A Test Family
|
||||
[testfamily]
|
||||
MyUSERID = uid
|
||||
additionalFilter=(objectClass=*)
|
||||
|
||||
[accounts]
|
||||
amaflags = PBXAccountAMAFlags
|
||||
callgroup = PBXAccountCallGroup
|
||||
callerid = PBXAccountCallerID
|
||||
canreinvite = PBXAccountCanReinvite
|
||||
context = PBXAccountContext
|
||||
dtmfmode = PBXAccountDTMFMode
|
||||
fromuser = PBXAccountFromUser
|
||||
fromdomain = PBXAccountFromDomain
|
||||
fullcontact = PBXAccountFullContact
|
||||
fullcontact = gecos
|
||||
host = PBXAccountHost
|
||||
insecure = PBXAccountInsecure
|
||||
mailbox = PBXAccountMailbox
|
||||
md5secret = realmedPassword
|
||||
nat = PBXAccountNAT
|
||||
deny = PBXAccountDeny
|
||||
permit = PBXAccountPermit
|
||||
pickupgroup = PBXAccountPickupGroup
|
||||
port = PBXAccountPort
|
||||
qualify = PBXAccountQualify
|
||||
restrictcid = PBXAccountRestrictCID
|
||||
rtptimeout = PBXAccountRTPTimeout
|
||||
rtpholdtimeout = PBXAccountRTPHoldTimeout
|
||||
type = PBXAccountType
|
||||
disallow = PBXAccountDisallowedCodec
|
||||
allow = PBXAccountAllowedCodec
|
||||
MusicOnHold = PBXAccountMusicOnHold
|
||||
regseconds = PBXAccountExpirationTimestamp
|
||||
regcontext = PBXAccountRegistrationContext
|
||||
regexten = PBXAccountRegistrationExten
|
||||
CanCallForward = PBXAccountCanCallForward
|
||||
additionalFilter=(objectClass=PBXAccount)
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#! /bin/sh
|
||||
# From configure.ac Revision: 98971 .
|
||||
# From configure.ac Revision: 98985 .
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.61 for asterisk 1.4.
|
||||
#
|
||||
|
@ -777,6 +777,10 @@ JACK_LIB
|
|||
JACK_INCLUDE
|
||||
JACK_DIR
|
||||
PBX_JACK
|
||||
LDAP_LIB
|
||||
LDAP_INCLUDE
|
||||
LDAP_DIR
|
||||
PBX_LDAP
|
||||
LTDL_LIB
|
||||
LTDL_INCLUDE
|
||||
LTDL_DIR
|
||||
|
@ -1587,6 +1591,7 @@ Optional Packages:
|
|||
--with-imap=PATH use UW IMAP Toolkit files in PATH
|
||||
--with-isdnnet=PATH use ISDN4Linux Library files in PATH
|
||||
--with-jack=PATH use Jack Audio Connection Kit files in PATH
|
||||
--with-ldap=PATH use OpenLDAP files in PATH
|
||||
--with-ltdl=PATH use libtool files in PATH
|
||||
--with-lua=PATH use Lua files in PATH
|
||||
--with-misdn=PATH use mISDN User Library files in PATH
|
||||
|
@ -8329,6 +8334,34 @@ fi
|
|||
|
||||
|
||||
|
||||
LDAP_DESCRIP="OpenLDAP"
|
||||
LDAP_OPTION="ldap"
|
||||
|
||||
# Check whether --with-ldap was given.
|
||||
if test "${with_ldap+set}" = set; then
|
||||
withval=$with_ldap;
|
||||
case ${withval} in
|
||||
n|no)
|
||||
USE_LDAP=no
|
||||
;;
|
||||
y|ye|yes)
|
||||
ac_mandatory_list="${ac_mandatory_list} LDAP"
|
||||
;;
|
||||
*)
|
||||
LDAP_DIR="${withval}"
|
||||
ac_mandatory_list="${ac_mandatory_list} LDAP"
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
PBX_LDAP=0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
LTDL_DESCRIP="libtool"
|
||||
LTDL_OPTION="ltdl"
|
||||
|
||||
|
@ -33193,6 +33226,268 @@ fi
|
|||
|
||||
|
||||
|
||||
if test "x${PBX_LDAP}" != "x1" -a "${USE_LDAP}" != "no"; then
|
||||
pbxlibdir=""
|
||||
# if --with-LDAP=DIR has been specified, use it.
|
||||
if test "x${LDAP_DIR}" != "x"; then
|
||||
if test -d ${LDAP_DIR}/lib; then
|
||||
pbxlibdir="-L${LDAP_DIR}/lib"
|
||||
else
|
||||
pbxlibdir="-L${LDAP_DIR}"
|
||||
fi
|
||||
fi
|
||||
pbxfuncname="ldap_first_attribute"
|
||||
if test "x${pbxfuncname}" = "x" ; then # empty lib, assume only headers
|
||||
AST_LDAP_FOUND=yes
|
||||
else
|
||||
as_ac_Lib=`echo "ac_cv_lib_ldap_${pbxfuncname}" | $as_tr_sh`
|
||||
{ echo "$as_me:$LINENO: checking for ${pbxfuncname} in -lldap" >&5
|
||||
echo $ECHO_N "checking for ${pbxfuncname} in -lldap... $ECHO_C" >&6; }
|
||||
if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lldap ${pbxlibdir} $LIBS"
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char ${pbxfuncname} ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return ${pbxfuncname} ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||
if { (ac_try="$ac_link"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
(eval "$ac_link") 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } && {
|
||||
test -z "$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
} && test -s conftest$ac_exeext &&
|
||||
$as_test_x conftest$ac_exeext; then
|
||||
eval "$as_ac_Lib=yes"
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
eval "$as_ac_Lib=no"
|
||||
fi
|
||||
|
||||
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
ac_res=`eval echo '${'$as_ac_Lib'}'`
|
||||
{ echo "$as_me:$LINENO: result: $ac_res" >&5
|
||||
echo "${ECHO_T}$ac_res" >&6; }
|
||||
if test `eval echo '${'$as_ac_Lib'}'` = yes; then
|
||||
AST_LDAP_FOUND=yes
|
||||
else
|
||||
AST_LDAP_FOUND=no
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# now check for the header.
|
||||
if test "${AST_LDAP_FOUND}" = "yes"; then
|
||||
LDAP_LIB="${pbxlibdir} -lldap "
|
||||
# if --with-LDAP=DIR has been specified, use it.
|
||||
if test "x${LDAP_DIR}" != "x"; then
|
||||
LDAP_INCLUDE="-I${LDAP_DIR}/include"
|
||||
fi
|
||||
LDAP_INCLUDE="${LDAP_INCLUDE} "
|
||||
if test "xldap.h" = "x" ; then # no header, assume found
|
||||
LDAP_HEADER_FOUND="1"
|
||||
else # check for the header
|
||||
saved_cppflags="${CPPFLAGS}"
|
||||
CPPFLAGS="${CPPFLAGS} ${LDAP_INCLUDE} "
|
||||
if test "${ac_cv_header_ldap_h+set}" = set; then
|
||||
{ echo "$as_me:$LINENO: checking for ldap.h" >&5
|
||||
echo $ECHO_N "checking for ldap.h... $ECHO_C" >&6; }
|
||||
if test "${ac_cv_header_ldap_h+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
fi
|
||||
{ echo "$as_me:$LINENO: result: $ac_cv_header_ldap_h" >&5
|
||||
echo "${ECHO_T}$ac_cv_header_ldap_h" >&6; }
|
||||
else
|
||||
# Is the header compilable?
|
||||
{ echo "$as_me:$LINENO: checking ldap.h usability" >&5
|
||||
echo $ECHO_N "checking ldap.h usability... $ECHO_C" >&6; }
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
$ac_includes_default
|
||||
#include <ldap.h>
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (ac_try="$ac_compile"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
(eval "$ac_compile") 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } && {
|
||||
test -z "$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
} && test -s conftest.$ac_objext; then
|
||||
ac_header_compiler=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_header_compiler=no
|
||||
fi
|
||||
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
|
||||
echo "${ECHO_T}$ac_header_compiler" >&6; }
|
||||
|
||||
# Is the header present?
|
||||
{ echo "$as_me:$LINENO: checking ldap.h presence" >&5
|
||||
echo $ECHO_N "checking ldap.h presence... $ECHO_C" >&6; }
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#include <ldap.h>
|
||||
_ACEOF
|
||||
if { (ac_try="$ac_cpp conftest.$ac_ext"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } >/dev/null && {
|
||||
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
}; then
|
||||
ac_header_preproc=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_header_preproc=no
|
||||
fi
|
||||
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
|
||||
echo "${ECHO_T}$ac_header_preproc" >&6; }
|
||||
|
||||
# So? What about this header?
|
||||
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
|
||||
yes:no: )
|
||||
{ echo "$as_me:$LINENO: WARNING: ldap.h: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||
echo "$as_me: WARNING: ldap.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: ldap.h: proceeding with the compiler's result" >&5
|
||||
echo "$as_me: WARNING: ldap.h: proceeding with the compiler's result" >&2;}
|
||||
ac_header_preproc=yes
|
||||
;;
|
||||
no:yes:* )
|
||||
{ echo "$as_me:$LINENO: WARNING: ldap.h: present but cannot be compiled" >&5
|
||||
echo "$as_me: WARNING: ldap.h: present but cannot be compiled" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: ldap.h: check for missing prerequisite headers?" >&5
|
||||
echo "$as_me: WARNING: ldap.h: check for missing prerequisite headers?" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: ldap.h: see the Autoconf documentation" >&5
|
||||
echo "$as_me: WARNING: ldap.h: see the Autoconf documentation" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: ldap.h: section \"Present But Cannot Be Compiled\"" >&5
|
||||
echo "$as_me: WARNING: ldap.h: section \"Present But Cannot Be Compiled\"" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: ldap.h: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: ldap.h: proceeding with the preprocessor's result" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: ldap.h: in the future, the compiler will take precedence" >&5
|
||||
echo "$as_me: WARNING: ldap.h: in the future, the compiler will take precedence" >&2;}
|
||||
( cat <<\_ASBOX
|
||||
## ------------------------------- ##
|
||||
## Report this to www.asterisk.org ##
|
||||
## ------------------------------- ##
|
||||
_ASBOX
|
||||
) | sed "s/^/$as_me: WARNING: /" >&2
|
||||
;;
|
||||
esac
|
||||
{ echo "$as_me:$LINENO: checking for ldap.h" >&5
|
||||
echo $ECHO_N "checking for ldap.h... $ECHO_C" >&6; }
|
||||
if test "${ac_cv_header_ldap_h+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
ac_cv_header_ldap_h=$ac_header_preproc
|
||||
fi
|
||||
{ echo "$as_me:$LINENO: result: $ac_cv_header_ldap_h" >&5
|
||||
echo "${ECHO_T}$ac_cv_header_ldap_h" >&6; }
|
||||
|
||||
fi
|
||||
if test $ac_cv_header_ldap_h = yes; then
|
||||
LDAP_HEADER_FOUND=1
|
||||
else
|
||||
LDAP_HEADER_FOUND=0
|
||||
fi
|
||||
|
||||
|
||||
CPPFLAGS="${saved_cppflags}"
|
||||
fi
|
||||
if test "x${LDAP_HEADER_FOUND}" = "x0" ; then
|
||||
LDAP_LIB=""
|
||||
LDAP_INCLUDE=""
|
||||
else
|
||||
if test "x${pbxfuncname}" = "x" ; then # only checking headers -> no library
|
||||
LDAP_LIB=""
|
||||
fi
|
||||
PBX_LDAP=1
|
||||
# XXX don't know how to evaluate the description (third argument) in AC_DEFINE_UNQUOTED
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LDAP 1
|
||||
_ACEOF
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LDAP_VERSION
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test "x${PBX_MISDN}" != "x1" -a "${USE_MISDN}" != "no"; then
|
||||
pbxlibdir=""
|
||||
# if --with-MISDN=DIR has been specified, use it.
|
||||
|
@ -49415,6 +49710,10 @@ JACK_LIB!$JACK_LIB$ac_delim
|
|||
JACK_INCLUDE!$JACK_INCLUDE$ac_delim
|
||||
JACK_DIR!$JACK_DIR$ac_delim
|
||||
PBX_JACK!$PBX_JACK$ac_delim
|
||||
LDAP_LIB!$LDAP_LIB$ac_delim
|
||||
LDAP_INCLUDE!$LDAP_INCLUDE$ac_delim
|
||||
LDAP_DIR!$LDAP_DIR$ac_delim
|
||||
PBX_LDAP!$PBX_LDAP$ac_delim
|
||||
LTDL_LIB!$LTDL_LIB$ac_delim
|
||||
LTDL_INCLUDE!$LTDL_INCLUDE$ac_delim
|
||||
LTDL_DIR!$LTDL_DIR$ac_delim
|
||||
|
@ -49448,10 +49747,6 @@ UNIXODBC_INCLUDE!$UNIXODBC_INCLUDE$ac_delim
|
|||
UNIXODBC_DIR!$UNIXODBC_DIR$ac_delim
|
||||
PBX_UNIXODBC!$PBX_UNIXODBC$ac_delim
|
||||
OGG_LIB!$OGG_LIB$ac_delim
|
||||
OGG_INCLUDE!$OGG_INCLUDE$ac_delim
|
||||
OGG_DIR!$OGG_DIR$ac_delim
|
||||
PBX_OGG!$PBX_OGG$ac_delim
|
||||
OSPTK_LIB!$OSPTK_LIB$ac_delim
|
||||
_ACEOF
|
||||
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
|
||||
|
@ -49493,6 +49788,10 @@ _ACEOF
|
|||
ac_delim='%!_!# '
|
||||
for ac_last_try in false false false false false :; do
|
||||
cat >conf$$subs.sed <<_ACEOF
|
||||
OGG_INCLUDE!$OGG_INCLUDE$ac_delim
|
||||
OGG_DIR!$OGG_DIR$ac_delim
|
||||
PBX_OGG!$PBX_OGG$ac_delim
|
||||
OSPTK_LIB!$OSPTK_LIB$ac_delim
|
||||
OSPTK_INCLUDE!$OSPTK_INCLUDE$ac_delim
|
||||
OSPTK_DIR!$OSPTK_DIR$ac_delim
|
||||
PBX_OSPTK!$PBX_OSPTK$ac_delim
|
||||
|
@ -49586,10 +49885,6 @@ VPB_DIR!$VPB_DIR$ac_delim
|
|||
PBX_VPB!$PBX_VPB$ac_delim
|
||||
X11_LIB!$X11_LIB$ac_delim
|
||||
X11_INCLUDE!$X11_INCLUDE$ac_delim
|
||||
X11_DIR!$X11_DIR$ac_delim
|
||||
PBX_X11!$PBX_X11$ac_delim
|
||||
ZLIB_LIB!$ZLIB_LIB$ac_delim
|
||||
ZLIB_INCLUDE!$ZLIB_INCLUDE$ac_delim
|
||||
_ACEOF
|
||||
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
|
||||
|
@ -49631,6 +49926,10 @@ _ACEOF
|
|||
ac_delim='%!_!# '
|
||||
for ac_last_try in false false false false false :; do
|
||||
cat >conf$$subs.sed <<_ACEOF
|
||||
X11_DIR!$X11_DIR$ac_delim
|
||||
PBX_X11!$PBX_X11$ac_delim
|
||||
ZLIB_LIB!$ZLIB_LIB$ac_delim
|
||||
ZLIB_INCLUDE!$ZLIB_INCLUDE$ac_delim
|
||||
ZLIB_DIR!$ZLIB_DIR$ac_delim
|
||||
PBX_ZLIB!$PBX_ZLIB$ac_delim
|
||||
ZAPTEL_LIB!$ZAPTEL_LIB$ac_delim
|
||||
|
@ -49699,7 +49998,7 @@ CURL_CONFIG!$CURL_CONFIG$ac_delim
|
|||
LTLIBOBJS!$LTLIBOBJS$ac_delim
|
||||
_ACEOF
|
||||
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 66; then
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 70; then
|
||||
break
|
||||
elif $ac_last_try; then
|
||||
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
|
||||
|
|
|
@ -216,6 +216,7 @@ AST_EXT_LIB_SETUP([IKSEMEL], [Iksemel Jabber Library], [iksemel])
|
|||
AST_EXT_LIB_SETUP([IMAP_TK], [UW IMAP Toolkit], [imap])
|
||||
AST_EXT_LIB_SETUP([ISDNNET], [ISDN4Linux Library], [isdnnet])
|
||||
AST_EXT_LIB_SETUP([JACK], [Jack Audio Connection Kit], [jack])
|
||||
AST_EXT_LIB_SETUP([LDAP], [OpenLDAP], [ldap])
|
||||
AST_EXT_LIB_SETUP([LTDL], [libtool], [ltdl])
|
||||
AST_EXT_LIB_SETUP([LUA], [Lua], [lua])
|
||||
AST_EXT_LIB_SETUP([MISDN], [mISDN User Library], [misdn])
|
||||
|
@ -814,6 +815,8 @@ AST_EXT_LIB_CHECK([JACK], [jack], [jack_activate], [jack/jack.h])
|
|||
# Needed by unixodbc
|
||||
AST_EXT_LIB_CHECK([LTDL], [ltdl], [lt_dlinit], [ltdl.h], [])
|
||||
|
||||
AST_EXT_LIB_CHECK([LDAP], [ldap], [ldap_first_attribute], [ldap.h])
|
||||
|
||||
AST_EXT_LIB_CHECK([MISDN], [mISDN], [mISDN_open], [mISDNuser/mISDNlib.h])
|
||||
|
||||
if test "${PBX_MISDN}" = 1; then
|
||||
|
|
|
@ -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
|
||||
)
|
||||
)
|
||||
|
|
@ -0,0 +1,567 @@
|
|||
#
|
||||
# Copyright (c) 2007 Suretec Systems Ltd. - <http://www.suretecsystems.com/>
|
||||
#
|
||||
# Asterisk LDAP Schema ldif
|
||||
#
|
||||
# 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
|
||||
#
|
||||
dn: cn=asterisk,cn=schema,cn=config
|
||||
objectClass: olcSchemaConfig
|
||||
cn: asterisk
|
||||
#
|
||||
olcObjectIdentifier: AsteriskRoot 1.3.6.1.4.1.22736
|
||||
olcObjectIdentifier: AsteriskLDAP AsteriskRoot:5
|
||||
#
|
||||
#############################################################################
|
||||
# Attribute group OIDs. e.g.: olcObjectIdentifier: AstAttrType AsteriskLDAP:4
|
||||
#############################################################################
|
||||
olcObjectIdentifier: AstAttrType AsteriskLDAP:4
|
||||
#
|
||||
#
|
||||
#############################################################################
|
||||
# Attribute OIDs e.g.: olcObjectIdentifier: AstContext AstAttrType:1
|
||||
#############################################################################
|
||||
olcObjectIdentifier: AstContext AstAttrType:1
|
||||
olcObjectIdentifier: AstExtension AstAttrType:2
|
||||
olcObjectIdentifier: AstPriority AstAttrType:3
|
||||
olcObjectIdentifier: AstApplication AstAttrType:4
|
||||
olcObjectIdentifier: AstApplicationData AstAttrType:5
|
||||
olcObjectIdentifier: AstAccountAMAFlags AstAttrType:6
|
||||
olcObjectIdentifier: AstAccountCallerID AstAttrType:7
|
||||
olcObjectIdentifier: AstAccountContext AstAttrType:8
|
||||
olcObjectIdentifier: AstAccountMailbox AstAttrType:9
|
||||
olcObjectIdentifier: AstMD5secret AstAttrType:10
|
||||
olcObjectIdentifier: AstAccountDeny AstAttrType:11
|
||||
olcObjectIdentifier: AstAccountPermit AstAttrType:12
|
||||
olcObjectIdentifier: AstAccountQualify AstAttrType:13
|
||||
olcObjectIdentifier: AstAccountType AstAttrType:14
|
||||
olcObjectIdentifier: AstAccountDisallowedCodec AstAttrType:15
|
||||
olcObjectIdentifier: AstAccountExpirationTimestamp AstAttrType:16
|
||||
olcObjectIdentifier: AstAccountRegistrationContext AstAttrType:17
|
||||
olcObjectIdentifier: AstAccountRegistrationExten AstAttrType:18
|
||||
olcObjectIdentifier: AstAccountNoTransfer AstAttrType:19
|
||||
olcObjectIdentifier: AstAccountCallGroup AstAttrType:20
|
||||
olcObjectIdentifier: AstAccountCanReinvite AstAttrType:21
|
||||
olcObjectIdentifier: AstAccountDTMFMode AstAttrType:22
|
||||
olcObjectIdentifier: AstAccountFromUser AstAttrType:23
|
||||
olcObjectIdentifier: AstAccountFromDomain AstAttrType:24
|
||||
olcObjectIdentifier: AstAccountFullContact AstAttrType:25
|
||||
olcObjectIdentifier: AstAccountHost AstAttrType:26
|
||||
olcObjectIdentifier: AstAccountInsecure AstAttrType:27
|
||||
olcObjectIdentifier: AstAccountNAT AstAttrType:28
|
||||
olcObjectIdentifier: AstAccountPickupGroup AstAttrType:29
|
||||
olcObjectIdentifier: AstAccountPort AstAttrType:30
|
||||
olcObjectIdentifier: AstAccountRestrictCID AstAttrType:31
|
||||
olcObjectIdentifier: AstAccountRTPTimeout AstAttrType:32
|
||||
olcObjectIdentifier: AstAccountRTPHoldTimeout AstAttrType:33
|
||||
olcObjectIdentifier: AstAccountRealmedPassword AstAttrType:34
|
||||
olcObjectIdentifier: AstAccountAllowedCodec AstAttrType:35
|
||||
olcObjectIdentifier: AstAccountMusicOnHold AstAttrType:36
|
||||
olcObjectIdentifier: AstAccountCanCallForward AstAttrType:37
|
||||
olcObjectIdentifier: AstAccountSecret AstAttrType:38
|
||||
olcObjectIdentifier: AstAccountName AstAttrType:39
|
||||
olcObjectIdentifier: AstConfigFilename AstAttrType:40
|
||||
olcObjectIdentifier: AstConfigCategory AstAttrType:41
|
||||
olcObjectIdentifier: AstConfigCategoryMetric AstAttrType:42
|
||||
olcObjectIdentifier: AstConfigVariableName AstAttrType:43
|
||||
olcObjectIdentifier: AstConfigVariableValue AstAttrType:44
|
||||
olcObjectIdentifier: AstConfigCommented AstAttrType:45
|
||||
#
|
||||
#
|
||||
#############################################################################
|
||||
# Object Class OIDs
|
||||
#############################################################################
|
||||
olcObjectIdentifier: AstObjectClass AsteriskLDAP:2
|
||||
olcObjectIdentifier: AsteriskExtension AstObjectClass:1
|
||||
olcObjectIdentifier: AsteriskIAXUser AstObjectClass:2
|
||||
olcObjectIdentifier: AsteriskSIPUser AstObjectClass:3
|
||||
olcObjectIdentifier: AsteriskConfig AstObjectClass:4
|
||||
#
|
||||
#
|
||||
#############################################################################
|
||||
# attribute definitions
|
||||
#
|
||||
# OID (the first arg) comes from the olcObjectIdentifier: defined above
|
||||
#
|
||||
# NAME should be the same as olcObjectIdentifier:
|
||||
#
|
||||
# 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.:
|
||||
#
|
||||
# olcAttributeTypes: ( 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 )
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
olcAttributeTypes: ( AstContext
|
||||
NAME 'AstContext'
|
||||
DESC 'Asterisk Context'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstExtension
|
||||
NAME 'AstExtension'
|
||||
DESC 'Asterisk Extension'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstPriority
|
||||
NAME 'AstPriority'
|
||||
DESC 'Asterisk Priority'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstApplication
|
||||
NAME 'AstApplication'
|
||||
DESC 'Asterisk Application'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstApplicationData
|
||||
NAME 'AstApplicationData'
|
||||
DESC 'Asterisk Application Data'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountAMAFlags
|
||||
NAME 'AstAccountAMAFlags'
|
||||
DESC 'Asterisk Account AMA Flags'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountCallerID
|
||||
NAME 'AstAccountCallerID'
|
||||
DESC 'Asterisk Account CallerID'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountContext
|
||||
NAME 'AstAccountContext'
|
||||
DESC 'Asterisk Account Context'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountMailbox
|
||||
NAME 'AstAccountMailbox'
|
||||
DESC 'Asterisk Account Mailbox'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstMD5secret
|
||||
NAME 'AstMD5secret'
|
||||
DESC 'Asterisk Account MD5 Secret'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountDeny
|
||||
NAME 'AstAccountDeny'
|
||||
DESC 'Asterisk Account Deny'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountPermit
|
||||
NAME 'AstAccountPermit'
|
||||
DESC 'Asterisk Account Permit'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountQualify
|
||||
NAME 'AstAccountQualify'
|
||||
DESC 'Asterisk Account Qualify'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountType
|
||||
NAME 'AstAccountType'
|
||||
DESC 'Asterisk Account Type'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountDisallowedCodec
|
||||
NAME 'AstAccountDisallowedCodec'
|
||||
DESC 'Asterisk Account Disallowed Codec'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountExpirationTimestamp
|
||||
NAME 'AstAccountExpirationTimestamp'
|
||||
DESC 'Asterisk Account Allowed Codec'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountRegistrationContext
|
||||
NAME 'AstAccountRegistrationContext'
|
||||
DESC 'Asterisk Account AMA Flags'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountRegistrationExten
|
||||
NAME 'AstAccountRegistrationExten'
|
||||
DESC 'Asterisk Account AMA Flags'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountNoTransfer
|
||||
NAME 'AstAccountNoTransfer'
|
||||
DESC 'Asterisk Account AMA Flags'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountCallGroup
|
||||
NAME 'AstAccountCallGroup'
|
||||
DESC 'Asterisk Account Call Group'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountCanReinvite
|
||||
NAME 'AstAccountCanReinvite'
|
||||
DESC 'Asterisk Account Can Reinvite'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountDTMFMode
|
||||
NAME 'AstAccountDTMFMode'
|
||||
DESC 'Asterisk Account DTMF Flags'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountFromUser
|
||||
NAME 'AstAccountFromUser'
|
||||
DESC 'Asterisk Account From User'
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountFromDomain
|
||||
NAME 'AstAccountFromDomain'
|
||||
DESC 'Asterisk Account From Domain'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountFullContact
|
||||
NAME 'AstAccountFullContact'
|
||||
DESC 'Asterisk Account Full Contact'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountHost
|
||||
NAME 'AstAccountHost'
|
||||
DESC 'Asterisk Account Host'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountInsecure
|
||||
NAME 'AstAccountInsecure'
|
||||
DESC 'Asterisk Account Insecure'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountNAT
|
||||
NAME 'AstAccountNAT'
|
||||
DESC 'Asterisk Account NAT'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountPickupGroup
|
||||
NAME 'AstAccountPickupGroup'
|
||||
DESC 'Asterisk Account PickupGroup'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountPort
|
||||
NAME 'AstAccountPort'
|
||||
DESC 'Asterisk Account Port'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountRestrictCID
|
||||
NAME 'AstAccountRestrictCID'
|
||||
DESC 'Asterisk Restrict CallerID'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountRTPTimeout
|
||||
NAME 'AstAccountRTPTimeout'
|
||||
DESC 'Asterisk RTP Timeout'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountRTPHoldTimeout
|
||||
NAME 'AstAccountRTPHoldTimeout'
|
||||
DESC 'Asterisk RTP Hold Timeout'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountRealmedPassword
|
||||
NAME 'AstAccountRealmedPassword'
|
||||
DESC 'Asterisk RTP Hold Timeout'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountAllowedCodec
|
||||
NAME 'AstAccountAllowedCodec'
|
||||
DESC 'Asterisk Account Allowed Codec'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountMusicOnHold
|
||||
NAME 'AstAccountMusicOnHold'
|
||||
DESC 'Asterisk Account Allowed Codec'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountCanCallForward
|
||||
NAME 'AstAccountCanCallForward'
|
||||
DESC 'Asterisk Can CAll Forward'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountSecret
|
||||
NAME 'AstAccountSecret'
|
||||
DESC 'Asterisk Can CAll Forward'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstAccountName
|
||||
NAME 'AstAccountName'
|
||||
DESC 'Asterisk Account Username'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstConfigFilename
|
||||
NAME 'AstConfigFilename'
|
||||
DESC 'Asterisk LDAP Configuration Filename'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( AstConfigCategory
|
||||
NAME 'AstConfigCategory'
|
||||
DESC 'Asterisk LDAP Configuration Category'
|
||||
EQUALITY caseIgnoreMatch
|
||||
SUBSTR caseIgnoreSubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||
#
|
||||
olcAttributeTypes: ( 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)
|
||||
#
|
||||
olcAttributeTypes: ( 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)
|
||||
#
|
||||
olcAttributeTypes: ( 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)
|
||||
#
|
||||
olcAttributeTypes: ( 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.
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
olcObjectClasses: ( 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.
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
olcObjectClasses: ( 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
|
||||
)
|
||||
)
|
||||
#
|
||||
olcObjectClasses: ( 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.
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
olcObjectClasses: ( AsteriskConfig
|
||||
NAME 'AsteriskConfig'
|
||||
DESC 'Asterisk configuration Information'
|
||||
SUP top AUXILIARY
|
||||
MUST cn
|
||||
MAY (
|
||||
AstConfigFilename $
|
||||
AstConfigCategory $
|
||||
AstConfigCategoryMetric $
|
||||
AstConfigVariableName $
|
||||
AstConfigVariableValue $
|
||||
AstConfigCommented
|
||||
)
|
||||
)
|
||||
#
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
Asterisk Realtime LDAP Driver
|
||||
---------------------------
|
||||
|
||||
With this driver Asterisk can retrieve information from a LDAP drectory, including
|
||||
sip/iax users, extensions and configuration.
|
||||
|
||||
See configs/res_ldap.conf.sample for a configuration file sample
|
||||
|
||||
|
||||
Here is a LDAP dif sample:
|
||||
|
||||
# Base SIP Phones Entry
|
||||
dn: uid=phone-base,dc=myDomain,dc=myDomainExt
|
||||
objectClass: top
|
||||
objectClass: AstAccount
|
||||
objectClass: AstAccountSIP
|
||||
uid: phone-base
|
||||
AstAccountAccountingCode: baseacccode
|
||||
AstAccountHost: dynamic
|
||||
preferredLanguage: FR
|
||||
AstAccountAMAFlags: billing
|
||||
AstAccountContext: ldaptest
|
||||
|
||||
|
||||
# A Phone. realmedPassword md5 hash should be the result of
|
||||
# echo -n "UID:SIPRealm:Password" | md5sum
|
||||
dn: uid=phone-test,dc=myDomain,dc=myDomainExt
|
||||
objectClass: top
|
||||
objectClass: AstAccount
|
||||
objectClass: AstAccountSIP
|
||||
uid: phone-test
|
||||
AstAccountAccountingCode: acc-phone-base
|
||||
AstAccountFullContact: Noone <1234>
|
||||
AstAccountCallerID: 1234
|
||||
AstAccountBaseDN: uid=phone-base,dc=myDomain,dc=myDomainExt
|
||||
realmedPassword: {MD5}f67965da780bf9c70d6e337f938cee6f
|
||||
|
||||
|
||||
# extensions,
|
||||
dn: ou=extensions,dc=myDomain,dc=myDomainExt
|
||||
ou: extensions
|
||||
objectClass: top
|
||||
objectClass: organizationalUnit
|
||||
|
||||
# Extension 100 Priority 1 in context ldaptest
|
||||
dn: cn=100-1,ou=extensions,dc=myDomain,dc=myDomainExt
|
||||
AstExtensionApplication: NoOp
|
||||
AstExtensionApplicationData: TEST LDAP
|
||||
objectClass: top
|
||||
objectClass: AstExtension
|
||||
AstExtensionExten: 100
|
||||
AstExtensionContext: ldaptest
|
||||
cn: 100-1
|
||||
AstExtensionPriority: 1
|
||||
|
||||
# Extension 100 Priority 1 in context ldaptest
|
||||
dn: cn=100-2,ou=extensions,dc=myDomain,dc=myDomainExt
|
||||
objectClass: top
|
||||
objectClass: AstExtension
|
||||
AstExtensionExten: 100
|
||||
AstExtensionContext: ldaptest
|
||||
cn: 100-2
|
||||
AstExtensionPriority: 2
|
||||
AstExtensionApplication: hangup
|
||||
|
|
@ -373,6 +373,12 @@
|
|||
/* Define to indicate the ${JACK_DESCRIP} library version */
|
||||
#undef HAVE_JACK_VERSION
|
||||
|
||||
/* Define this to indicate the ${LDAP_DESCRIP} library */
|
||||
#undef HAVE_LDAP
|
||||
|
||||
/* Define to indicate the ${LDAP_DESCRIP} library version */
|
||||
#undef HAVE_LDAP_VERSION
|
||||
|
||||
/* Define to 1 if you have the <libintl.h> header file. */
|
||||
#undef HAVE_LIBINTL_H
|
||||
|
||||
|
|
|
@ -102,6 +102,9 @@ IMAP_TK_LIB=@IMAP_TK_LIB@
|
|||
JACK_INCLUDE=@JACK_INCLUDE@
|
||||
JACK_LIB=@JACK_LIB@
|
||||
|
||||
LDAP_INCLUDE=@LDAP_INCLUDE@
|
||||
LDAP_LIB=@LDAP_LIB@
|
||||
|
||||
LUA_INCLUDE=@LUA_INCLUDE@
|
||||
LUA_LIB=@LUA_LIB@
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue