summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorRiza Sulistyo <riza@teluu.com>2016-02-18 03:15:19 +0000
committerRiza Sulistyo <riza@teluu.com>2016-02-18 03:15:19 +0000
commit9a0b39a7dd33817f1b5068e0ad719aba4ddc00b7 (patch)
tree6cf95b332fedf259a67eb6afbd16cb9d0c09a221 /pjmedia
parent3985dd57937870f3d47a4ddd68b477a42ffddec1 (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.h10
-rw-r--r--pjmedia/include/pjmedia/stream.h3
-rw-r--r--pjmedia/src/pjmedia/endpoint.c4
-rw-r--r--pjmedia/src/pjmedia/stream.c6
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;