From fea99f822121e5454de50d4db069eb6fbe92df29 Mon Sep 17 00:00:00 2001 From: pcadach Date: Sat, 7 Oct 2006 14:39:34 +0000 Subject: Propagate caller's transfer capability too git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@44684 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_h323.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'channels/chan_h323.c') diff --git a/channels/chan_h323.c b/channels/chan_h323.c index 8e2a04e19..5a7bbc901 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -644,9 +644,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\n", called_addr, pvt->options.dtmfcodec); ast_mutex_unlock(&pvt->lock); @@ -1075,6 +1079,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)) { @@ -1100,6 +1106,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) { -- cgit v1.2.3