summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua/pjsua_inv.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-02-09 14:01:40 +0000
committerBenny Prijono <bennylp@teluu.com>2006-02-09 14:01:40 +0000
commita1fd7f6ddafccef9cf47bb8c291749aaa835e7fa (patch)
tree5c3adf721788e7201b3e4bedad41241e689c33a0 /pjsip/src/pjsua/pjsua_inv.c
parent6096b35446a1fa0cef3cfd51c29d9d2609d972e5 (diff)
Updated with new jitter buffer, and statistics in pjsua
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@169 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua/pjsua_inv.c')
-rw-r--r--pjsip/src/pjsua/pjsua_inv.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/pjsip/src/pjsua/pjsua_inv.c b/pjsip/src/pjsua/pjsua_inv.c
index 72272c32..7c6dbf26 100644
--- a/pjsip/src/pjsua/pjsua_inv.c
+++ b/pjsip/src/pjsua/pjsua_inv.c
@@ -78,6 +78,7 @@ pj_status_t pjsua_invite(const char *cstr_dest_uri,
/* Create and associate our data in the session. */
inv_data = pj_pool_zalloc( dlg->pool, sizeof(struct pjsua_inv_data));
+ inv_data->inv = inv;
dlg->mod_data[pjsua.mod.id] = inv_data;
@@ -110,6 +111,10 @@ pj_status_t pjsua_invite(const char *cstr_dest_uri,
goto on_error;
}
+ /* Add invite session to the list. */
+
+ pj_list_push_back(&pjsua.inv_list, inv_data);
+
/* Done. */
@@ -214,8 +219,11 @@ pj_bool_t pjsua_inv_on_incoming(pjsip_rx_data *rdata)
/* Create and attach pjsua data to the dialog: */
inv_data = pj_pool_zalloc(dlg->pool, sizeof(struct pjsua_inv_data));
+ inv_data->inv = inv;
dlg->mod_data[pjsua.mod.id] = inv_data;
+ pj_list_push_back(&pjsua.inv_list, inv_data);
+
/* Answer with 100 (using the dialog, not invite): */
@@ -244,6 +252,9 @@ void pjsua_inv_on_state_changed(pjsip_inv_session *inv, pjsip_event *e)
struct pjsua_inv_data *inv_data;
inv_data = inv->dlg->mod_data[pjsua.mod.id];
+
+ pj_assert(inv_data != NULL);
+
if (inv_data && inv_data->session) {
pjmedia_session_destroy(inv_data->session);
inv_data->session = NULL;
@@ -251,6 +262,11 @@ void pjsua_inv_on_state_changed(pjsip_inv_session *inv, pjsip_event *e)
PJ_LOG(3,(THIS_FILE,"Media session is destroyed"));
}
+ if (inv_data) {
+
+ pj_list_erase(inv_data);
+
+ }
}
pjsua_ui_inv_on_state_changed(inv, e);