diff options
author | Benny Prijono <bennylp@teluu.com> | 2007-01-21 19:36:00 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2007-01-21 19:36:00 +0000 |
commit | d5979b2e6027ad0eb652e87cf24580f84559b50c (patch) | |
tree | 972bcdac208f8896ec4a9f687047903fe8d0f7a8 /pjsip-apps | |
parent | 2f9c99f610f986ad6fdb4ee8b5515dea288f08fd (diff) |
Added ability to feed text file containing commands (on Windows) and sleep command to pjsua. Thanks Steven Halerman.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@894 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps')
-rw-r--r-- | pjsip-apps/src/pjsua/pjsua_app.c | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c index 9605cdea..d42cb348 100644 --- a/pjsip-apps/src/pjsua/pjsua_app.c +++ b/pjsip-apps/src/pjsua/pjsua_app.c @@ -1843,7 +1843,7 @@ static void keystroke_help(void) puts("| | cd Disconnect port | dc Dump config |"); puts("| S Send arbitrary REQUEST | V Adjust audio Volume | f Save config |"); puts("+------------------------------+--------------------------+-------------------+"); - puts("| q QUIT |"); + puts("| q QUIT sleep N: console sleep for N ms |"); puts("+=============================================================================+"); i = pjsua_call_get_count(); @@ -2071,7 +2071,26 @@ void console_app_main(const pj_str_t *uri_to_call) printf(">>> "); fflush(stdout); - fgets(menuin, sizeof(menuin), stdin); + if (fgets(menuin, sizeof(menuin), stdin) == NULL) { + /* + * Be friendly to users who redirect commands into + * program, when file ends, resume with kbd. + * If exit is desired end script with q for quit + */ + /* Reopen stdin/stdout/stderr to /dev/console */ +#if defined(PJ_WIN32) && PJ_WIN32!=0 + if (freopen ("CONIN$", "r", stdin) == NULL) { +#else + if (1) { +#endif + puts("Cannot switch back to console from file redirection"); + menuin[0] = 'q'; + menuin[1] = '\0'; + } else { + puts("Switched back to console from file redirection"); + continue; + } + } switch (menuin[0]) { @@ -2617,6 +2636,25 @@ void console_app_main(const pj_str_t *uri_to_call) break; case 's': + if (pj_ansi_strnicmp(menuin, "sleep", 5)==0) { + pj_str_t tmp; + int delay; + + tmp.ptr = menuin+6; + tmp.slen = pj_ansi_strlen(menuin)-7; + + if (tmp.slen < 1) { + puts("Usage: sleep MSEC"); + break; + } + + delay = pj_strtoul(&tmp); + if (delay < 0) delay = 0; + pj_thread_sleep(delay); + break; + } + /* Continue below */ + case 'u': /* * Subscribe/unsubscribe presence. |