summaryrefslogtreecommitdiff
path: root/include/asterisk/sip_api.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asterisk/sip_api.h')
-rw-r--r--include/asterisk/sip_api.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/asterisk/sip_api.h b/include/asterisk/sip_api.h
index 392456758..2b8a3f2a1 100644
--- a/include/asterisk/sip_api.h
+++ b/include/asterisk/sip_api.h
@@ -26,6 +26,16 @@ extern "C" {
#include "asterisk/optional_api.h"
#include "asterisk/config.h"
+#define AST_SIP_API_VERSION 1
+
+struct ast_sip_api_tech {
+ const int version;
+ const char *name;
+ int (*sipinfo_send)(struct ast_channel *chan,
+ struct ast_variable *headers, const char *content_type,
+ const char *content, const char *useragent_filter);
+};
+
/*!
* \brief Send a customized SIP INFO request
*
@@ -45,6 +55,23 @@ int ast_sipinfo_send(struct ast_channel *chan,
const char *content,
const char *useragent_filter);
+/*!
+ * \brief Register a SIP API provider
+ *
+ * This will fail if a provider has already registered or if the
+ * provider is using an incorrect version.
+ *
+ * \param provider The provider to register
+ * \retval 0 Success
+ * \retval -1 Failure
+ */
+int ast_sip_api_provider_register(const struct ast_sip_api_tech *provider);
+
+/*!
+ * \brief Unregister a SIP API provider
+ */
+void ast_sip_api_provider_unregister(void);
+
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif