diff options
author | Riza Sulistyo <riza@teluu.com> | 2016-02-18 03:15:19 +0000 |
---|---|---|
committer | Riza Sulistyo <riza@teluu.com> | 2016-02-18 03:15:19 +0000 |
commit | 9a0b39a7dd33817f1b5068e0ad719aba4ddc00b7 (patch) | |
tree | 6cf95b332fedf259a67eb6afbd16cb9d0c09a221 /pjmedia | |
parent | 3985dd57937870f3d47a4ddd68b477a42ffddec1 (diff) |
Misc (Re #1882): Add compile time option (PJMEDIA_HAS_DTMF_FLASH) to enable/disable DTMF flash as specified in rfc2833.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5242 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/include/pjmedia/config.h | 10 | ||||
-rw-r--r-- | pjmedia/include/pjmedia/stream.h | 3 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/endpoint.c | 4 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/stream.c | 6 |
4 files changed, 22 insertions, 1 deletions
diff --git a/pjmedia/include/pjmedia/config.h b/pjmedia/include/pjmedia/config.h index 8d739d2a..0dfd20ea 100644 --- a/pjmedia/include/pjmedia/config.h +++ b/pjmedia/include/pjmedia/config.h @@ -1321,6 +1321,7 @@ # endif #endif + /** * Specify if libyuv is available. * @@ -1330,6 +1331,15 @@ # define PJMEDIA_HAS_LIBYUV 0 #endif + +/** + * Specify if dtmf flash in RFC 2833 is available. + */ +#ifndef PJMEDIA_HAS_DTMF_FLASH +# define PJMEDIA_HAS_DTMF_FLASH 1 +#endif + + /** * @} */ diff --git a/pjmedia/include/pjmedia/stream.h b/pjmedia/include/pjmedia/stream.h index a2e5f207..d0594246 100644 --- a/pjmedia/include/pjmedia/stream.h +++ b/pjmedia/include/pjmedia/stream.h @@ -342,7 +342,8 @@ PJ_DECL(pj_status_t) pjmedia_stream_resume(pjmedia_stream *stream, * * @param stream The media stream. * @param ascii_digit String containing digits to be sent to remote as - * described on RFC 2833 section 3.10. Character 'R' is + * described on RFC 2833 section 3.10. + * If PJMEDIA_HAS_DTMF_FLASH is enabled, character 'R' is * used to represent the event type 16 (flash) as stated * in RFC 4730. * Currently the maximum number of digits are 32. diff --git a/pjmedia/src/pjmedia/endpoint.c b/pjmedia/src/pjmedia/endpoint.c index 9a8dbb22..650c71d8 100644 --- a/pjmedia/src/pjmedia/endpoint.c +++ b/pjmedia/src/pjmedia/endpoint.c @@ -556,7 +556,11 @@ PJ_DEF(pj_status_t) pjmedia_endpt_create_audio_sdp(pjmedia_endpt *endpt, /* Add fmtp */ attr = PJ_POOL_ZALLOC_T(pool, pjmedia_sdp_attr); attr->name = pj_str("fmtp"); +#if defined(PJMEDIA_HAS_DTMF_FLASH) && PJMEDIA_HAS_DTMF_FLASH!= 0 attr->value = pj_str(PJMEDIA_RTP_PT_TELEPHONE_EVENTS_STR " 0-16"); +#else + attr->value = pj_str(PJMEDIA_RTP_PT_TELEPHONE_EVENTS_STR " 0-15"); +#endif m->attr[m->attr_count++] = attr; } #endif diff --git a/pjmedia/src/pjmedia/stream.c b/pjmedia/src/pjmedia/stream.c index d799dfd4..1dd63c7d 100644 --- a/pjmedia/src/pjmedia/stream.c +++ b/pjmedia/src/pjmedia/stream.c @@ -1566,7 +1566,11 @@ static void handle_incoming_dtmf( pjmedia_stream *stream, } /* Ignore unknown event. */ +#if defined(PJMEDIA_HAS_DTMF_FLASH) && PJMEDIA_HAS_DTMF_FLASH!= 0 if (event->event > 16) { +#else + if (event->event > 15) { +#endif PJ_LOG(5,(stream->port.info.name.ptr, "Ignored RTP pkt with bad DTMF event %d", event->event)); @@ -2786,10 +2790,12 @@ PJ_DEF(pj_status_t) pjmedia_stream_dial_dtmf( pjmedia_stream *stream, { pt = 11; } +#if defined(PJMEDIA_HAS_DTMF_FLASH) && PJMEDIA_HAS_DTMF_FLASH!= 0 else if (dig == 'r') { pt = 16; } +#endif else { status = PJMEDIA_RTP_EINDTMF; |