summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/stasis/app.c5
-rw-r--r--res/stasis/app.h63
2 files changed, 63 insertions, 5 deletions
diff --git a/res/stasis/app.c b/res/stasis/app.c
index d552eb4ab..229f4bb20 100644
--- a/res/stasis/app.c
+++ b/res/stasis/app.c
@@ -95,10 +95,7 @@ int app_add_channel(struct app *app, const struct ast_channel *chan)
ast_assert(app != NULL);
uniqueid = ast_channel_uniqueid(chan);
- if (!ast_str_container_add(app->channels, uniqueid)) {
- return -1;
- }
- return 0;
+ return ast_str_container_add(app->channels, uniqueid) ? -1 : 0;
}
void app_remove_channel(struct app* app, const struct ast_channel *chan)
diff --git a/res/stasis/app.h b/res/stasis/app.h
index 7b76db107..c9e63502d 100644
--- a/res/stasis/app.h
+++ b/res/stasis/app.h
@@ -56,22 +56,83 @@ struct app *app_create(const char *name, stasis_app_cb handler, void *data);
*/
void app_update(struct app *app, stasis_app_cb handler, void *data);
+/*!
+ * \brief Return an application's name.
+ *
+ * \param app Application.
+ * \return Name of the application.
+ * \return \c NULL is \a app is \c NULL.
+ */
const char *app_name(const struct app *app);
+/*!
+ * \brief Subscribe an application to a topic.
+ *
+ * \param app Application.
+ * \param topic Topic to subscribe to.
+ * \return New subscription.
+ * \return \c NULL on error.
+ */
struct stasis_subscription *app_subscribe(struct app *app,
struct stasis_topic *topic);
+/*!
+ * \brief Send a message to an application.
+ *
+ * \param app Application.
+ * \param message Message to send.
+ */
void app_send(struct app *app, struct ast_json *message);
+/*!
+ * \brief Send the start message to an application.
+ *
+ * \param app Application.
+ * \param chan The channel entering the application.
+ * \param argc The number of arguments for the application.
+ * \param argv The arguments for the application.
+ * \return 0 on success.
+ * \return Non-zero on error.
+ */
int app_send_start_msg(struct app *app, struct ast_channel *chan, int argc,
char *argv[]);
+/*!
+ * \brief Send the end message to an application.
+ *
+ * \param app Application.
+ * \param chan The channel leaving the application.
+ * \return 0 on success.
+ * \return Non-zero on error.
+ */
int app_send_end_msg(struct app *app, struct ast_channel *chan);
+/*!
+ * \brief Checks if an application is watching a given channel.
+ *
+ * \param app Application.
+ * \param uniqueid Uniqueid of the channel to check about.
+ * \return True (non-zero) if \a app is watching channel with given \a uniqueid
+ * \return False (zero) if \a app isn't.
+ */
int app_is_watching_channel(struct app *app, const char *uniqueid);
-int app_add_channel(struct app* app, const struct ast_channel *chan);
+/*!
+ * \brief Add a channel to an application's watch list.
+ *
+ * \param app Application.
+ * \param chan Channel to watch.
+ * \return 0 on success.
+ * \return Non-zero on error.
+ */
+int app_add_channel(struct app *app, const struct ast_channel *chan);
+/*!
+ * \brief Remove a channel from an application's watch list.
+ *
+ * \param app Application.
+ * \param chan Channel to watch.
+ */
void app_remove_channel(struct app *app, const struct ast_channel *chan);
#endif /* _ASTERISK_RES_STASIS_APP_H */