summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsua/main.c')
-rw-r--r--pjsip/src/pjsua/main.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/pjsip/src/pjsua/main.c b/pjsip/src/pjsua/main.c
index 4068e77f..5508e069 100644
--- a/pjsip/src/pjsua/main.c
+++ b/pjsip/src/pjsua/main.c
@@ -139,7 +139,7 @@ static void keystroke_help(void)
puts("| H Hold call | Conference Command | |");
puts("| v re-inVite (release hold) | cl List ports | |");
puts("| x Xfer call | cc Connect port | |");
- puts("| | cd Disconnect port | |");
+ puts("| # Send DTMF string | cd Disconnect port | |");
puts("+------------------------------+--------------------------+-------------------+");
puts("| q QUIT |");
puts("+=============================================================================+");
@@ -440,6 +440,37 @@ static void ui_console_main(void)
}
break;
+ case '#':
+ /*
+ * Send DTMF strings.
+ */
+ if (inv_session == &pjsua.inv_list) {
+
+ PJ_LOG(3,(THIS_FILE, "No current call"));
+
+ } else if (inv_session->session == NULL) {
+
+ PJ_LOG(3,(THIS_FILE, "Media is not established yet!"));
+
+ } else {
+ pj_str_t digits;
+ pj_status_t status;
+
+ if (!simple_input("DTMF strings to send (0-9*#A-B)", buf,
+ sizeof(buf)))
+ break;
+
+ digits = pj_str(buf);
+ status = pjmedia_session_dial_dtmf(inv_session->session, 0,
+ &digits);
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "Unable to send DTMF", status);
+ } else {
+ puts("DTMF digits enqueued for transmission");
+ }
+ }
+ break;
+
case 's':
case 'u':
/*