summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_reg.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_reg.c')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_reg.c70
1 files changed, 39 insertions, 31 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_reg.c b/pjsip/src/pjsua-lib/pjsua_reg.c
index e18f7cc8..1552acf6 100644
--- a/pjsip/src/pjsua-lib/pjsua_reg.c
+++ b/pjsip/src/pjsua-lib/pjsua_reg.c
@@ -86,8 +86,8 @@ static void regc_cb(struct pjsip_regc_cbparam *param)
*/
void pjsua_regc_update(int acc_index, pj_bool_t renew)
{
- pj_status_t status;
- pjsip_tx_data *tdata;
+ pj_status_t status = 0;
+ pjsip_tx_data *tdata = 0;
if (renew) {
if (pjsua.acc[acc_index].regc == NULL) {
@@ -98,7 +98,12 @@ void pjsua_regc_update(int acc_index, pj_bool_t renew)
return;
}
}
- status = pjsip_regc_register(pjsua.acc[acc_index].regc, 1, &tdata);
+ if (!pjsua.acc[acc_index].regc)
+ return;
+
+ status = pjsip_regc_register(pjsua.acc[acc_index].regc, 1,
+ &tdata);
+
} else {
if (pjsua.acc[acc_index].regc == NULL) {
PJ_LOG(3,(THIS_FILE, "Currently not registered"));
@@ -126,41 +131,44 @@ pj_status_t pjsua_regc_init(int acc_index)
{
pj_status_t status;
+ if (pjsua.acc[acc_index].reg_uri.slen == 0) {
+ PJ_LOG(3,(THIS_FILE, "Registrar URI is not specified"));
+ return PJ_SUCCESS;
+ }
+
/* initialize SIP registration if registrar is configured */
- if (pjsua.acc[acc_index].reg_uri.slen) {
- status = pjsip_regc_create( pjsua.endpt,
- &pjsua.acc[acc_index],
- &regc_cb,
- &pjsua.acc[acc_index].regc);
+ status = pjsip_regc_create( pjsua.endpt,
+ &pjsua.acc[acc_index],
+ &regc_cb,
+ &pjsua.acc[acc_index].regc);
- if (status != PJ_SUCCESS) {
- pjsua_perror(THIS_FILE, "Unable to create client registration",
- status);
- return status;
- }
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "Unable to create client registration",
+ status);
+ return status;
+ }
- status = pjsip_regc_init( pjsua.acc[acc_index].regc,
- &pjsua.acc[acc_index].reg_uri,
- &pjsua.acc[acc_index].local_uri,
- &pjsua.acc[acc_index].local_uri,
- 1, &pjsua.acc[acc_index].contact_uri,
- pjsua.acc[acc_index].reg_timeout);
- if (status != PJ_SUCCESS) {
- pjsua_perror(THIS_FILE,
- "Client registration initialization error",
- status);
- return status;
- }
+ status = pjsip_regc_init( pjsua.acc[acc_index].regc,
+ &pjsua.acc[acc_index].reg_uri,
+ &pjsua.acc[acc_index].local_uri,
+ &pjsua.acc[acc_index].local_uri,
+ 1, &pjsua.acc[acc_index].contact_uri,
+ pjsua.acc[acc_index].reg_timeout);
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE,
+ "Client registration initialization error",
+ status);
+ return status;
+ }
- pjsip_regc_set_credentials( pjsua.acc[acc_index].regc,
- pjsua.cred_count,
- pjsua.cred_info );
+ pjsip_regc_set_credentials( pjsua.acc[acc_index].regc,
+ pjsua.cred_count,
+ pjsua.cred_info );
- pjsip_regc_set_route_set( pjsua.acc[acc_index].regc,
- &pjsua.acc[acc_index].route_set );
- }
+ pjsip_regc_set_route_set( pjsua.acc[acc_index].regc,
+ &pjsua.acc[acc_index].route_set );
return PJ_SUCCESS;
}