Thu Jul 9 13:40:33 2009

Asterisk developer's documentation


event_defs.h

Go to the documentation of this file.
00001 /*
00002  * Asterisk -- An open source telephony toolkit.
00003  *
00004  * Copyright (C) 2007, Digium, Inc.
00005  *
00006  * Russell Bryant <russell@digium.com>
00007  *
00008  * See http://www.asterisk.org for more information about
00009  * the Asterisk project. Please do not directly contact
00010  * any of the maintainers of this project for assistance;
00011  * the project provides a web site, mailing lists and IRC
00012  * channels for your use.
00013  *
00014  * This program is free software, distributed under the terms of
00015  * the GNU General Public License Version 2. See the LICENSE file
00016  * at the top of the source tree.
00017  */
00018 
00019 /*!
00020  * \file
00021  * \author Russell Bryant <russell@digium.com>
00022  * \brief Generic event system
00023  */
00024 
00025 #ifndef AST_EVENT_DEFS_H
00026 #define AST_EVENT_DEFS_H
00027 
00028 /*! \brief Event types
00029  * \note These values can *never* change. */
00030 enum ast_event_type {
00031    /*! Reserved to provide the ability to subscribe to all events.  A specific
00032        event should never have a payload of 0. */
00033    AST_EVENT_ALL    = 0x00,
00034    /*! This event type is reserved for use by third-party modules to create
00035        custom events without having to modify this file. 
00036        \note There are no "custom" IE types, because IEs only have to be
00037        unique to the event itself, not necessarily across all events. */
00038    AST_EVENT_CUSTOM = 0x01,
00039    /*! Voicemail message waiting indication */
00040    AST_EVENT_MWI          = 0x02,
00041    /*! Someone has subscribed to events */
00042    AST_EVENT_SUB          = 0x03,
00043    /*! Someone has unsubscribed from events */
00044    AST_EVENT_UNSUB        = 0x04,
00045    /*! The state of a device has changed */
00046    AST_EVENT_DEVICE_STATE = 0x05,
00047    /*! Number of event types.  This should be the last event type + 1 */
00048    AST_EVENT_TOTAL        = 0x06,
00049 };
00050 
00051 /*! \brief Event Information Element types */
00052 enum ast_event_ie_type {
00053    /*! Used to terminate the arguments to event functions */
00054    AST_EVENT_IE_END       = -1,
00055 
00056    /*! 
00057     * \brief Number of new messages
00058     * Used by: AST_EVENT_MWI 
00059     * Payload type: UINT
00060     */
00061    AST_EVENT_IE_NEWMSGS   = 0x01,
00062    /*! 
00063     * \brief Number of
00064     * Used by: AST_EVENT_MWI 
00065     * Payload type: UINT
00066     */
00067    AST_EVENT_IE_OLDMSGS   = 0x02,
00068    /*! 
00069     * \brief Mailbox name \verbatim (mailbox[@context]) \endverbatim
00070     * Used by: AST_EVENT_MWI 
00071     * Payload type: STR
00072     */
00073    AST_EVENT_IE_MAILBOX   = 0x03,
00074    /*! 
00075     * \brief Unique ID
00076     * Used by: AST_EVENT_SUB, AST_EVENT_UNSUB
00077     * Payload type: UINT
00078     */
00079    AST_EVENT_IE_UNIQUEID  = 0x04,
00080    /*! 
00081     * \brief Event type 
00082     * Used by: AST_EVENT_SUB, AST_EVENT_UNSUB
00083     * Payload type: UINT
00084     */
00085    AST_EVENT_IE_EVENTTYPE = 0x05,
00086    /*!
00087     * \brief Hint that someone cares that an IE exists
00088     * Used by: AST_EVENT_SUB
00089     * Payload type: UINT (ast_event_ie_type)
00090     */
00091    AST_EVENT_IE_EXISTS    = 0x06,
00092    /*!
00093     * \brief Device Name
00094     * Used by AST_EVENT_DEVICE_STATE
00095     * Payload type: STR
00096     */
00097    AST_EVENT_IE_DEVICE    = 0x07,
00098    /*!
00099     * \brief Generic State IE
00100     * Used by AST_EVENT_DEVICE_STATE
00101     * Payload type: UINT
00102     * The actual state values depend on the event which
00103     * this IE is a part of.
00104     */
00105     AST_EVENT_IE_STATE    = 0x08,
00106     /*!
00107      * \brief Context IE
00108      * Used by AST_EVENT_MWI
00109      * Payload type: str
00110      */
00111     AST_EVENT_IE_CONTEXT  = 0x09,
00112 };
00113 
00114 /*!
00115  * \brief Payload types for event information elements
00116  */
00117 enum ast_event_ie_pltype {
00118    /*! Just check if it exists, not the value */
00119    AST_EVENT_IE_PLTYPE_EXISTS,
00120    /*! Unsigned Integer (Can be used for signed, too ...) */
00121    AST_EVENT_IE_PLTYPE_UINT,
00122    /*! String */
00123    AST_EVENT_IE_PLTYPE_STR,
00124 };
00125 
00126 /*!
00127  * \brief Results for checking for subscribers
00128  *
00129  * \ref ast_event_check_subscriber()
00130  */
00131 enum ast_event_subscriber_res {
00132    /*! No subscribers exist */
00133    AST_EVENT_SUB_NONE,
00134    /*! At least one subscriber exists */
00135    AST_EVENT_SUB_EXISTS,
00136 };
00137 
00138 struct ast_event;
00139 struct ast_event_ie;
00140 struct ast_event_sub;
00141 struct ast_event_iterator;
00142 
00143 #endif /* AST_EVENT_DEFS_H */

Generated on Thu Jul 9 13:40:33 2009 for Asterisk - the Open Source PBX by  doxygen 1.4.7