summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua/pjsua.h
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-02-19 01:38:06 +0000
committerBenny Prijono <bennylp@teluu.com>2006-02-19 01:38:06 +0000
commit49a3b60593925562cbeb836a5885e034d2f78997 (patch)
tree87ae5502ec663309e0c78ad97cb22fd776896fc9 /pjsip/src/pjsua/pjsua.h
parent4e0f563feccb847c57739e48c91b0f5190938e9d (diff)
Initial SIMPLE implementation
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@197 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua/pjsua.h')
-rw-r--r--pjsip/src/pjsua/pjsua.h70
1 files changed, 68 insertions, 2 deletions
diff --git a/pjsip/src/pjsua/pjsua.h b/pjsip/src/pjsua/pjsua.h
index ebb97a0d..202c2840 100644
--- a/pjsip/src/pjsua/pjsua.h
+++ b/pjsip/src/pjsua/pjsua.h
@@ -31,6 +31,9 @@
/* Include all PJSIP-UA headers */
#include <pjsip_ua.h>
+/* Include all PJSIP-SIMPLE headers */
+#include <pjsip_simple.h>
+
/* Include all PJLIB-UTIL headers. */
#include <pjlib-util.h>
@@ -61,6 +64,33 @@ struct pjsua_inv_data
};
+/**
+ * Buddy data.
+ */
+struct pjsua_buddy
+{
+ pj_str_t uri; /**< Buddy URI */
+ pj_bool_t monitor; /**< Should we monitor? */
+ pjsip_evsub *sub; /**< Buddy presence subscription */
+ pjsip_pres_status status; /**< Buddy presence status. */
+};
+
+typedef struct pjsua_buddy pjsua_buddy;
+
+
+/**
+ * Server presence subscription list head.
+ */
+struct pjsua_srv_pres
+{
+ PJ_DECL_LIST_MEMBER(struct pjsua_srv_pres);
+ pjsip_evsub *sub;
+ char *remote;
+};
+
+typedef struct pjsua_srv_pres pjsua_srv_pres;
+
+
/* PJSUA application variables. */
struct pjsua
@@ -141,10 +171,13 @@ struct pjsua
struct pjsua_inv_data inv_list;
- /* Buddy list: */
+ /* SIMPLE and buddy status: */
+
+ pj_bool_t online_status; /**< Out online status. */
+ pjsua_srv_pres pres_srv_list; /**< Server subscription list. */
unsigned buddy_cnt;
- pj_str_t buddies[PJSUA_MAX_BUDDIES];
+ pjsua_buddy buddies[PJSUA_MAX_BUDDIES];
};
@@ -235,6 +268,12 @@ void pjsua_inv_on_new_session(pjsip_inv_session *inv, pjsip_event *e);
void pjsua_inv_on_media_update(pjsip_inv_session *inv, pj_status_t status);
+/**
+ * Terminate all calls.
+ */
+void pjsua_inv_shutdown(void);
+
+
/*****************************************************************************
* PJSUA Client Registration API (defined in pjsua_reg.c).
*/
@@ -253,6 +292,33 @@ pj_status_t pjsua_regc_init(void);
void pjsua_regc_update(pj_bool_t renew);
+
+
+/*****************************************************************************
+ * PJSUA Presence (pjsua_pres.c)
+ */
+
+/**
+ * Init presence.
+ */
+pj_status_t pjsua_pres_init();
+
+/**
+ * Refresh both presence client and server subscriptions.
+ */
+void pjsua_pres_refresh(void);
+
+/**
+ * Terminate all subscriptions
+ */
+void pjsua_pres_shutdown(void);
+
+/**
+ * Dump presence subscriptions.
+ */
+void pjsua_pres_dump(void);
+
+
/*****************************************************************************
* User Interface API.
*