diff options
author | Russell Bryant <russell@russellbryant.com> | 2007-04-03 22:33:03 +0000 |
---|---|---|
committer | Russell Bryant <russell@russellbryant.com> | 2007-04-03 22:33:03 +0000 |
commit | b2ddaaf033e3897b27d068b5cd0aed06583b802f (patch) | |
tree | e3b3b3451d397a8df6321854986eafc3b458334f | |
parent | d6f029b4f7e51a57fe46e3800037b36cb84ebc78 (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.c | 8 | ||||
-rw-r--r-- | channels/chan_jingle.c | 8 | ||||
-rw-r--r-- | doc/rtp-packetization.txt | 2 |
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 ------- |