diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-08-15 13:11:22 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-08-15 13:11:22 +0000 |
commit | 2b4ce727a94196b76c3d2e6bf3f43c201207b82c (patch) | |
tree | dfbe08872ec71616ef3c34a56e461695b7581d9c /pjsip/src/pjsua-lib/pjsua_acc.c | |
parent | a3efa6db12c8d49a7021150e803e3183def178b0 (diff) |
Added initial PUBLISH client support, and also default account selection in pjsua/pjsua-lib
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@683 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib/pjsua_acc.c')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_acc.c | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c index 05815ede..7860c33f 100644 --- a/pjsip/src/pjsua-lib/pjsua_acc.c +++ b/pjsip/src/pjsua-lib/pjsua_acc.c @@ -43,6 +43,25 @@ PJ_DEF(pj_bool_t) pjsua_acc_is_valid(pjsua_acc_id acc_id) /* + * Set default account + */ +PJ_DEF(pj_status_t) pjsua_acc_set_default(pjsua_acc_id acc_id) +{ + pjsua_var.default_acc = acc_id; + return PJ_SUCCESS; +} + + +/* + * Get default account. + */ +PJ_DEF(pjsua_acc_id) pjsua_acc_get_default(void) +{ + return pjsua_var.default_acc; +} + + +/* * Copy account configuration. */ static void copy_acc_config(pj_pool_t *pool, @@ -724,13 +743,25 @@ PJ_DEF(pjsua_acc_id) pjsua_acc_find_for_outgoing(const pj_str_t *url) sip_uri = pjsip_uri_get_uri(uri); + /* See if default acc match */ + if (pjsua_var.default_acc != PJSUA_INVALID_ID && + pj_stricmp(&pjsua_var.acc[pjsua_var.default_acc].srv_domain, &sip_uri->host)==0 && + pjsua_var.acc[pjsua_var.default_acc].srv_port == sip_uri->port) + { + acc_id = pjsua_var.default_acc; + } else { + acc_id = PJ_ARRAY_SIZE(pjsua_var.acc); + } + /* Find matching domain AND port */ - for (acc_id=0; acc_id<PJ_ARRAY_SIZE(pjsua_var.acc); ++acc_id) { - if (!pjsua_var.acc[acc_id].valid) - continue; - if (pj_stricmp(&pjsua_var.acc[acc_id].srv_domain, &sip_uri->host)==0 && - pjsua_var.acc[acc_id].srv_port == sip_uri->port) - break; + if (acc_id == PJ_ARRAY_SIZE(pjsua_var.acc)) { + for (acc_id=0; acc_id<PJ_ARRAY_SIZE(pjsua_var.acc); ++acc_id) { + if (!pjsua_var.acc[acc_id].valid) + continue; + if (pj_stricmp(&pjsua_var.acc[acc_id].srv_domain, &sip_uri->host)==0 && + pjsua_var.acc[acc_id].srv_port == sip_uri->port) + break; + } } /* If no match, try to match the domain part only */ |