summaryrefslogtreecommitdiff
path: root/channels/chan_h323.c
diff options
context:
space:
mode:
authorPaul Cadach <paul@odt.east.telecom.kz>2006-10-07 14:48:32 +0000
committerPaul Cadach <paul@odt.east.telecom.kz>2006-10-07 14:48:32 +0000
commit1ed8fb571f83cd8a5d9f50ca950643dd9bae9965 (patch)
tree2c62b569f26cef6dfe565c7e7e946c14782069c7 /channels/chan_h323.c
parent500353e0953ad3366b5c988ef21e78f6b802b99d (diff)
Merged revisions 44684 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r44684 | pcadach | 2006-10-07 20:39:34 +0600 (Сбт, 07 Окт 2006) | 1 line Propagate caller's transfer capability too ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44686 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_h323.c')
-rw-r--r--channels/chan_h323.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index 6f4556617..5cc7cddb0 100644
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -647,9 +647,13 @@ static int oh323_call(struct ast_channel *c, char *dest, int timeout)
} else
pvt->options.redirect_reason = -1;
+ pvt->options.transfer_capability = c->transfercapability;
+
/* indicate that this is an outgoing call */
pvt->outgoing = 1;
+ if (option_verbose > 2)
+ ast_verbose(VERBOSE_PREFIX_3 "Requested transfer capability: 0x%.2x - %s\n", c->transfercapability, ast_transfercapability2str(c->transfercapability));
if (h323debug)
ast_log(LOG_DEBUG, "Placing outgoing call to %s, %d/%d\n", called_addr, pvt->options.dtmfcodec[0], pvt->options.dtmfcodec[1]);
ast_mutex_unlock(&pvt->lock);
@@ -1083,6 +1087,8 @@ static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const c
if (!ast_strlen_zero(pvt->exten) && strcmp(pvt->exten, "s")) {
ch->cid.cid_dnid = strdup(pvt->exten);
}
+ if (pvt->cd.transfer_capability >= 0)
+ ch->transfercapability = pvt->cd.transfer_capability;
ast_setstate(ch, state);
if (state != AST_STATE_DOWN) {
if (ast_pbx_start(ch)) {
@@ -1108,6 +1114,7 @@ static struct oh323_pvt *oh323_alloc(int callid)
}
memset(pvt, 0, sizeof(struct oh323_pvt));
pvt->cd.redirect_reason = -1;
+ pvt->cd.transfer_capability = -1;
/* Ensure the call token is allocated for outgoing call */
if (!callid) {
if ((pvt->cd).call_token == NULL) {