summaryrefslogtreecommitdiff
path: root/pjsip/src
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-11-27 12:42:07 +0000
committerBenny Prijono <bennylp@teluu.com>2008-11-27 12:42:07 +0000
commitaa39a64bb0d43467eeceecf9759473135be09751 (patch)
tree7184fa543358b6c843ebfde889ee83a5cb6800fa /pjsip/src
parentc40accaad90c1ec16cf734e478d13247812c0e0c (diff)
More ticket #10: changed to signature of the redirection callbacks to make it more natural to use
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2371 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src')
-rw-r--r--pjsip/src/pjsip-ua/sip_inv.c4
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c22
2 files changed, 14 insertions, 12 deletions
diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c
index 46872f06..e1bcd0df 100644
--- a/pjsip/src/pjsip-ua/sip_inv.c
+++ b/pjsip/src/pjsip-ua/sip_inv.c
@@ -1937,7 +1937,7 @@ PJ_DEF(pj_status_t) pjsip_inv_end_session( pjsip_inv_session *inv,
static pj_bool_t inv_uac_recurse(pjsip_inv_session *inv, int code,
const pj_str_t *reason, pjsip_event *e)
{
- pjsip_redirect_op op = PJSIP_REDIRECT_ACCEPT;
+ pjsip_redirect_op op;
pjsip_target *target;
/* Won't redirect if the callback is not implemented. */
@@ -1980,7 +1980,7 @@ static pj_bool_t inv_uac_recurse(pjsip_inv_session *inv, int code,
*/
pjsip_target_set_set_current(&inv->dlg->target_set, target);
- (*mod_inv.cb.on_redirected)(inv, target->uri, &op, e);
+ op = (*mod_inv.cb.on_redirected)(inv, target->uri, e);
/* Check what the application wants to do now */
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index 6831487d..5b6b8e66 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -68,10 +68,9 @@ static void pjsua_call_on_tsx_state_changed(pjsip_inv_session *inv,
/*
* Redirection handler.
*/
-static void pjsua_call_on_redirected(pjsip_inv_session *inv,
- const pjsip_uri *target,
- pjsip_redirect_op *cmd,
- const pjsip_event *e);
+static pjsip_redirect_op pjsua_call_on_redirected(pjsip_inv_session *inv,
+ const pjsip_uri *target,
+ const pjsip_event *e);
/* Create SDP for call hold. */
@@ -3814,25 +3813,28 @@ static void pjsua_call_on_tsx_state_changed(pjsip_inv_session *inv,
/* Redirection handler */
-static void pjsua_call_on_redirected(pjsip_inv_session *inv,
- const pjsip_uri *target,
- pjsip_redirect_op *cmd,
- const pjsip_event *e)
+static pjsip_redirect_op pjsua_call_on_redirected(pjsip_inv_session *inv,
+ const pjsip_uri *target,
+ const pjsip_event *e)
{
pjsua_call *call = (pjsua_call*) inv->dlg->mod_data[pjsua_var.mod.id];
+ pjsip_redirect_op op;
PJSUA_LOCK();
if (pjsua_var.ua_cfg.cb.on_call_redirected) {
- (*pjsua_var.ua_cfg.cb.on_call_redirected)(call->index, target, cmd, e);
+ op = (*pjsua_var.ua_cfg.cb.on_call_redirected)(call->index,
+ target, e);
} else {
PJ_LOG(4,(THIS_FILE, "Unhandled redirection for call %d "
"(callback not implemented by application). Disconnecting "
"call.",
call->index));
- *cmd = PJSIP_REDIRECT_STOP;
+ op = PJSIP_REDIRECT_STOP;
}
PJSUA_UNLOCK();
+
+ return op;
}