summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/channel.h10
-rw-r--r--include/asterisk/endpoints.h13
-rw-r--r--include/asterisk/xmpp.h19
3 files changed, 33 insertions, 9 deletions
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index d118bc81f..d5d32c921 100644
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -1158,11 +1158,12 @@ struct ast_datastore *ast_channel_datastore_find(struct ast_channel *chan, const
* and "default" context.
* \note Since 12.0.0 this function returns with the newly created channel locked.
*/
-struct ast_channel * attribute_malloc __attribute__((format(printf, 14, 15)))
+struct ast_channel * attribute_malloc __attribute__((format(printf, 15, 16)))
__ast_channel_alloc(int needqueue, int state, const char *cid_num,
const char *cid_name, const char *acctcode,
const char *exten, const char *context, const struct ast_assigned_ids *assignedids,
const struct ast_channel *requestor, enum ama_flags amaflag,
+ struct ast_endpoint *endpoint,
const char *file, int line, const char *function,
const char *name_fmt, ...);
@@ -1178,9 +1179,14 @@ struct ast_channel * attribute_malloc __attribute__((format(printf, 14, 15)))
* \note Since 12.0.0 this function returns with the newly created channel locked.
*/
#define ast_channel_alloc(needqueue, state, cid_num, cid_name, acctcode, exten, context, assignedids, requestor, amaflag, ...) \
- __ast_channel_alloc(needqueue, state, cid_num, cid_name, acctcode, exten, context, assignedids, requestor, amaflag, \
+ __ast_channel_alloc(needqueue, state, cid_num, cid_name, acctcode, exten, context, assignedids, requestor, amaflag, NULL, \
__FILE__, __LINE__, __FUNCTION__, __VA_ARGS__)
+#define ast_channel_alloc_with_endpoint(needqueue, state, cid_num, cid_name, acctcode, exten, context, assignedids, requestor, amaflag, endpoint, ...) \
+ __ast_channel_alloc((needqueue), (state), (cid_num), (cid_name), (acctcode), (exten), (context), (assignedids), (requestor), (amaflag), (endpoint), \
+ __FILE__, __LINE__, __FUNCTION__, __VA_ARGS__)
+
+
#if defined(REF_DEBUG) || defined(__AST_DEBUG_MALLOC)
/*!
* \brief Create a fake channel structure
diff --git a/include/asterisk/endpoints.h b/include/asterisk/endpoints.h
index 7a7a3f6b4..663dd94d9 100644
--- a/include/asterisk/endpoints.h
+++ b/include/asterisk/endpoints.h
@@ -77,11 +77,17 @@ const char *ast_endpoint_state_to_string(enum ast_endpoint_state state);
struct ast_endpoint;
/*!
- * \brief Finds the endpoint with the given tech/resource id.
+ * \brief Finds the endpoint with the given tech[/resource] id.
*
* Endpoints are refcounted, so ao2_cleanup() when you're done.
*
- * \param id Tech/resource id to look for.
+ * \note The resource portion of an ID is optional. If not provided,
+ * an aggregate endpoint for the entire technology is returned.
+ * These endpoints must not be modified, but can be subscribed
+ * to in order to receive updates for all endpoints of a given
+ * technology.
+ *
+ * \param id Tech[/resource] id to look for.
* \return Associated endpoint.
* \return \c NULL if not found.
*
@@ -131,6 +137,9 @@ const char *ast_endpoint_get_tech(const struct ast_endpoint *endpoint);
*
* This is unique for the endpoint's technology, and immutable.
*
+ * \note If the endpoint being queried is a technology aggregate
+ * endpoint, this will be an empty string.
+ *
* \param endpoint The endpoint.
* \return Resource name of the endpoint.
* \return \c NULL if endpoint is \c NULL.
diff --git a/include/asterisk/xmpp.h b/include/asterisk/xmpp.h
index 58b14e4d3..294b4fdae 100644
--- a/include/asterisk/xmpp.h
+++ b/include/asterisk/xmpp.h
@@ -106,6 +106,8 @@ struct ast_xmpp_message {
AST_LIST_ENTRY(ast_xmpp_message) list; /*!< Linked list information */
};
+struct ast_endpoint;
+
/*! \brief XMPP Buddy */
struct ast_xmpp_buddy {
char id[XMPP_MAX_JIDLEN]; /*!< JID of the buddy */
@@ -116,9 +118,11 @@ struct ast_xmpp_buddy {
/*! \brief XMPP Client Connection */
struct ast_xmpp_client {
AST_DECLARE_STRING_FIELDS(
- AST_STRING_FIELD(name); /*!< Name of the client configuration */
+ /*! Name of the client configuration */
+ AST_STRING_FIELD(name);
);
- char mid[6]; /* Message ID */
+ /*! Message ID */
+ char mid[6];
iksid *jid;
iksparser *parser;
iksfilter *filter;
@@ -134,9 +138,14 @@ struct ast_xmpp_client {
AST_LIST_HEAD(, ast_xmpp_message) messages;
pthread_t thread;
int timeout;
- unsigned int reconnect:1; /*!< Reconnect this client */
- struct stasis_subscription *mwi_sub; /*!< If distributing event information the MWI subscription */
- struct stasis_subscription *device_state_sub; /*!< If distributing event information the device state subscription */
+ /*! Reconnect this client */
+ unsigned int reconnect:1;
+ /*! If distributing event information the MWI subscription */
+ struct stasis_subscription *mwi_sub;
+ /*! If distributing event information the device state subscription */
+ struct stasis_subscription *device_state_sub;
+ /*! The endpoint associated with this client */
+ struct ast_endpoint *endpoint;
};
/*!