summaryrefslogtreecommitdiff
path: root/pjsip-apps/src/pjsua/pjsua_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip-apps/src/pjsua/pjsua_config.c')
-rw-r--r--pjsip-apps/src/pjsua/pjsua_config.c88
1 files changed, 26 insertions, 62 deletions
diff --git a/pjsip-apps/src/pjsua/pjsua_config.c b/pjsip-apps/src/pjsua/pjsua_config.c
index e8722086..d29ee714 100644
--- a/pjsip-apps/src/pjsua/pjsua_config.c
+++ b/pjsip-apps/src/pjsua/pjsua_config.c
@@ -17,7 +17,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include <pjsua-lib/pjsua.h>
#include "pjsua_common.h"
#define THIS_FILE "pjsua_config.c"
@@ -26,10 +25,6 @@
char *stdout_refresh_text = "STDOUT_REFRESH";
-/** This is for storing console runtime options **/
-static int cmd_argc;
-static char cmd_argv[MAX_APP_OPTIONS][MAX_APP_OPTIONS];
-
/* Show usage */
static void usage(void)
{
@@ -326,12 +321,12 @@ static int read_config_file(pj_pool_t *pool, const char *filename,
}
/* Parse arguments. */
-static pj_status_t parse_args(int argc, char *argv[],
- pjsua_app_config *cfg,
+static pj_status_t parse_args(int argc, char *argv[],
pj_str_t *uri_to_call)
{
int c;
int option_index;
+ pjsua_app_config *cfg = &app_config;
enum { OPT_CONFIG_FILE=127, OPT_LOG_FILE, OPT_LOG_LEVEL, OPT_APP_LOG_LEVEL,
OPT_LOG_APPEND, OPT_COLOR, OPT_NO_COLOR, OPT_LIGHT_BG, OPT_NO_STDERR,
OPT_HELP, OPT_VERSION, OPT_NULL_AUDIO, OPT_SND_AUTO_CLOSE,
@@ -1313,7 +1308,7 @@ static pj_status_t parse_args(int argc, char *argv[],
break;
case OPT_PLAY_AVI:
- if (app_config.avi_cnt >= MAX_AVI) {
+ if (app_config.avi_cnt >= PJSUA_APP_MAX_AVI) {
PJ_LOG(1,(THIS_FILE, "Too many AVIs"));
return -1;
}
@@ -1329,11 +1324,12 @@ static pj_status_t parse_args(int argc, char *argv[],
break;
case OPT_CLI_TELNET_PORT:
- cfg->cli_telnet_port = atoi(pj_optarg);
+ cfg->cli_cfg.telnet_cfg.port = (pj_uint16_t)atoi(pj_optarg);
+ cfg->cli_cfg.cli_fe |= CLI_FE_TELNET;
break;
case OPT_DISABLE_CLI_CONSOLE:
- cfg->disable_cli_console = PJ_TRUE;
+ cfg->cli_cfg.cli_fe &= (~CLI_FE_CONSOLE);
break;
default:
@@ -1420,10 +1416,11 @@ static pj_status_t parse_args(int argc, char *argv[],
}
/* Set default config. */
-static void default_config(pjsua_app_config *cfg)
+static void default_config()
{
char tmp[80];
unsigned i;
+ pjsua_app_config *cfg = &app_config;
pjsua_config_default(&cfg->cfg);
pj_ansi_sprintf(tmp, "PJSUA v%s %s", pj_get_version(),
@@ -1437,7 +1434,7 @@ static void default_config(pjsua_app_config *cfg)
pjsua_transport_config_default(&cfg->rtp_cfg);
cfg->rtp_cfg.port = 4000;
cfg->redir_op = PJSIP_REDIRECT_ACCEPT_REPLACE;
- cfg->duration = NO_LIMIT_DURATION;
+ cfg->duration = PJSUA_APP_NO_LIMIT_DURATION;
cfg->wav_id = PJSUA_INVALID_ID;
cfg->rec_id = PJSUA_INVALID_ID;
cfg->wav_port = PJSUA_INVALID_ID;
@@ -1463,12 +1460,11 @@ static void default_config(pjsua_app_config *cfg)
cfg->avi_def_idx = PJSUA_INVALID_ID;
cfg->use_cli = PJ_FALSE;
- cfg->disable_cli_console = PJ_FALSE;
- cfg->cli_telnet_port = -1;
+ cfg->cli_cfg.cli_fe = CLI_FE_CONSOLE;
+ cfg->cli_cfg.telnet_cfg.port = 0;
}
-static pj_status_t parse_config(int argc, char *argv[],
- pjsua_app_config *app_config, pj_str_t *uri_arg)
+static pj_status_t parse_config(int argc, char *argv[], pj_str_t *uri_arg)
{
pj_status_t status;
@@ -1476,66 +1472,34 @@ static pj_status_t parse_config(int argc, char *argv[],
default_config(app_config);
/* Parse the arguments */
- status = parse_args(argc, argv, app_config, uri_arg);
+ status = parse_args(argc, argv, uri_arg);
return status;
}
-PJ_DEF(void) add_startup_config(int argc, char *argv[])
-{
- int i;
- cmd_argc = argc;
-
- for (i=0;i<argc;++i)
- {
- pj_memcpy(&cmd_argv[i], argv[i], strlen(argv[i]));
- cmd_argv[i][strlen(argv[i])] = 0;
- }
-}
-
-PJ_DEF(void) add_reload_config(unsigned idx, pj_str_t *option)
-{
- /** First command always contain the app path**/
- pj_str_t cmd;
-
- pj_assert(idx < MAX_APP_OPTIONS);
-
- cmd = pj_str(&cmd_argv[idx][0]);
- pj_strncpy_with_null(&cmd, option, 128);
- cmd_argc = idx+1;
-}
-
-PJ_DEF(pj_status_t) load_config(pjsua_app_config *app_config,
- pj_str_t *uri_arg,
- pj_bool_t app_running)
+PJ_DEF(pj_status_t) load_config(int argc,
+ char **argv,
+ pj_str_t *uri_arg)
{
- int i;
- int argc = cmd_argc;
- char *argv[128];
pj_status_t status;
pj_bool_t use_cli = PJ_FALSE;
- pj_bool_t disable_cli_console = PJ_TRUE;
- int cli_telnet_port = 0;
+ int cli_fe = 0;
+ pj_uint16_t cli_telnet_port = 0;
/** CLI options are not changable **/
if (app_running) {
- use_cli = app_config->use_cli;
- disable_cli_console = app_config->disable_cli_console;
- cli_telnet_port = app_config->cli_telnet_port;
- }
-
- for (i=0;i<cmd_argc;++i)
- {
- argv[i] = &cmd_argv[i][0];
+ use_cli = app_config.use_cli;
+ cli_fe = app_config.cli_cfg.cli_fe;
+ cli_telnet_port = app_config.cli_cfg.telnet_cfg.port;
}
- status = parse_config(argc, argv, app_config, uri_arg);
+ status = parse_config(argc, argv, uri_arg);
if (status != PJ_SUCCESS)
return status;
if (app_running) {
- app_config->use_cli = use_cli;
- app_config->disable_cli_console = disable_cli_console;
- app_config->cli_telnet_port = cli_telnet_port;
+ app_config.use_cli = use_cli;
+ app_config.cli_cfg.cli_fe = cli_fe;
+ app_config.cli_cfg.telnet_cfg.port = cli_telnet_port;
}
return status;
@@ -2155,7 +2119,7 @@ PJ_DEF(int) write_settings(pjsua_app_config *config, char *buf, pj_size_t max)
pj_strcat2(&cfg, line);
/* Uas-duration. */
- if (config->duration != NO_LIMIT_DURATION) {
+ if (config->duration != PJSUA_APP_NO_LIMIT_DURATION) {
pj_ansi_sprintf(line, "--duration %d\n",
config->duration);
pj_strcat2(&cfg, line);