summaryrefslogtreecommitdiff
path: root/pjsip/src
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-02-22 12:06:39 +0000
committerBenny Prijono <bennylp@teluu.com>2006-02-22 12:06:39 +0000
commit46d2a28800d1feec83ea52f543efb28bc653c2b3 (patch)
tree01a08c4e2a15cf7bab38a4a5234c89904e132a25 /pjsip/src
parent58d9265e4c1b50b0e2e75467fac93f4df0170883 (diff)
RFC 2833 support!
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@215 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src')
-rw-r--r--pjsip/src/pjsua/main.c33
-rw-r--r--pjsip/src/pjsua/pjsua_inv.c1
2 files changed, 33 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':
/*
diff --git a/pjsip/src/pjsua/pjsua_inv.c b/pjsip/src/pjsua/pjsua_inv.c
index 34bf651f..824943cd 100644
--- a/pjsip/src/pjsua/pjsua_inv.c
+++ b/pjsip/src/pjsua/pjsua_inv.c
@@ -716,6 +716,7 @@ void pjsua_inv_on_media_update(pjsip_inv_session *inv, pj_status_t status)
status = pjmedia_session_create( pjsua.med_endpt, 1,
&pjsua.med_sock_info[inv_data->call_slot],
local_sdp, remote_sdp,
+ inv_data,
&inv_data->session );
if (status != PJ_SUCCESS) {
pjsua_perror(THIS_FILE, "Unable to create media session",