summaryrefslogtreecommitdiff
path: root/pjsip-apps
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-01-21 19:36:00 +0000
committerBenny Prijono <bennylp@teluu.com>2007-01-21 19:36:00 +0000
commitd5979b2e6027ad0eb652e87cf24580f84559b50c (patch)
tree972bcdac208f8896ec4a9f687047903fe8d0f7a8 /pjsip-apps
parent2f9c99f610f986ad6fdb4ee8b5515dea288f08fd (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.c42
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.