summaryrefslogtreecommitdiff
path: root/channels/chan_h323.c
diff options
context:
space:
mode:
authorKinsey Moore <kmoore@digium.com>2013-09-06 16:01:05 +0000
committerKinsey Moore <kmoore@digium.com>2013-09-06 16:01:05 +0000
commit5a3c17f91f58387db6f5a96e423cb85533626e46 (patch)
tree35f9f02e8a18ffde5f737b8c357ddb692c12d2db /channels/chan_h323.c
parentccfad032e476ba077a4b49879f93db6154550101 (diff)
Fix chan_h323 compilation
This fixes the things in chan_h323 that were missed or ignored in the great channel opaquification and gets chan_h323 back into a compiling state. (closes issue ASTERISK-22365) Reported by: Dmitry Melekhov Patches: chan_h323.patch uploaded by Dmitry Melekhov ........ Merged revisions 398510 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 398511 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@398512 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_h323.c')
-rw-r--r--channels/chan_h323.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index 5ed1c8970..dd23b7f59 100644
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -355,8 +355,8 @@ static void __oh323_update_info(struct ast_channel *c, struct oh323_pvt *pvt)
if (h323debug)
ast_debug(1, "Preparing %s for new native format\n", ast_channel_name(c));
ast_format_cap_from_old_bitfield(ast_channel_nativeformats(c), pvt->nativeformats);
- ast_set_read_format(c, &c->readformat);
- ast_set_write_format(c, &c->writeformat);
+ ast_set_read_format(c, ast_channel_readformat(c));
+ ast_set_write_format(c, ast_channel_writeformat(c));
}
if (pvt->needhangup) {
if (h323debug)
@@ -796,8 +796,8 @@ static struct ast_frame *oh323_rtp_read(struct oh323_pvt *pvt)
pvt->nativeformats = ast_format_to_old_bitfield(&f->subclass.format);
- ast_set_read_format(pvt->owner, &pvt->owner->readformat);
- ast_set_write_format(pvt->owner, &pvt->owner->writeformat);
+ ast_set_read_format(pvt->owner, ast_channel_readformat(pvt->owner));
+ ast_set_write_format(pvt->owner,ast_channel_writeformat(pvt->owner));
ast_channel_unlock(pvt->owner);
}
/* Do in-band DTMF detection */
@@ -863,7 +863,10 @@ static int oh323_write(struct ast_channel *c, struct ast_frame *frame)
if (!(ast_format_cap_iscompatible(ast_channel_nativeformats(c), &frame->subclass.format))) {
char tmp[256];
ast_log(LOG_WARNING, "Asked to transmit frame type '%s', while native formats is '%s' (read/write = %s/%s)\n",
- ast_getformatname(&frame->subclass.format), ast_getformatname_multiple(tmp, sizeof(tmp), ast_channel_nativeformats(c)), ast_getformatname(&c->readformat), ast_getformatname(&c->writeformat));
+ ast_getformatname(&frame->subclass.format),
+ ast_getformatname_multiple(tmp, sizeof(tmp), ast_channel_nativeformats(c)),
+ ast_getformatname(ast_channel_readformat(c)),
+ ast_getformatname(ast_channel_writeformat(c)));
return 0;
}
}
@@ -976,7 +979,7 @@ static int oh323_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
ast_log(LOG_WARNING, "old channel wasn't %p but was %p\n", oldchan, pvt->owner);
return -1;
}
- oh323_set_owner(p, newchan);
+ oh323_set_owner(pvt, newchan);
ast_mutex_unlock(&pvt->lock);
return 0;
}
@@ -1009,7 +1012,7 @@ static int __oh323_rtp_create(struct oh323_pvt *pvt)
ast_debug(1, "Created RTP channel\n");
ast_rtp_instance_set_qos(pvt->rtp, tos, cos, "H323 RTP");
- ast_rtp_instance_set_channel_id(pvt->rtp, pvt->owner ? ast_channel_uniqueid(pvt->owner), "");
+ ast_rtp_instance_set_channel_id(pvt->rtp, pvt->owner ? ast_channel_uniqueid(pvt->owner) : "");
if (h323debug)
ast_debug(1, "Setting NAT on RTP to %d\n", pvt->options.nat);
@@ -1071,10 +1074,10 @@ static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const c
pvt->nativeformats = ast_format_cap_to_old_bitfield(ast_channel_nativeformats(ch));
ast_best_codec(ast_channel_nativeformats(ch), &tmpfmt);
- ast_format_copy(&ch->writeformat, &tmpfmt);
- ast_format_copy(&ch->rawwriteformat, &tmpfmt);
- ast_format_copy(&ch->readformat, &tmpfmt);
- ast_format_copy(&ch->rawreadformat, &tmpfmt);
+ ast_format_copy(ast_channel_writeformat(ch), &tmpfmt);
+ ast_format_copy(ast_channel_rawwriteformat(ch), &tmpfmt);
+ ast_format_copy(ast_channel_readformat(ch), &tmpfmt);
+ ast_format_copy(ast_channel_rawreadformat(ch), &tmpfmt);
if (!pvt->rtp)
__oh323_rtp_create(pvt);
#if 0
@@ -1196,7 +1199,7 @@ static void oh323_set_owner(struct oh323_pvt *pvt, struct ast_channel *chan)
{
pvt->owner = chan;
if (pvt->rtp) {
- ast_rtp_instance_set_channel_id(pvt, chan ? ast_channel_uniqueid(chan) : "");
+ ast_rtp_instance_set_channel_id(pvt->rtp, chan ? ast_channel_uniqueid(chan) : "");
}
}
@@ -2097,11 +2100,15 @@ static void setup_rtp_connection(unsigned call_reference, const char *remoteIp,
if (!(ast_format_cap_identical(ast_channel_nativeformats(pvt->owner), pvt_native))) {
if (h323debug) {
char tmp[256], tmp2[256];
- ast_debug(1, "Native format changed to '%s' from '%s', read format is %s, write format is %s\n", ast_getformatname_multiple(tmp, sizeof(tmp), pvt_native), ast_getformatname_multiple(tmp2, sizeof(tmp2), ast_channel_nativeformats(pvt->owner)), ast_getformatname(&pvt->owner->readformat), ast_getformatname(&pvt->owner->writeformat));
+ ast_debug(1, "Native format changed to '%s' from '%s', read format is %s, write format is %s\n",
+ ast_getformatname_multiple(tmp, sizeof(tmp), pvt_native),
+ ast_getformatname_multiple(tmp2, sizeof(tmp2), ast_channel_nativeformats(pvt->owner)),
+ ast_getformatname(ast_channel_readformat(pvt->owner)),
+ ast_getformatname(ast_channel_writeformat(pvt->owner)));
}
ast_format_cap_copy(ast_channel_nativeformats(pvt->owner), pvt_native);
- ast_set_read_format(pvt->owner, &pvt->owner->readformat);
- ast_set_write_format(pvt->owner, &pvt->owner->writeformat);
+ ast_set_read_format(pvt->owner, ast_channel_readformat(pvt->owner));
+ ast_set_write_format(pvt->owner, ast_channel_writeformat(pvt->owner));
}
if (pvt->options.progress_audio)
ast_queue_control(pvt->owner, AST_CONTROL_PROGRESS);