summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsip-ua/sip_inv.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-03-17 17:57:52 +0000
committerBenny Prijono <bennylp@teluu.com>2006-03-17 17:57:52 +0000
commit0ceffc76d8ac1ed82e16e555f04409b0b6384cc5 (patch)
treeb0dd31334ba127852b46694484aa872aa8648e78 /pjsip/src/pjsip-ua/sip_inv.c
parent5f18c48c1734f2010e8bf36f3d8d040dea75b108 (diff)
Changed pjsip_inv_send_msg() function
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@324 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsip-ua/sip_inv.c')
-rw-r--r--pjsip/src/pjsip-ua/sip_inv.c41
1 files changed, 30 insertions, 11 deletions
diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c
index c0e241d1..54acb0a2 100644
--- a/pjsip/src/pjsip-ua/sip_inv.c
+++ b/pjsip/src/pjsip-ua/sip_inv.c
@@ -33,6 +33,18 @@
#define THIS_FILE "sip_invite_session.c"
+static const char *inv_state_names[] =
+{
+ "NULL ",
+ "CALLING ",
+ "INCOMING ",
+ "EARLY ",
+ "CONNECTING",
+ "CONFIRMED ",
+ "DISCONNCTD",
+ "TERMINATED",
+};
+
/*
* Static prototypes.
*/
@@ -66,7 +78,6 @@ static struct mod_inv
pjsip_module mod;
pjsip_endpoint *endpt;
pjsip_inv_callback cb;
- pjsip_module *app_user;
} mod_inv =
{
{
@@ -316,13 +327,12 @@ static void mod_inv_on_tsx_state(pjsip_transaction *tsx, pjsip_event *e)
* Initialize the invite module.
*/
PJ_DEF(pj_status_t) pjsip_inv_usage_init( pjsip_endpoint *endpt,
- pjsip_module *app_module,
const pjsip_inv_callback *cb)
{
pj_status_t status;
/* Check arguments. */
- PJ_ASSERT_RETURN(endpt && app_module && cb, PJ_EINVAL);
+ PJ_ASSERT_RETURN(endpt && cb, PJ_EINVAL);
/* Some callbacks are mandatory */
PJ_ASSERT_RETURN(cb->on_state_changed && cb->on_new_session, PJ_EINVAL);
@@ -334,7 +344,6 @@ PJ_DEF(pj_status_t) pjsip_inv_usage_init( pjsip_endpoint *endpt,
pj_memcpy(&mod_inv.cb, cb, sizeof(pjsip_inv_callback));
mod_inv.endpt = endpt;
- mod_inv.app_user = app_module;
/* Register the module. */
status = pjsip_endpt_register_module(endpt, &mod_inv.mod);
@@ -362,6 +371,18 @@ PJ_DEF(pjsip_inv_session*) pjsip_dlg_get_inv_session(pjsip_dialog *dlg)
/*
+ * Get INVITE state name.
+ */
+PJ_DEF(const char *) pjsip_inv_state_name(pjsip_inv_state state)
+{
+ PJ_ASSERT_RETURN(state >= PJSIP_INV_STATE_NULL &&
+ state <= PJSIP_INV_STATE_DISCONNECTED,
+ "??");
+
+ return inv_state_names[state];
+}
+
+/*
* Create UAC invite session.
*/
PJ_DEF(pj_status_t) pjsip_inv_create_uac( pjsip_dialog *dlg,
@@ -1548,8 +1569,7 @@ PJ_DEF(pj_status_t) pjsip_inv_update ( pjsip_inv_session *inv,
* Send a request or response message.
*/
PJ_DEF(pj_status_t) pjsip_inv_send_msg( pjsip_inv_session *inv,
- pjsip_tx_data *tdata,
- void *token )
+ pjsip_tx_data *tdata)
{
pj_status_t status;
@@ -1571,7 +1591,6 @@ PJ_DEF(pj_status_t) pjsip_inv_send_msg( pjsip_inv_session *inv,
tsx_inv_data->inv = inv;
tsx->mod_data[mod_inv.mod.id] = tsx_inv_data;
- tsx->mod_data[mod_inv.app_user->id] = token;
} else {
pjsip_cseq_hdr *cseq;
@@ -1717,7 +1736,7 @@ static void inv_handle_bye_response( pjsip_inv_session *inv,
} else {
/* Re-send BYE. */
- status = pjsip_inv_send_msg(inv, tdata, NULL );
+ status = pjsip_inv_send_msg(inv, tdata);
}
} else {
@@ -1851,7 +1870,7 @@ static void inv_on_state_calling( pjsip_inv_session *inv, pjsip_event *e)
inv->invite_tsx = NULL;
/* Send the request. */
- status = pjsip_inv_send_msg(inv, tdata, NULL );
+ status = pjsip_inv_send_msg(inv, tdata);
}
} else {
@@ -2271,7 +2290,7 @@ static void inv_on_state_confirmed( pjsip_inv_session *inv, pjsip_event *e)
if (status != PJ_SUCCESS)
return;
- status = pjsip_inv_send_msg(inv, tdata, NULL);
+ status = pjsip_inv_send_msg(inv, tdata);
}
@@ -2310,7 +2329,7 @@ static void inv_on_state_confirmed( pjsip_inv_session *inv, pjsip_event *e)
return;
/* Send re-INVITE */
- status = pjsip_inv_send_msg( inv, tdata, NULL);
+ status = pjsip_inv_send_msg( inv, tdata);
} else if (tsx->status_code==PJSIP_SC_CALL_TSX_DOES_NOT_EXIST ||
tsx->status_code==PJSIP_SC_REQUEST_TIMEOUT ||