diff options
author | Riza Sulistyo <riza@teluu.com> | 2015-03-19 04:59:23 +0000 |
---|---|---|
committer | Riza Sulistyo <riza@teluu.com> | 2015-03-19 04:59:23 +0000 |
commit | 3ebc9c8e19e708ae59d88d5bb9c855fac52cad9c (patch) | |
tree | e81e73bac2998e1755b766a6c0a998512528c819 /pjsip | |
parent | b1716174e6896d04fc6229952567223743be7fbd (diff) |
Re #1825: Implement new on_reg_started2 callback
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4999 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua.h | 14 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_acc.c | 12 |
2 files changed, 26 insertions, 0 deletions
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index e730790c..56c3c82a 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -477,6 +477,10 @@ typedef struct pjsua_reg_info { struct pjsip_regc_cbparam *cbparam; /**< Parameters returned by registration callback. */ + pjsip_regc *regc; /**< Client registration + structure. */ + pj_bool_t renew; /**< Non-zero for registration and + zero for unregistration. */ } pjsua_reg_info; @@ -907,6 +911,16 @@ typedef struct pjsua_callback * unregistration. */ void (*on_reg_started)(pjsua_acc_id acc_id, pj_bool_t renew); + + /** + * This is the alternative version of the \a on_reg_started() callback with + * \a pjsua_reg_info argument. + * + * @param acc_id The account ID. + * @param info The registration info. + */ + void (*on_reg_started2)(pjsua_acc_id acc_id, + pjsua_reg_info *info); /** * Notify application when registration status has changed. diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c index 78c1f3d0..ecb9b33f 100644 --- a/pjsip/src/pjsua-lib/pjsua_acc.c +++ b/pjsip/src/pjsua-lib/pjsua_acc.c @@ -2279,8 +2279,12 @@ static void regc_cb(struct pjsip_regc_cbparam *param) if (pjsua_var.ua_cfg.cb.on_reg_state2) { pjsua_reg_info reg_info; + pjsip_regc_info rinfo; + pjsip_regc_get_info(param->regc, &rinfo); reg_info.cbparam = param; + reg_info.regc = param->regc; + reg_info.renew = (rinfo.interval != 0); (*pjsua_var.ua_cfg.cb.on_reg_state2)(acc->index, ®_info); } @@ -2589,6 +2593,14 @@ PJ_DEF(pj_status_t) pjsua_acc_set_registration( pjsua_acc_id acc_id, if (pjsua_var.ua_cfg.cb.on_reg_started) { (*pjsua_var.ua_cfg.cb.on_reg_started)(acc_id, renew); } + if (pjsua_var.ua_cfg.cb.on_reg_started2) { + pjsua_reg_info rinfo; + + rinfo.cbparam = NULL; + rinfo.regc = pjsua_var.acc[acc_id].regc; + rinfo.renew = renew; + (*pjsua_var.ua_cfg.cb.on_reg_started2)(acc_id, &rinfo); + } } if (status != PJ_SUCCESS) { |