diff options
author | Liong Sauw Ming <ming@teluu.com> | 2011-03-15 03:20:37 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2011-03-15 03:20:37 +0000 |
commit | ab69db8c96ae19269067fd98e5ff1a046d78a2de (patch) | |
tree | 3849b7cf4c1f21625f0378ccd0d0c048000f256a /pjsip/src/pjsip-ua/sip_reg.c | |
parent | 477ebed76f7657565ef181da813ea2f7b409d24b (diff) |
Fixed #1205: Configurable delay before registration refresh setting in pjsua_acc_config
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3441 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsip-ua/sip_reg.c')
-rw-r--r-- | pjsip/src/pjsip-ua/sip_reg.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/pjsip/src/pjsip-ua/sip_reg.c b/pjsip/src/pjsip-ua/sip_reg.c index a53937fa..45a69ba2 100644 --- a/pjsip/src/pjsip-ua/sip_reg.c +++ b/pjsip/src/pjsip-ua/sip_reg.c @@ -37,7 +37,7 @@ #define REFRESH_TIMER 1 -#define DELAY_BEFORE_REFRESH PJSIP_REGISTER_CLIENT_DELAY_BEFORE_REFRESH +#define DELAY_BEFORE_REFRESH PJSIP_REGISTER_CLIENT_DELAY_BEFORE_REFRESH #define THIS_FILE "sip_reg.c" /* Outgoing transaction timeout when server sends 100 but never replies @@ -87,6 +87,7 @@ struct pjsip_regc pjsip_contact_hdr removed_contact_hdr_list; pjsip_expires_hdr *expires_hdr; pj_uint32_t expires; + pj_uint32_t delay_before_refresh; pjsip_route_hdr route_set; pjsip_hdr hdr_list; @@ -375,6 +376,7 @@ PJ_DEF(pj_status_t) pjsip_regc_init( pjsip_regc *regc, /* Set "Expires" header, if required. */ set_expires( regc, expires); + regc->delay_before_refresh = DELAY_BEFORE_REFRESH; /* Set "Call-ID" header. */ regc->cid_hdr = pjsip_cid_hdr_create(regc->pool); @@ -389,6 +391,15 @@ PJ_DEF(pj_status_t) pjsip_regc_init( pjsip_regc *regc, return PJ_SUCCESS; } +PJ_DEF(pj_status_t) +pjsip_regc_set_delay_before_refresh( pjsip_regc *regc, + pj_uint32_t delay ) +{ + PJ_ASSERT_RETURN(regc, PJ_EINVAL); + regc->delay_before_refresh = delay; + return PJ_SUCCESS; +} + PJ_DEF(pj_status_t) pjsip_regc_set_credentials( pjsip_regc *regc, int count, const pjsip_cred_info cred[] ) @@ -1119,7 +1130,7 @@ handle_err: if (regc->auto_reg && expiration > 0) { pj_time_val delay = { 0, 0}; - delay.sec = expiration - DELAY_BEFORE_REFRESH; + delay.sec = expiration - regc->delay_before_refresh; if (regc->expires != PJSIP_REGC_EXPIRATION_NOT_SPECIFIED && delay.sec > (pj_int32_t)regc->expires) { |