res_pjsip_exten_state: Presence for digium phones
[asterisk/asterisk.git] / include / asterisk / res_pjsip_body_generator_types.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 2014, Digium, Inc.
5  *
6  * Mark Michelson <mmichelson@digium.com>
7  *
8  * See http://www.asterisk.org for more information about
9  * the Asterisk project. Please do not directly contact
10  * any of the maintainers of this project for assistance;
11  * the project provides a web site, mailing lists and IRC
12  * channels for your use.
13  *
14  * This program is free software, distributed under the terms of
15  * the GNU General Public License Version 2. See the LICENSE file
16  * at the top of the source tree.
17  */
18
19 #ifndef _RES_PJSIP_BODY_GENERATOR_TYPES_H
20 #define _RES_PJSIP_BODY_GENERATOR_TYPES_H
21
22 #include "asterisk/pbx.h"
23
24 /*!
25  * \brief structure used for presence XML bodies
26  *
27  * This is used for the following body types:
28  * \li application/pidf+xml
29  * \li application/xpidf+xml
30  * \li application/cpim-pidf+xml
31  */
32 struct ast_sip_exten_state_data {
33         /*! The extension of the current state change */
34         const char *exten;
35         /*! The extension state of the change */
36         enum ast_extension_states exten_state;
37         /*! The presence state of the change */
38         enum ast_presence_state presence_state;
39         /*! The presence subtype of the change */
40         char *presence_subtype;
41         /*! The presence message of the change */
42         char *presence_message;
43         /*! Subscriber user agent */
44         char *user_agent;
45         /*! Current device state information */
46         struct ao2_container *device_state_info;
47         /*! Local dialog URI */
48         char local[PJSIP_MAX_URL_SIZE];
49         /*! Remote dialog URI */
50         char remote[PJSIP_MAX_URL_SIZE];
51         /*! Allocation pool */
52         pj_pool_t *pool;
53 };
54
55 /*!
56  * \brief Message counter used for message-summary XML bodies
57  *
58  * This is used for application/simple-message-summary bodies.
59  */
60 struct ast_sip_message_accumulator {
61         /*! Number of old messages */
62         int old_msgs;
63         /*! Number of new messages */
64         int new_msgs;
65 };
66
67 #endif /* _RES_PJSIP_BODY_GENERATOR_TYPES_H */