Added command to add new account in pjsua application
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1400 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c
index 341ab5f..9aa749c 100644
--- a/pjsip-apps/src/pjsua/pjsua_app.c
+++ b/pjsip-apps/src/pjsua/pjsua_app.c
@@ -2420,7 +2420,35 @@
} else if (menuin[1] == 'a') {
- printf("Sorry, this command is not supported yet\n");
+ char id[80], registrar[80], realm[80], uname[80], passwd[30];
+ pjsua_acc_config acc_cfg;
+ pj_status_t status;
+
+ if (!simple_input("Your SIP URL:", id, sizeof(id)))
+ break;
+ if (!simple_input("URL of the registrar:", registrar, sizeof(registrar)))
+ break;
+ if (!simple_input("Auth Realm:", realm, sizeof(realm)))
+ break;
+ if (!simple_input("Auth Username:", uname, sizeof(uname)))
+ break;
+ if (!simple_input("Auth Password:", passwd, sizeof(passwd)))
+ break;
+
+ pjsua_acc_config_default(&acc_cfg);
+ acc_cfg.id = pj_str(id);
+ acc_cfg.reg_uri = pj_str(registrar);
+ acc_cfg.cred_count = 1;
+ acc_cfg.cred_info[0].scheme = pj_str("digest");
+ acc_cfg.cred_info[0].realm = pj_str(realm);
+ acc_cfg.cred_info[0].username = pj_str(uname);
+ acc_cfg.cred_info[0].data_type = 0;
+ acc_cfg.cred_info[0].data = pj_str(passwd);
+
+ status = pjsua_acc_add(&acc_cfg, PJ_TRUE, NULL);
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "Error adding new account", status);
+ }
} else {
printf("Invalid input %s\n", menuin);
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index ee50624..3d638c6 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -392,6 +392,9 @@
* access account once it's created
*/
+ /* Update default account */
+ if (pjsua_var.default_acc == acc_id)
+ pjsua_var.default_acc = 0;
PJSUA_UNLOCK();