[asterisk-commits] twilson: branch twilson/calendaring r151870 - in /team/twilson/calendaring: i...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Oct 24 03:17:20 CDT 2008


Author: twilson
Date: Fri Oct 24 03:17:19 2008
New Revision: 151870

URL: http://svn.digium.com/view/asterisk?view=rev&rev=151870
Log:
Add CALENDAR_QUERY() and CALENDAR_QUERY_RESULT() functions

Modified:
    team/twilson/calendaring/include/asterisk/autoconfig.h.in
    team/twilson/calendaring/main/calendar.c

Modified: team/twilson/calendaring/include/asterisk/autoconfig.h.in
URL: http://svn.digium.com/view/asterisk/team/twilson/calendaring/include/asterisk/autoconfig.h.in?view=diff&rev=151870&r1=151869&r2=151870
==============================================================================
--- team/twilson/calendaring/include/asterisk/autoconfig.h.in (original)
+++ team/twilson/calendaring/include/asterisk/autoconfig.h.in Fri Oct 24 03:17:19 2008
@@ -18,6 +18,18 @@
 /* Define to 1 if using `alloca.c'. */
 #undef C_ALLOCA
 
+/* Define this to indicate the ${ACOS_DESCRIP} library */
+#undef HAVE_ACOS
+
+/* Define this to indicate the ${ACOSL_DESCRIP} library */
+#undef HAVE_ACOSL
+
+/* Define to indicate the ${ACOSL_DESCRIP} library version */
+#undef HAVE_ACOSL_VERSION
+
+/* Define to indicate the ${ACOS_DESCRIP} library version */
+#undef HAVE_ACOS_VERSION
+
 /* Define to 1 if you have `alloca', as a function or macro. */
 #undef HAVE_ALLOCA
 
@@ -25,26 +37,148 @@
    */
 #undef HAVE_ALLOCA_H
 
+/* Define this to indicate the ${ALSA_DESCRIP} library */
+#undef HAVE_ALSA
+
+/* Define to indicate the ${ALSA_DESCRIP} library version */
+#undef HAVE_ALSA_VERSION
+
 /* Define to 1 if you have the <arpa/inet.h> header file. */
 #undef HAVE_ARPA_INET_H
 
 /* Define to 1 if you have the <arpa/nameser.h> header file. */
 #undef HAVE_ARPA_NAMESER_H
 
+/* Define this to indicate the ${ASIN_DESCRIP} library */
+#undef HAVE_ASIN
+
+/* Define this to indicate the ${ASINL_DESCRIP} library */
+#undef HAVE_ASINL
+
+/* Define to indicate the ${ASINL_DESCRIP} library version */
+#undef HAVE_ASINL_VERSION
+
+/* Define to indicate the ${ASIN_DESCRIP} library version */
+#undef HAVE_ASIN_VERSION
+
 /* Define to 1 if you have the `asprintf' function. */
 #undef HAVE_ASPRINTF
 
+/* Define this to indicate the ${ATAN_DESCRIP} library */
+#undef HAVE_ATAN
+
+/* Define this to indicate the ${ATAN2_DESCRIP} library */
+#undef HAVE_ATAN2
+
+/* Define this to indicate the ${ATAN2L_DESCRIP} library */
+#undef HAVE_ATAN2L
+
+/* Define to indicate the ${ATAN2L_DESCRIP} library version */
+#undef HAVE_ATAN2L_VERSION
+
+/* Define to indicate the ${ATAN2_DESCRIP} library version */
+#undef HAVE_ATAN2_VERSION
+
+/* Define this to indicate the ${ATANL_DESCRIP} library */
+#undef HAVE_ATANL
+
+/* Define to indicate the ${ATANL_DESCRIP} library version */
+#undef HAVE_ATANL_VERSION
+
+/* Define to indicate the ${ATAN_DESCRIP} library version */
+#undef HAVE_ATAN_VERSION
+
 /* Define to 1 if you have the `atexit' function. */
 #undef HAVE_ATEXIT
 
+/* Define to 1 if your GCC C compiler supports the 'always_inline' attribute.
+   */
+#undef HAVE_ATTRIBUTE_always_inline
+
+/* Define to 1 if your GCC C compiler supports the 'const' attribute. */
+#undef HAVE_ATTRIBUTE_const
+
+/* Define to 1 if your GCC C compiler supports the 'deprecated' attribute. */
+#undef HAVE_ATTRIBUTE_deprecated
+
+/* Define to 1 if your GCC C compiler supports the 'malloc' attribute. */
+#undef HAVE_ATTRIBUTE_malloc
+
+/* Define to 1 if your GCC C compiler supports the 'pure' attribute. */
+#undef HAVE_ATTRIBUTE_pure
+
+/* Define to 1 if your GCC C compiler supports the 'sentinel' attribute. */
+#undef HAVE_ATTRIBUTE_sentinel
+
+/* Define to 1 if your GCC C compiler supports the 'unused' attribute. */
+#undef HAVE_ATTRIBUTE_unused
+
+/* Define to 1 if your GCC C compiler supports the 'warn_unused_result'
+   attribute. */
+#undef HAVE_ATTRIBUTE_warn_unused_result
+
+/* Define this to indicate the ${BKTR_DESCRIP} library */
+#undef HAVE_BKTR
+
+/* Define to indicate the ${BKTR_DESCRIP} library version */
+#undef HAVE_BKTR_VERSION
+
 /* Define to 1 if byteswap.h macros are available. */
 #undef HAVE_BYTESWAP_H
 
+/* Define this to indicate the ${CAP_DESCRIP} library */
+#undef HAVE_CAP
+
+/* Define to indicate the ${CAP_DESCRIP} library version */
+#undef HAVE_CAP_VERSION
+
+/* Define this to indicate the ${CEIL_DESCRIP} library */
+#undef HAVE_CEIL
+
+/* Define this to indicate the ${CEILL_DESCRIP} library */
+#undef HAVE_CEILL
+
+/* Define to indicate the ${CEILL_DESCRIP} library version */
+#undef HAVE_CEILL_VERSION
+
+/* Define to indicate the ${CEIL_DESCRIP} library version */
+#undef HAVE_CEIL_VERSION
+
 /* Define to 1 if your system has a working `chown' function. */
 #undef HAVE_CHOWN
 
+/* Define this to indicate the ${COS_DESCRIP} library */
+#undef HAVE_COS
+
+/* Define this to indicate the ${COSL_DESCRIP} library */
+#undef HAVE_COSL
+
+/* Define to indicate the ${COSL_DESCRIP} library version */
+#undef HAVE_COSL_VERSION
+
+/* Define to indicate the ${COS_DESCRIP} library version */
+#undef HAVE_COS_VERSION
+
+/* Define this to indicate the ${CRYPTO_DESCRIP} library */
+#undef HAVE_CRYPTO
+
+/* Define to indicate the ${CRYPTO_DESCRIP} library version */
+#undef HAVE_CRYPTO_VERSION
+
 /* Define if your system has the curl libraries. */
 #undef HAVE_CURL
+
+/* Define this to indicate the ${CURSES_DESCRIP} library */
+#undef HAVE_CURSES
+
+/* Define to indicate the ${CURSES_DESCRIP} library version */
+#undef HAVE_CURSES_VERSION
+
+/* Define if your system has the DAHDI headers. */
+#undef HAVE_DAHDI
+
+/* Define DAHDI headers version */
+#undef HAVE_DAHDI_VERSION
 
 /* Define to 1 if your system has /dev/urandom. */
 #undef HAVE_DEV_URANDOM
@@ -62,12 +196,87 @@
 /* Define to 1 if you have the `endpwent' function. */
 #undef HAVE_ENDPWENT
 
+/* Define this to indicate the ${EXP_DESCRIP} library */
+#undef HAVE_EXP
+
+/* Define this to indicate the ${EXP10_DESCRIP} library */
+#undef HAVE_EXP10
+
+/* Define this to indicate the ${EXP10L_DESCRIP} library */
+#undef HAVE_EXP10L
+
+/* Define to indicate the ${EXP10L_DESCRIP} library version */
+#undef HAVE_EXP10L_VERSION
+
+/* Define to indicate the ${EXP10_DESCRIP} library version */
+#undef HAVE_EXP10_VERSION
+
+/* Define this to indicate the ${EXP2_DESCRIP} library */
+#undef HAVE_EXP2
+
+/* Define this to indicate the ${EXP2L_DESCRIP} library */
+#undef HAVE_EXP2L
+
+/* Define to indicate the ${EXP2L_DESCRIP} library version */
+#undef HAVE_EXP2L_VERSION
+
+/* Define to indicate the ${EXP2_DESCRIP} library version */
+#undef HAVE_EXP2_VERSION
+
+/* Define this to indicate the ${EXPL_DESCRIP} library */
+#undef HAVE_EXPL
+
+/* Define to indicate the ${EXPL_DESCRIP} library version */
+#undef HAVE_EXPL_VERSION
+
+/* Define to indicate the ${EXP_DESCRIP} library version */
+#undef HAVE_EXP_VERSION
+
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
+/* Define this to indicate the ${FFMPEG_DESCRIP} library */
+#undef HAVE_FFMPEG
+
+/* Define to indicate the ${FFMPEG_DESCRIP} library version */
+#undef HAVE_FFMPEG_VERSION
+
+/* Define this to indicate the ${FLOOR_DESCRIP} library */
+#undef HAVE_FLOOR
+
+/* Define this to indicate the ${FLOORL_DESCRIP} library */
+#undef HAVE_FLOORL
+
+/* Define to indicate the ${FLOORL_DESCRIP} library version */
+#undef HAVE_FLOORL_VERSION
+
+/* Define to indicate the ${FLOOR_DESCRIP} library version */
+#undef HAVE_FLOOR_VERSION
+
+/* Define this to indicate the ${FMOD_DESCRIP} library */
+#undef HAVE_FMOD
+
+/* Define this to indicate the ${FMODL_DESCRIP} library */
+#undef HAVE_FMODL
+
+/* Define to indicate the ${FMODL_DESCRIP} library version */
+#undef HAVE_FMODL_VERSION
+
+/* Define to indicate the ${FMOD_DESCRIP} library version */
+#undef HAVE_FMOD_VERSION
+
 /* Define to 1 if you have the `fopencookie' function. */
 #undef HAVE_FOPENCOOKIE
 
+/* Define to 1 if you have the `fork' function. */
+#undef HAVE_FORK
+
+/* Define this to indicate the ${FREETDS_DESCRIP} library */
+#undef HAVE_FREETDS
+
+/* Define to indicate the ${FREETDS_DESCRIP} library version */
+#undef HAVE_FREETDS_VERSION
+
 /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
 #undef HAVE_FSEEKO
 
@@ -95,6 +304,12 @@
 /* Define to 1 if you have the `gethostname' function. */
 #undef HAVE_GETHOSTNAME
 
+/* Define if your system has the GETIFADDRS headers. */
+#undef HAVE_GETIFADDRS
+
+/* Define GETIFADDRS headers version */
+#undef HAVE_GETIFADDRS_VERSION
+
 /* Define to 1 if you have the `getloadavg' function. */
 #undef HAVE_GETLOADAVG
 
@@ -107,6 +322,9 @@
 /* Define to 1 if you have the `glob' function. */
 #undef HAVE_GLOB
 
+/* Define if your system has the GMIME libraries. */
+#undef HAVE_GMIME
+
 /* Define to indicate the GSM library */
 #undef HAVE_GSM
 
@@ -116,8 +334,35 @@
 /* Define to indicate that gsm.h has no prefix for its location */
 #undef HAVE_GSM_HEADER
 
+/* Define if your system has the GTK libraries. */
+#undef HAVE_GTK
+
 /* Define if your system has the GTK2 libraries. */
 #undef HAVE_GTK2
+
+/* Define this to indicate the ${HOARD_DESCRIP} library */
+#undef HAVE_HOARD
+
+/* Define to indicate the ${HOARD_DESCRIP} library version */
+#undef HAVE_HOARD_VERSION
+
+/* Define this to indicate the ${ICAL_DESCRIP} library */
+#undef HAVE_ICAL
+
+/* Define to indicate the ${ICAL_DESCRIP} library version */
+#undef HAVE_ICAL_VERSION
+
+/* Define this to indicate the ${ICONV_DESCRIP} library */
+#undef HAVE_ICONV
+
+/* Define to indicate the ${ICONV_DESCRIP} library version */
+#undef HAVE_ICONV_VERSION
+
+/* Define this to indicate the ${IKSEMEL_DESCRIP} library */
+#undef HAVE_IKSEMEL
+
+/* Define to indicate the ${IKSEMEL_DESCRIP} library version */
+#undef HAVE_IKSEMEL_VERSION
 
 /* Define if your system has the UW IMAP Toolkit c-client library. */
 #undef HAVE_IMAP_TK
@@ -135,9 +380,39 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define this to indicate the ${IODBC_DESCRIP} library */
+#undef HAVE_IODBC
+
+/* Define to indicate the ${IODBC_DESCRIP} library version */
+#undef HAVE_IODBC_VERSION
+
+/* Define if your system has the IP_MTU_DISCOVER headers. */
+#undef HAVE_IP_MTU_DISCOVER
+
+/* Define IP_MTU_DISCOVER headers version */
+#undef HAVE_IP_MTU_DISCOVER_VERSION
+
 /* Define to 1 if you have the `isascii' function. */
 #undef HAVE_ISASCII
 
+/* Define this to indicate the ${ISDNNET_DESCRIP} library */
+#undef HAVE_ISDNNET
+
+/* Define to indicate the ${ISDNNET_DESCRIP} library version */
+#undef HAVE_ISDNNET_VERSION
+
+/* Define this to indicate the ${JACK_DESCRIP} library */
+#undef HAVE_JACK
+
+/* 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
 
@@ -153,6 +428,54 @@
 /* Define to 1 if you have the `localtime_r' function. */
 #undef HAVE_LOCALTIME_R
 
+/* Define this to indicate the ${LOG_DESCRIP} library */
+#undef HAVE_LOG
+
+/* Define this to indicate the ${LOG10_DESCRIP} library */
+#undef HAVE_LOG10
+
+/* Define this to indicate the ${LOG10L_DESCRIP} library */
+#undef HAVE_LOG10L
+
+/* Define to indicate the ${LOG10L_DESCRIP} library version */
+#undef HAVE_LOG10L_VERSION
+
+/* Define to indicate the ${LOG10_DESCRIP} library version */
+#undef HAVE_LOG10_VERSION
+
+/* Define this to indicate the ${LOG2_DESCRIP} library */
+#undef HAVE_LOG2
+
+/* Define this to indicate the ${LOG2L_DESCRIP} library */
+#undef HAVE_LOG2L
+
+/* Define to indicate the ${LOG2L_DESCRIP} library version */
+#undef HAVE_LOG2L_VERSION
+
+/* Define to indicate the ${LOG2_DESCRIP} library version */
+#undef HAVE_LOG2_VERSION
+
+/* Define this to indicate the ${LOGL_DESCRIP} library */
+#undef HAVE_LOGL
+
+/* Define to indicate the ${LOGL_DESCRIP} library version */
+#undef HAVE_LOGL_VERSION
+
+/* Define to indicate the ${LOG_DESCRIP} library version */
+#undef HAVE_LOG_VERSION
+
+/* Define this to indicate the ${LTDL_DESCRIP} library */
+#undef HAVE_LTDL
+
+/* Define to indicate the ${LTDL_DESCRIP} library version */
+#undef HAVE_LTDL_VERSION
+
+/* Define this to indicate the ${LUA_DESCRIP} library */
+#undef HAVE_LUA
+
+/* Define to indicate the ${LUA_DESCRIP} library version */
+#undef HAVE_LUA_VERSION
+
 /* Define to 1 if you have the <malloc.h> header file. */
 #undef HAVE_MALLOC_H
 
@@ -168,6 +491,24 @@
 /* Define to 1 if you have the `memset' function. */
 #undef HAVE_MEMSET
 
+/* Define this to indicate the ${MISDN_DESCRIP} library */
+#undef HAVE_MISDN
+
+/* Define if your system has the MISDN_FAC_ERROR headers. */
+#undef HAVE_MISDN_FAC_ERROR
+
+/* Define MISDN_FAC_ERROR headers version */
+#undef HAVE_MISDN_FAC_ERROR_VERSION
+
+/* Define if your system has the MISDN_FAC_RESULT headers. */
+#undef HAVE_MISDN_FAC_RESULT
+
+/* Define MISDN_FAC_RESULT headers version */
+#undef HAVE_MISDN_FAC_RESULT_VERSION
+
+/* Define to indicate the ${MISDN_DESCRIP} library version */
+#undef HAVE_MISDN_VERSION
+
 /* Define to 1 if you have the `mkdir' function. */
 #undef HAVE_MKDIR
 
@@ -177,15 +518,72 @@
 /* Define to 1 if you have the `munmap' function. */
 #undef HAVE_MUNMAP
 
+/* Define this to indicate the ${NBS_DESCRIP} library */
+#undef HAVE_NBS
+
+/* Define to indicate the ${NBS_DESCRIP} library version */
+#undef HAVE_NBS_VERSION
+
+/* Define this to indicate the ${NCURSES_DESCRIP} library */
+#undef HAVE_NCURSES
+
+/* Define to indicate the ${NCURSES_DESCRIP} library version */
+#undef HAVE_NCURSES_VERSION
+
 /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
 #undef HAVE_NDIR_H
 
+/* Define if your system has the NEON libraries. */
+#undef HAVE_NEON
+
 /* Define to 1 if you have the <netdb.h> header file. */
 #undef HAVE_NETDB_H
 
 /* Define to 1 if you have the <netinet/in.h> header file. */
 #undef HAVE_NETINET_IN_H
 
+/* Define if your system has the NETSNMP libraries. */
+#undef HAVE_NETSNMP
+
+/* Define this to indicate the ${NEWT_DESCRIP} library */
+#undef HAVE_NEWT
+
+/* Define to indicate the ${NEWT_DESCRIP} library version */
+#undef HAVE_NEWT_VERSION
+
+/* Define this to indicate the ${OGG_DESCRIP} library */
+#undef HAVE_OGG
+
+/* Define to indicate the ${OGG_DESCRIP} library version */
+#undef HAVE_OGG_VERSION
+
+/* Define this to indicate the ${OPENAIS_DESCRIP} library */
+#undef HAVE_OPENAIS
+
+/* Define to indicate the ${OPENAIS_DESCRIP} library version */
+#undef HAVE_OPENAIS_VERSION
+
+/* Define if your system has the OpenH323 libraries. */
+#undef HAVE_OPENH323
+
+/* Define this to indicate the ${OPENSSL_DESCRIP} library */
+#undef HAVE_OPENSSL
+
+/* Define to indicate the ${OPENSSL_DESCRIP} library version */
+#undef HAVE_OPENSSL_VERSION
+
+/* Define this to indicate the ${OSPTK_DESCRIP} library */
+#undef HAVE_OSPTK
+
+/* Define to indicate the ${OSPTK_DESCRIP} library version */
+#undef HAVE_OSPTK_VERSION
+
+/* Define this to indicate the ${OSS_DESCRIP} library */
+#undef HAVE_OSS
+
+/* Define to indicate the ${OSS_DESCRIP} library version */
+#undef HAVE_OSS_VERSION
+
 /* Define to 1 if OSX atomic operations are supported. */
 #undef HAVE_OSX_ATOMICS
 
@@ -194,11 +592,63 @@
 
 /* Define to 1 if your system defines IP_PKTINFO. */
 #undef HAVE_PKTINFO
+
+/* Define this to indicate the ${POPT_DESCRIP} library */
+#undef HAVE_POPT
+
+/* Define to indicate the ${POPT_DESCRIP} library version */
+#undef HAVE_POPT_VERSION
+
+/* Define this to indicate the ${PORTAUDIO_DESCRIP} library */
+#undef HAVE_PORTAUDIO
+
+/* Define to indicate the ${PORTAUDIO_DESCRIP} library version */
+#undef HAVE_PORTAUDIO_VERSION
+
+/* Define this to indicate the ${POW_DESCRIP} library */
+#undef HAVE_POW
+
+/* Define this to indicate the ${POWL_DESCRIP} library */
+#undef HAVE_POWL
+
+/* Define to indicate the ${POWL_DESCRIP} library version */
+#undef HAVE_POWL_VERSION
+
+/* Define to indicate the ${POW_DESCRIP} library version */
+#undef HAVE_POW_VERSION
+
+/* Define this to indicate the ${PRI_DESCRIP} library */
+#undef HAVE_PRI
+
+/* Define this to indicate the ${PRI_INBANDDISCONNECT_DESCRIP} library */
+#undef HAVE_PRI_INBANDDISCONNECT
+
+/* Define to indicate the ${PRI_INBANDDISCONNECT_DESCRIP} library version */
+#undef HAVE_PRI_INBANDDISCONNECT_VERSION
+
+/* Define to indicate the ${PRI_DESCRIP} library version */
+#undef HAVE_PRI_VERSION
+
+/* Define if you have POSIX threads libraries and header files. */
+#undef HAVE_PTHREAD
 
 /* Define to 1 if your system defines PTHREAD_MUTEX_RECURSIVE_NP in pthread.h
    */
 #undef HAVE_PTHREAD_MUTEX_RECURSIVE_NP
 
+/* Define if your system has the PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+   headers. */
+#undef HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+
+/* Define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP headers version */
+#undef HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP_VERSION
+
+/* Define if your system has the PTHREAD_RWLOCK_INITIALIZER headers. */
+#undef HAVE_PTHREAD_RWLOCK_INITIALIZER
+
+/* Define PTHREAD_RWLOCK_INITIALIZER headers version */
+#undef HAVE_PTHREAD_RWLOCK_INITIALIZER_VERSION
+
 /* Define to 1 if your system defines PTHREAD_RWLOCK_PREFER_WRITER_NP in
    pthread.h */
 #undef HAVE_PTHREAD_RWLOCK_PREFER_WRITER_NP
@@ -209,9 +659,36 @@
 /* Define to 1 if you have the `putenv' function. */
 #undef HAVE_PUTENV
 
+/* Define if your system has the PWLib libraries. */
+#undef HAVE_PWLIB
+
+/* Define this to indicate the ${RADIUS_DESCRIP} library */
+#undef HAVE_RADIUS
+
+/* Define to indicate the ${RADIUS_DESCRIP} library version */
+#undef HAVE_RADIUS_VERSION
+
 /* Define to 1 if you have the `regcomp' function. */
 #undef HAVE_REGCOMP
 
+/* Define this to indicate the ${REMAINDER_DESCRIP} library */
+#undef HAVE_REMAINDER
+
+/* Define this to indicate the ${REMAINDERL_DESCRIP} library */
+#undef HAVE_REMAINDERL
+
+/* Define to indicate the ${REMAINDERL_DESCRIP} library version */
+#undef HAVE_REMAINDERL_VERSION
+
+/* Define to indicate the ${REMAINDER_DESCRIP} library version */
+#undef HAVE_REMAINDER_VERSION
+
+/* Define this to indicate the ${RESAMPLE_DESCRIP} library */
+#undef HAVE_RESAMPLE
+
+/* Define to indicate the ${RESAMPLE_DESCRIP} library version */
+#undef HAVE_RESAMPLE_VERSION
+
 /* Define to 1 if your system has the ndestroy resolver function. */
 #undef HAVE_RES_NDESTROY
 
@@ -221,20 +698,125 @@
 /* Define to 1 if you have the `re_comp' function. */
 #undef HAVE_RE_COMP
 
+/* Define this to indicate the ${RINT_DESCRIP} library */
+#undef HAVE_RINT
+
+/* Define this to indicate the ${RINTL_DESCRIP} library */
+#undef HAVE_RINTL
+
+/* Define to indicate the ${RINTL_DESCRIP} library version */
+#undef HAVE_RINTL_VERSION
+
+/* Define to indicate the ${RINT_DESCRIP} library version */
+#undef HAVE_RINT_VERSION
+
+/* Define this to indicate the ${ROUND_DESCRIP} library */
+#undef HAVE_ROUND
+
+/* Define this to indicate the ${ROUNDL_DESCRIP} library */
+#undef HAVE_ROUNDL
+
+/* Define to indicate the ${ROUNDL_DESCRIP} library version */
+#undef HAVE_ROUNDL_VERSION
+
+/* Define to indicate the ${ROUND_DESCRIP} library version */
+#undef HAVE_ROUND_VERSION
+
+/* Define if your system has the RTLD_NOLOAD headers. */
+#undef HAVE_RTLD_NOLOAD
+
+/* Define RTLD_NOLOAD headers version */
+#undef HAVE_RTLD_NOLOAD_VERSION
+
 /* Define to 1 if your system has /sbin/launchd. */
 #undef HAVE_SBIN_LAUNCHD
 
+/* Define if your system has the SDL libraries. */
+#undef HAVE_SDL
+
+/* Define this to indicate the ${SDL_IMAGE_DESCRIP} library */
+#undef HAVE_SDL_IMAGE
+
+/* Define to indicate the ${SDL_IMAGE_DESCRIP} library version */
+#undef HAVE_SDL_IMAGE_VERSION
+
 /* Define to 1 if you have the `select' function. */
 #undef HAVE_SELECT
 
 /* Define to 1 if you have the `setenv' function. */
 #undef HAVE_SETENV
 
+/* Define this to indicate the ${SIN_DESCRIP} library */
+#undef HAVE_SIN
+
+/* Define this to indicate the ${SINL_DESCRIP} library */
+#undef HAVE_SINL
+
+/* Define to indicate the ${SINL_DESCRIP} library version */
+#undef HAVE_SINL_VERSION
+
+/* Define to indicate the ${SIN_DESCRIP} library version */
+#undef HAVE_SIN_VERSION
+
 /* Define to 1 if you have the `socket' function. */
 #undef HAVE_SOCKET
 
 /* Define to 1 if your system has soxmix application. */
 #undef HAVE_SOXMIX
+
+/* Define this to indicate the ${SPANDSP_DESCRIP} library */
+#undef HAVE_SPANDSP
+
+/* Define to indicate the ${SPANDSP_DESCRIP} library version */
+#undef HAVE_SPANDSP_VERSION
+
+/* Define this to indicate the ${SPEEX_DESCRIP} library */
+#undef HAVE_SPEEX
+
+/* Define this to indicate the ${SPEEXDSP_DESCRIP} library */
+#undef HAVE_SPEEXDSP
+
+/* Define to indicate the ${SPEEXDSP_DESCRIP} library version */
+#undef HAVE_SPEEXDSP_VERSION
+
+/* Define this to indicate the ${SPEEX_PREPROCESS_DESCRIP} library */
+#undef HAVE_SPEEX_PREPROCESS
+
+/* Define to indicate the ${SPEEX_PREPROCESS_DESCRIP} library version */
+#undef HAVE_SPEEX_PREPROCESS_VERSION
+
+/* Define to indicate the ${SPEEX_DESCRIP} library version */
+#undef HAVE_SPEEX_VERSION
+
+/* Define this to indicate the ${SQLITE_DESCRIP} library */
+#undef HAVE_SQLITE
+
+/* Define this to indicate the ${SQLITE3_DESCRIP} library */
+#undef HAVE_SQLITE3
+
+/* Define to indicate the ${SQLITE3_DESCRIP} library version */
+#undef HAVE_SQLITE3_VERSION
+
+/* Define to indicate the ${SQLITE_DESCRIP} library version */
+#undef HAVE_SQLITE_VERSION
+
+/* Define this to indicate the ${SQRT_DESCRIP} library */
+#undef HAVE_SQRT
+
+/* Define this to indicate the ${SQRTL_DESCRIP} library */
+#undef HAVE_SQRTL
+
+/* Define to indicate the ${SQRTL_DESCRIP} library version */
+#undef HAVE_SQRTL_VERSION
+
+/* Define to indicate the ${SQRT_DESCRIP} library version */
+#undef HAVE_SQRT_VERSION
+
+/* Define this to indicate the ${SS7_DESCRIP} library */
+#undef HAVE_SS7
+
+/* Define to indicate the ${SS7_DESCRIP} library version */
+#undef HAVE_SS7_VERSION
 
 /* Define to 1 if `stat' has the bug that it succeeds when given the
    zero-length file name argument. */
@@ -310,14 +892,32 @@
 /* Define to 1 if you have the `strstr' function. */
 #undef HAVE_STRSTR
 
+/* Define this to indicate the ${STRTOD_DESCRIP} library */
+#undef HAVE_STRTOD
+
+/* Define to indicate the ${STRTOD_DESCRIP} library version */
+#undef HAVE_STRTOD_VERSION
+
 /* Define to 1 if you have the `strtol' function. */
 #undef HAVE_STRTOL
 
+/* Define this to indicate the ${STRTOLD_DESCRIP} library */
+#undef HAVE_STRTOLD
+
+/* Define to indicate the ${STRTOLD_DESCRIP} library version */
+#undef HAVE_STRTOLD_VERSION
+
 /* Define to 1 if you have the `strtoq' function. */
 #undef HAVE_STRTOQ
 
 /* Define to 1 if `st_blksize' is member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_BLKSIZE
+
+/* Define this to indicate the ${SUPPSERV_DESCRIP} library */
+#undef HAVE_SUPPSERV
+
+/* Define to indicate the ${SUPPSERV_DESCRIP} library version */
+#undef HAVE_SUPPSERV_VERSION
 
 /* Define to 1 if your system has sysinfo support */
 #undef HAVE_SYSINFO
@@ -370,18 +970,72 @@
 /* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
 #undef HAVE_SYS_WAIT_H
 
+/* Define this to indicate the ${TAN_DESCRIP} library */
+#undef HAVE_TAN
+
+/* Define this to indicate the ${TANL_DESCRIP} library */
+#undef HAVE_TANL
+
+/* Define to indicate the ${TANL_DESCRIP} library version */
+#undef HAVE_TANL_VERSION
+
+/* Define to indicate the ${TAN_DESCRIP} library version */
+#undef HAVE_TAN_VERSION
+
+/* Define this to indicate the ${TERMCAP_DESCRIP} library */
+#undef HAVE_TERMCAP
+
+/* Define to indicate the ${TERMCAP_DESCRIP} library version */
+#undef HAVE_TERMCAP_VERSION
+
 /* Define to 1 if you have the <termios.h> header file. */
 #undef HAVE_TERMIOS_H
 
 /* Define to 1 if your system defines timersub. */
 #undef HAVE_TIMERSUB
 
+/* Define this to indicate the ${TINFO_DESCRIP} library */
+#undef HAVE_TINFO
+
+/* Define to indicate the ${TINFO_DESCRIP} library version */
+#undef HAVE_TINFO_VERSION
+
+/* Define this to indicate the ${TONEZONE_DESCRIP} library */
+#undef HAVE_TONEZONE
+
+/* Define to indicate the ${TONEZONE_DESCRIP} library version */
+#undef HAVE_TONEZONE_VERSION
+
+/* Define this to indicate the ${TRUNC_DESCRIP} library */
+#undef HAVE_TRUNC
+
+/* Define this to indicate the ${TRUNCL_DESCRIP} library */
+#undef HAVE_TRUNCL
+
+/* Define to indicate the ${TRUNCL_DESCRIP} library version */
+#undef HAVE_TRUNCL_VERSION
+
+/* Define to indicate the ${TRUNC_DESCRIP} library version */
+#undef HAVE_TRUNC_VERSION
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
+/* Define this to indicate the ${UNIXODBC_DESCRIP} library */
+#undef HAVE_UNIXODBC
+
+/* Define to indicate the ${UNIXODBC_DESCRIP} library version */
+#undef HAVE_UNIXODBC_VERSION
+
 /* Define to 1 if you have the `unsetenv' function. */
 #undef HAVE_UNSETENV
 
+/* Define this to indicate the ${USB_DESCRIP} library */
+#undef HAVE_USB
+
+/* Define to indicate the ${USB_DESCRIP} library version */
+#undef HAVE_USB_VERSION
+
 /* Define to 1 if you have the `utime' function. */
 #undef HAVE_UTIME
 
@@ -394,9 +1048,21 @@
 /* Define to 1 if you have the `vasprintf' function. */
 #undef HAVE_VASPRINTF
 
+/* Define to 1 if you have the `vfork' function. */
+#undef HAVE_VFORK
+
+/* Define to 1 if you have the <vfork.h> header file. */
+#undef HAVE_VFORK_H
+
 /* Define to 1 if your system has linux/videodev.h. */
 #undef HAVE_VIDEODEV_H
 
+/* Define this to indicate the ${VORBIS_DESCRIP} library */
+#undef HAVE_VORBIS
+
+/* Define to indicate the ${VORBIS_DESCRIP} library version */
+#undef HAVE_VORBIS_VERSION
+
 /* Define if your system has the VoiceTronix API libraries. */
 #undef HAVE_VPB
 
@@ -408,6 +1074,24 @@
 
 /* Define to 1 if you have the <winsock.h> header file. */
 #undef HAVE_WINSOCK_H
+
+/* Define to 1 if `fork' works. */
+#undef HAVE_WORKING_FORK
+
+/* Define to 1 if `vfork' works. */
+#undef HAVE_WORKING_VFORK
+
+/* Define this to indicate the ${X11_DESCRIP} library */
+#undef HAVE_X11
+
+/* Define to indicate the ${X11_DESCRIP} library version */
+#undef HAVE_X11_VERSION
+
+/* Define this to indicate the ${ZLIB_DESCRIP} library */
+#undef HAVE_ZLIB
+
+/* Define to indicate the ${ZLIB_DESCRIP} library version */
+#undef HAVE_ZLIB_VERSION
 
 /* Define to 1 if the system has the type `_Bool'. */
 #undef HAVE__BOOL
@@ -436,6 +1120,10 @@
 
 /* Define to 1 if the C compiler supports function prototypes. */
 #undef PROTOTYPES
+
+/* Define to necessary symbol if this constant uses a non-standard name on
+   your system. */
+#undef PTHREAD_CREATE_JOINABLE
 
 /* Define as the return type of signal handlers (`int' or `void'). */
 #undef RETSIGTYPE
@@ -512,6 +1200,9 @@
 #ifndef _POSIX_PTHREAD_SEMANTICS
 # undef _POSIX_PTHREAD_SEMANTICS
 #endif
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
 
 /* Define like PROTOTYPES; this can be used by system headers. */
 #undef __PROTOTYPES
@@ -543,6 +1234,9 @@
 /* Define to `int' if <sys/types.h> doesn't define. */
 #undef uid_t
 
+/* Define as `fork' if `vfork' does not work. */
+#undef vfork
+
 /* Define to empty if the keyword `volatile' does not work. Warning: valid
    code using `volatile' can become incorrect without. Disable with care. */
 #undef volatile

Modified: team/twilson/calendaring/main/calendar.c
URL: http://svn.digium.com/view/asterisk/team/twilson/calendaring/main/calendar.c?view=diff&rev=151870&r1=151869&r2=151870
==============================================================================
--- team/twilson/calendaring/main/calendar.c (original)
+++ team/twilson/calendaring/main/calendar.c Fri Oct 24 03:17:19 2008
@@ -35,6 +35,7 @@
 #include "asterisk/dial.h"
 #include "asterisk/cli.h"
 #include "asterisk/pbx.h"
+#include "asterisk/app.h"
 
 #define TASK_POOL_THREADS 8
 #define MAX_BUCKETS 19
@@ -47,6 +48,8 @@
 
 static void event_notification_destroy(void *data);
 static void *event_notification_duplicate(void *data);
+static void eventlist_destroy(void *data);
+static void *eventlist_duplicate(void *data);
 
 static const struct ast_datastore_info event_notification_datastore = {
 	.type = "EventNotification",
@@ -54,12 +57,24 @@
 	.duplicate = event_notification_duplicate,
 };
 
+static const struct ast_datastore_info eventlist_datastore_info = {
+	.type = "CalendarEventList",
+	.destroy = eventlist_destroy,
+	.duplicate = eventlist_duplicate,
+};
+
 struct caltechlist {
 	const struct ast_calendar_tech *tech;
 	AST_LIST_ENTRY(caltechlist) list;
 };
 
+struct evententry {
+	struct ast_calendar_event *event;
+	AST_LIST_ENTRY(evententry) list;
+};
+
 AST_LIST_HEAD_NOLOCK_STATIC(techs, caltechlist);
+AST_LIST_HEAD_NOLOCK(eventlist, evententry); 
 
 static struct ast_calendar *unref_calendar(struct ast_calendar *cal)
 {
@@ -127,6 +142,17 @@
 	ast_calendar_clear_events(cal);
 	ast_string_field_free_memory(cal);
 	ao2_unlock(cal);
+}
+
+static void eventlist_destructor(void *obj)
+{
+	struct eventlist *events = obj;
+	struct evententry *entry;
+
+	while ((entry = AST_LIST_REMOVE_HEAD(events, list))) {
+		ao2_ref(entry->event, -1);
+		ast_free(entry);
+	}
 }
 
 static int calendar_is_busy(struct ast_calendar *cal)
@@ -658,6 +684,293 @@
     .read = calendar_busy_exec,
 };
 
+static int add_event_to_list(struct eventlist *events, struct ast_calendar_event *event, time_t start, time_t end)
+{
+	struct evententry *entry, *iter;
+	int event_startdiff = abs(start - event->start);
+	int event_enddiff = abs(end - event->end);
+	int i = 0;
+
+	if (!(entry = ast_calloc(1, sizeof(*entry)))) {
+		ast_log(LOG_ERROR, "Unable to allocate memory for event list\n");
+		return -1;
+	}
+
+	entry->event = event;
+	ao2_ref(event, +1);
+
+	if (start == end) {
+		AST_LIST_TRAVERSE_SAFE_BEGIN(events, iter, list) {
+			int startdiff = abs(iter->event->start - start);
+
+			ast_debug(10, "Comparing %s with startdiff %d to %s with startdiff %d\n", event->summary, event_startdiff, iter->event->summary, startdiff);
+			++i;
+			if (startdiff > event_startdiff) {
+				AST_LIST_INSERT_BEFORE_CURRENT(entry, list);
+				return i;
+			}
+			if (startdiff == event_startdiff) {
+				int enddiff = abs(iter->event->end - end);
+
+				if (enddiff > event_enddiff) {
+					AST_LIST_INSERT_BEFORE_CURRENT(entry, list);
+					return i;
+				}
+				if (event_startdiff == enddiff) {
+					if (strcmp(event->uid, iter->event->uid) < 0) {
+						AST_LIST_INSERT_BEFORE_CURRENT(entry, list);
+						return i;
+					}
+				}
+			}
+		}
+		AST_LIST_TRAVERSE_SAFE_END;
+
+		AST_LIST_INSERT_TAIL(events, entry, list);
+
+		return i;
+	}
+
+	AST_LIST_TRAVERSE_SAFE_BEGIN(events, iter, list) {
+		++i;
+		if (iter->event->start > event->start) {
+			AST_LIST_INSERT_BEFORE_CURRENT(entry, list);
+			return i;
+		}
+
+		if (iter->event->start == event->start) {
+			if ((iter->event->end - iter->event->start) == (event->end - event->start)) {
+				if (strcmp(event->uid, iter->event->uid) < 0) {
+					AST_LIST_INSERT_BEFORE_CURRENT(entry, list);
+					return i;
+				}
+			}
+			if ((iter->event->end - iter->event->start) < (event->end - event->start)) {
+				AST_LIST_INSERT_BEFORE_CURRENT(entry, list);
+				return i;
+			}
+		}
+	}
+	AST_LIST_TRAVERSE_SAFE_END;
+
+	AST_LIST_INSERT_TAIL(events, entry, list);
+
+	return i;
+}
+
+/*! \brief Generate 32 byte random string (stolen from chan_sip.c)*/
+static char *generate_random_string(char *buf, size_t size)
+{
+	long val[4];
+	int x;
+
+	for (x=0; x<4; x++)
+		val[x] = ast_random();
+	snprintf(buf, size, "%08lx%08lx%08lx%08lx", val[0], val[1], val[2], val[3]);
+
+	return buf;
+}
+
+static void eventlist_destroy(void *data)
+{
+	struct eventlist *events = data;
+
+	ao2_ref(events, -1);
+}
+
+static void *eventlist_duplicate(void *data)
+{
+	struct eventlist *events = data;
+
+	if (!events) {
+		return NULL;
+	}
+
+	ao2_ref(events, +1);
+
+	return events;
+}
+
+static int calendar_query_exec(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
+{
+	struct ast_calendar *cal;
+	struct ao2_iterator i;
+	struct ast_calendar_event *event;
+	struct eventlist *events;
+	time_t start = INT_MIN, end = INT_MAX;
+	struct ast_datastore *eventlist_datastore;
+	AST_DECLARE_APP_ARGS(args,
+		AST_APP_ARG(calendar);
+		AST_APP_ARG(start);
+		AST_APP_ARG(end);
+	);
+
+	if (!chan) {
+		ast_log(LOG_WARNING, "CALENDAR_QUERY requires a channel to store the data on\n");
+		return -1;
+	}
+
+	AST_STANDARD_APP_ARGS(args, data);
+
+	if (ast_strlen_zero(args.calendar)) {
+		ast_log(LOG_WARNING, "CALENDAR_QUERY requires a calendar argument\n");
+		return -1;
+	}	
+
+	if (!(cal = find_calendar(args.calendar))) {
+		ast_log(LOG_WARNING, "Unknown calendar '%s'\n", args.calendar);
+		return -1;
+	}
+
+	if (!(events = ao2_alloc(sizeof(struct eventlist), eventlist_destructor))) {
+		ast_log(LOG_ERROR, "Unable to allocate memory for event list\n");
+		cal = unref_calendar(cal);
+		return -1;
+	}
+
+	if (!ast_strlen_zero(args.start)) {
+		start = atoi(args.start);
+	}
+
+	if (!ast_strlen_zero(args.end)) {
+		end = atoi(args.end);
+	}
+
+	i = ao2_iterator_init(cal->events, 0);
+	while ((event = ao2_iterator_next(&i))) {
+		if (!(start > event->end || end < event->start)) {
+			ast_debug(10, "%s (%ld - %ld) overlapped with (%ld - %ld)\n", event->summary, event->start, event->end, start, end);
+			if (add_event_to_list(events, event, start, end) < 0) {
+				event = ast_calendar_unref_event(event);
+				return -1;
+			}
+		}
+
+		event = ast_calendar_unref_event(event);
+	}
+
+	ast_channel_lock(chan);
+	do {
+		generate_random_string(buf, len);
+	} while (ast_channel_datastore_find(chan, &eventlist_datastore_info, buf));
+	ast_channel_unlock(chan);
+
+	if (!(eventlist_datastore = ast_datastore_alloc(&eventlist_datastore_info, buf))) {
+		ast_log(LOG_ERROR, "Could not allocate datastore!\n");
+		return -1;
+	}
+
+	eventlist_datastore->inheritance = DATASTORE_INHERIT_FOREVER;
+	eventlist_datastore->data = events;
+
+	ast_channel_lock(chan);
+	ast_channel_datastore_add(chan, eventlist_datastore);
+	ast_channel_unlock(chan);
+
+	return 0;
+}
+
+static struct ast_custom_function calendar_query_function = {
+    .name = "CALENDAR_QUERY",
+    .synopsis = "Query a calendar server and store the data on a channel.\n"
+	            "Return the id for accessing the result with CALENDAR_QUERY_RESULT()\n",
+    .syntax = "CALENDAR_QUERY(<calendar>[,<start>][,<end>])",
+    .desc = "Options:\n"
+	        "  <calendar> : A named calendar entry in the calendar.conf file\n"
+			"  <start>    : The start time of the query (in seconds since epoch)\n"
+			"  <end>      : The end time of the query (in seconds since epoch)\n",
+    .read = calendar_query_exec,
+};
+
+static int calendar_query_result_exec(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
+{
+	struct ast_datastore *datastore;
+	struct eventlist *events;
+	struct evententry *entry;
+	int row = 1;
+	AST_DECLARE_APP_ARGS(args,
+		AST_APP_ARG(id);
+		AST_APP_ARG(field);
+		AST_APP_ARG(row);
+	);
+
+	if (!chan) {
+		ast_log(LOG_WARNING, "CALENDAR_QUERY_RESULT requires a channel\n");
+		return -1;
+	}
+
+	AST_STANDARD_APP_ARGS(args, data);
+
+	if (ast_strlen_zero(args.id) || ast_strlen_zero(args.field)) {
+		ast_log(LOG_WARNING, "CALENDAR_QUERY_RESULT requires an id and a field");
+		return -1;
+	}
+
+	if (!(datastore = ast_channel_datastore_find(chan, &eventlist_datastore_info, args.id))) {
+		ast_log(LOG_WARNING, "There is no event notification datastore with id '%s' on '%s'!\n", args.id, chan->name);
+		return -1;
+	}
+
+	if (!(events = datastore->data)) {
+		ast_log(LOG_WARNING, "The datastore contains no data!\n");
+		return -1;
+	}
+
+	if (!ast_strlen_zero(args.row)) {
+		row = atoi(args.row);
+	}
+
+	AST_LIST_TRAVERSE(events, entry, list) {
+		if (--row) {
+			continue;
+		}
+		if (!strcasecmp(args.field, "summary")) {
+			ast_copy_string(buf, entry->event->summary, len);
+		} else if (!strcasecmp(args.field, "description")) {
+			ast_copy_string(buf, entry->event->description, len);
+		} else if (!strcasecmp(args.field, "organizer")) {
+			ast_copy_string(buf, entry->event->organizer, len);
+		} else if (!strcasecmp(args.field, "location")) {
+			ast_copy_string(buf, entry->event->location, len);
+		} else if (!strcasecmp(args.field, "calendar")) {
+			ast_copy_string(buf, entry->event->owner->name, len);
+		} else if (!strcasecmp(args.field, "uid")) {
+			ast_copy_string(buf, entry->event->uid, len);
+		} else if (!strcasecmp(args.field, "start")) {
+			snprintf(buf, len, "%ld", (long)entry->event->start);
+		} else if (!strcasecmp(args.field, "end")) {
+			snprintf(buf, len, "%ld", (long)entry->event->end);
+		} else if (!strcasecmp(args.field, "busystate")) {
+			snprintf(buf, len, "%d", entry->event->busy_state);
+		} else {
+			ast_log(LOG_WARNING, "Unknown field '%s'\n", args.field);
+		}
+		break;
+	}
+
+	return 0;
+}
+
+static struct ast_custom_function calendar_query_result_function = {
+	.name = "CALENDAR_QUERY_RESULT",
+	.synopsis = "Retrieve data from a previously run CALENDAR_QUERY() call",
+	.syntax = "CALENDAR_QUERY_RESULT(<id>,<field>[,<n>])",
+	.desc = "Options:\n"
+	        "  <field>    : Specific information about a particular event\n"
+	        "    getnum      = number of events occurring during time range\n"
+			"    summary     = A summary of the event\n"
+			"    description = The full event description\n"
+			"    organizer   = The event organizer\n"
+			"    location    = The event location\n"
+			"    calendar    = The name of the calendar associted with the event\n"
+			"    uid         = The unique identifier for the event\n"
+			"    start       = The start time of the event (in seconds since epoch)\n"
+			"    end         = The end time of the event (in seconds since epoch)\n"
+			"    busystate   = The busy status of the event 0=FREE, 1=TENTATIVE, 2=BUSY\n"
+			"  <n>       : The nth event (starting at 1) returned by the query\n",
+	.read = calendar_query_result_exec,
+};
+
 /*! \brief CLI command to list available calendars */
 static char *handle_show_calendars(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
@@ -802,6 +1115,8 @@
 
 	__ast_custom_function_register(&calendar_busy_function, NULL);
 	__ast_custom_function_register(&calendar_event_function, NULL);
+	__ast_custom_function_register(&calendar_query_function, NULL);
+	__ast_custom_function_register(&calendar_query_result_function, NULL);
 	ast_cli_register_multiple(calendar_cli, ARRAY_LEN(calendar_cli));
 
 	ast_mutex_init(&refreshlock);




More information about the asterisk-commits mailing list