diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-02-22 12:06:39 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-02-22 12:06:39 +0000 |
commit | 46d2a28800d1feec83ea52f543efb28bc653c2b3 (patch) | |
tree | 01a08c4e2a15cf7bab38a4a5234c89904e132a25 /pjsip | |
parent | 58d9265e4c1b50b0e2e75467fac93f4df0170883 (diff) |
RFC 2833 support!
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@215 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/src/pjsua/main.c | 33 | ||||
-rw-r--r-- | pjsip/src/pjsua/pjsua_inv.c | 1 |
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", |