diff options
Diffstat (limited to 'include/asterisk')
-rw-r--r-- | include/asterisk/channel.h | 10 | ||||
-rw-r--r-- | include/asterisk/endpoints.h | 13 | ||||
-rw-r--r-- | include/asterisk/xmpp.h | 19 |
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; }; /*! |