summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsip_mod_ua/sip_ua.h
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsip_mod_ua/sip_ua.h')
-rw-r--r--pjsip/src/pjsip_mod_ua/sip_ua.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/pjsip/src/pjsip_mod_ua/sip_ua.h b/pjsip/src/pjsip_mod_ua/sip_ua.h
new file mode 100644
index 00000000..51c50aea
--- /dev/null
+++ b/pjsip/src/pjsip_mod_ua/sip_ua.h
@@ -0,0 +1,80 @@
+/* $Header: /pjproject/pjsip/src/pjsip_mod_ua/sip_ua.h 6 6/17/05 11:16p Bennylp $ */
+#ifndef __PJSIP_SIP_UA_H__
+#define __PJSIP_SIP_UA_H__
+
+/**
+ * @file ua.h
+ * @brief SIP User Agent Library
+ */
+
+#include <pjsip_mod_ua/sip_dialog.h>
+
+PJ_BEGIN_DECL
+
+/**
+ * @defgroup PJSUA SIP User Agent Stack
+ */
+
+/**
+ * @defgroup PJSUA_UA SIP User Agent
+ * @ingroup PJSUA
+ * @{
+ * \brief
+ * User Agent manages the interactions between application and SIP dialogs.
+ */
+
+typedef struct pjsip_dlg_callback pjsip_dlg_callback;
+
+/**
+ * \brief This structure describes a User Agent instance.
+ */
+struct pjsip_user_agent
+{
+ pjsip_endpoint *endpt;
+ pj_pool_t *pool;
+ pj_mutex_t *mutex;
+ pj_uint32_t mod_id;
+ pj_hash_table_t *dlg_table;
+ pjsip_dlg_callback *dlg_cb;
+ pj_list dlg_list;
+};
+
+/**
+ * Create a new dialog.
+ */
+PJ_DECL(pjsip_dlg*) pjsip_ua_create_dialog( pjsip_user_agent *ua,
+ pjsip_role_e role );
+
+
+/**
+ * Destroy dialog.
+ */
+PJ_DECL(void) pjsip_ua_destroy_dialog( pjsip_dlg *dlg );
+
+
+/**
+ * Register callback to receive dialog notifications.
+ */
+PJ_DECL(void) pjsip_ua_set_dialog_callback( pjsip_user_agent *ua,
+ pjsip_dlg_callback *cb );
+
+
+/**
+ * Get the module interface for the UA module.
+ */
+PJ_DECL(pjsip_module*) pjsip_ua_get_module(void);
+
+
+/**
+ * Dump user agent state to log file.
+ */
+PJ_DECL(void) pjsip_ua_dump( pjsip_user_agent *ua );
+
+/**
+ * @}
+ */
+
+PJ_END_DECL
+
+#endif /* __PJSIP_UA_H__ */
+