aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES1
-rw-r--r--main/rtp_engine.c8
-rw-r--r--res/res_rtp_asterisk.c2
3 files changed, 7 insertions, 4 deletions
diff --git a/CHANGES b/CHANGES
index 779adfbbd..d59eebd11 100644
--- a/CHANGES
+++ b/CHANGES
@@ -68,6 +68,7 @@ SIP Changes
* Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
Charge messages to snom phones.
* Added support for G.719 media streams.
+ * Added support for 16khz signed linear media streams.
IAX2 Changes
-----------
diff --git a/main/rtp_engine.c b/main/rtp_engine.c
index 5e4db2309..eeaa008a8 100644
--- a/main/rtp_engine.c
+++ b/main/rtp_engine.c
@@ -97,6 +97,7 @@ static const struct ast_rtp_mime_type {
{{1, AST_FORMAT_G726}, "audio", "G726-32", 8000},
{{1, AST_FORMAT_ADPCM}, "audio", "DVI4", 8000},
{{1, AST_FORMAT_SLINEAR}, "audio", "L16", 8000},
+ {{1, AST_FORMAT_SLINEAR16}, "audio", "L16", 16000},
{{1, AST_FORMAT_LPC10}, "audio", "LPC", 8000},
{{1, AST_FORMAT_G729A}, "audio", "G729", 8000},
{{1, AST_FORMAT_G729A}, "audio", "G729A", 8000},
@@ -165,15 +166,16 @@ static const struct ast_rtp_payload_type static_RTP_PT[AST_RTP_MAX_PT] = {
[102] = {1, AST_FORMAT_SIREN7},
[103] = {1, AST_FORMAT_H263_PLUS},
[104] = {1, AST_FORMAT_MP4_VIDEO},
- [105] = {1, AST_FORMAT_T140RED}, /* Real time text chat (with redundancy encoding) */
- [106] = {1, AST_FORMAT_T140}, /* Real time text chat */
+ [105] = {1, AST_FORMAT_T140RED}, /* Real time text chat (with redundancy encoding) */
+ [106] = {1, AST_FORMAT_T140}, /* Real time text chat */
[110] = {1, AST_FORMAT_SPEEX},
[111] = {1, AST_FORMAT_G726},
[112] = {1, AST_FORMAT_G726_AAL2},
[115] = {1, AST_FORMAT_SIREN14},
[116] = {1, AST_FORMAT_G719},
[117] = {1, AST_FORMAT_SPEEX16},
- [121] = {0, AST_RTP_CISCO_DTMF}, /* Must be type 121 */
+ [118] = {1, AST_FORMAT_SLINEAR16}, /* 16 Khz signed linear */
+ [121] = {0, AST_RTP_CISCO_DTMF}, /* Must be type 121 */
};
int ast_rtp_engine_register2(struct ast_rtp_engine *engine, struct ast_module *module)
diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index 7fe8ff9ba..edea6112c 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -2230,7 +2230,7 @@ static struct ast_frame *ast_rtp_read(struct ast_rtp_instance *instance, int rtc
if (rtp->f.subclass.codec & AST_FORMAT_AUDIO_MASK) {
rtp->f.samples = ast_codec_get_samples(&rtp->f);
- if (rtp->f.subclass.codec == AST_FORMAT_SLINEAR)
+ if (rtp->f.subclass.codec == AST_FORMAT_SLINEAR || AST_FORMAT_SLINEAR16)
ast_frame_byteswap_be(&rtp->f);
calc_rxstamp(&rtp->f.delivery, rtp, timestamp, mark);
/* Add timing data to let ast_generic_bridge() put the frame into a jitterbuf */