summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-04-03 22:33:03 +0000
committerRussell Bryant <russell@russellbryant.com>2007-04-03 22:33:03 +0000
commitb2ddaaf033e3897b27d068b5cd0aed06583b802f (patch)
treee3b3b3451d397a8df6321854986eafc3b458334f
parentd6f029b4f7e51a57fe46e3800037b36cb84ebc78 (diff)
Add support for RTP packetization in chan_jingle and chan_gtalk.
(issue #9416, phsultan) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@60011 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_gtalk.c8
-rw-r--r--channels/chan_jingle.c8
-rw-r--r--doc/rtp-packetization.txt2
3 files changed, 18 insertions, 0 deletions
diff --git a/channels/chan_gtalk.c b/channels/chan_gtalk.c
index 4958ccdb4..bab6f9217 100644
--- a/channels/chan_gtalk.c
+++ b/channels/chan_gtalk.c
@@ -857,6 +857,9 @@ static struct gtalk_pvt *gtalk_alloc(struct gtalk *client, const char *us, const
if (!(tmp = ast_calloc(1, sizeof(*tmp)))) {
return NULL;
}
+
+ memcpy(&tmp->prefs, &client->prefs, sizeof(struct ast_codec_pref));
+
if (sid) {
ast_copy_string(tmp->sid, sid, sizeof(tmp->sid));
ast_copy_string(tmp->them, them, sizeof(tmp->them));
@@ -917,6 +920,11 @@ static struct ast_channel *gtalk_new(struct gtalk *client, struct gtalk_pvt *i,
what = i->capability;
else
what = global_capability;
+
+ /* Set Frame packetization */
+ if (i->rtp)
+ ast_rtp_codec_setpref(i->rtp, &i->prefs);
+
tmp->nativeformats = ast_codec_choose(&i->prefs, what, 1) | (i->jointcapability & AST_FORMAT_VIDEO_MASK);
fmt = ast_best_codec(tmp->nativeformats);
diff --git a/channels/chan_jingle.c b/channels/chan_jingle.c
index 1d3032465..87fb37955 100644
--- a/channels/chan_jingle.c
+++ b/channels/chan_jingle.c
@@ -726,6 +726,9 @@ static struct jingle_pvt *jingle_alloc(struct jingle *client, const char *from,
if (!(tmp = ast_calloc(1, sizeof(*tmp)))) {
return NULL;
}
+
+ memcpy(&tmp->prefs, &client->prefs, sizeof(tmp->prefs));
+
if (sid) {
ast_copy_string(tmp->sid, sid, sizeof(tmp->sid));
ast_copy_string(tmp->from, from, sizeof(tmp->from));
@@ -777,6 +780,11 @@ static struct ast_channel *jingle_new(struct jingle *client, struct jingle_pvt *
what = i->capability;
else
what = global_capability;
+
+ /* Set Frame packetization */
+ if (i->rtp)
+ ast_rtp_codec_setpref(i->rtp, &i->prefs);
+
tmp->nativeformats = ast_codec_choose(&i->prefs, what, 1) | (i->jointcapability & AST_FORMAT_VIDEO_MASK);
fmt = ast_best_codec(tmp->nativeformats);
diff --git a/doc/rtp-packetization.txt b/doc/rtp-packetization.txt
index 647375a98..c558a538e 100644
--- a/doc/rtp-packetization.txt
+++ b/doc/rtp-packetization.txt
@@ -11,6 +11,8 @@ or global level:
chan_skinny
chan_h323
chan_ooh323 (Asterisk-Addons)
+ chan_gtalk
+ chan_jingle
Configuration
-------