diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-01-30 17:08:28 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-01-30 17:08:28 +0000 |
commit | cecba8a5e0e3f6cc0f1f2cd5ce2d5dff53387c9e (patch) | |
tree | 33540998c1c5dfca475f87eba40a32bb26265825 /channels/chan_zap.c | |
parent | 229bffe4bab92e71169276fc919403be04d4ebbc (diff) |
disable buggy PRI user-user code until it can be fixed
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@8905 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_zap.c')
-rw-r--r-- | channels/chan_zap.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 7308aecaf..0a4f21b8e 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -107,6 +107,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #define ZT_EVENT_DTMFUP 0 #endif +/* define this to send PRI user-user information elements */ +#undef SUPPORT_USERUSER + /*! * \note Define ZHONE_HACK to cause us to go off hook and then back on hook when * the user hangs up to reset the state machine so ring works properly. @@ -2004,7 +2007,9 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout) #ifdef ZAPATA_PRI if (p->pri) { struct pri_sr *sr; +#ifdef SUPPORT_USERUSER char *useruser; +#endif int pridialplan; int dp_strip; int prilocaldialplan; @@ -2118,11 +2123,14 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout) l ? (p->use_callingpres ? ast->cid.cid_pres : PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN) : PRES_NUMBER_NOT_AVAILABLE); pri_sr_set_redirecting(sr, ast->cid.cid_rdnis, p->pri->localdialplan - 1, PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN, PRI_REDIR_UNCONDITIONAL); + +#ifdef SUPPORT_USERUSER /* User-user info */ useruser = pbx_builtin_getvar_helper(p->owner, "USERUSERINFO"); if (useruser) pri_sr_set_useruser(sr, useruser); +#endif if (pri_setup(p->pri->pri, p->call, sr)) { ast_log(LOG_WARNING, "Unable to setup call to %s (using %s)\n", @@ -2462,13 +2470,20 @@ static int zt_hangup(struct ast_channel *ast) /* Perform low level hangup if no owner left */ #ifdef ZAPATA_PRI if (p->pri) { +#ifdef SUPPORT_USERUSER char *useruser = pbx_builtin_getvar_helper(ast,"USERUSERINFO"); +#endif + /* Make sure we have a call (or REALLY have a call in the case of a PRI) */ if (p->call && (!p->bearer || (p->bearer->call == p->call))) { if (!pri_grab(p, p->pri)) { if (p->alreadyhungup) { ast_log(LOG_DEBUG, "Already hungup... Calling hangup once, and clearing call\n"); + +#ifdef SUPPORT_USERUSER pri_call_set_useruser(p->call, useruser); +#endif + pri_hangup(p->pri->pri, p->call, -1); p->call = NULL; if (p->bearer) @@ -2477,7 +2492,11 @@ static int zt_hangup(struct ast_channel *ast) char *cause = pbx_builtin_getvar_helper(ast,"PRI_CAUSE"); int icause = ast->hangupcause ? ast->hangupcause : -1; ast_log(LOG_DEBUG, "Not yet hungup... Calling hangup once with icause, and clearing call\n"); + +#ifdef SUPPORT_USERUSER pri_call_set_useruser(p->call, useruser); +#endif + p->alreadyhungup = 1; if (p->bearer) p->bearer->alreadyhungup = 1; @@ -8507,9 +8526,13 @@ static void *pri_dchannel(void *vpri) snprintf(ani2str, 5, "%.2d", e->ring.ani2); pbx_builtin_setvar_helper(c, "ANI2", ani2str); } + +#ifdef SUPPORT_USERUSER if (!ast_strlen_zero(e->ring.useruserinfo)) { pbx_builtin_setvar_helper(c, "USERUSERINFO", e->ring.useruserinfo); } +#endif + snprintf(calledtonstr, sizeof(calledtonstr)-1, "%d", e->ring.calledplan); pbx_builtin_setvar_helper(c, "CALLEDTON", calledtonstr); if (e->ring.redirectingreason >= 0) @@ -8542,9 +8565,13 @@ static void *pri_dchannel(void *vpri) snprintf(ani2str, 5, "%d", e->ring.ani2); pbx_builtin_setvar_helper(c, "ANI2", ani2str); } + +#ifdef SUPPORT_USERUSER if (!ast_strlen_zero(e->ring.useruserinfo)) { pbx_builtin_setvar_helper(c, "USERUSERINFO", e->ring.useruserinfo); } +#endif + if (e->ring.redirectingreason >= 0) pbx_builtin_setvar_helper(c, "PRIREDIRECTREASON", redirectingreason2str(e->ring.redirectingreason)); @@ -8610,9 +8637,13 @@ static void *pri_dchannel(void *vpri) pri->pvts[chanpos]->dsp_features = 0; } } + +#ifdef SUPPORT_USERUSER if (!ast_strlen_zero(e->ringing.useruserinfo)) { pbx_builtin_setvar_helper(pri->pvts[chanpos]->owner, "USERUSERINFO", e->ringing.useruserinfo); } +#endif + ast_mutex_unlock(&pri->pvts[chanpos]->lock); } } @@ -8767,9 +8798,13 @@ static void *pri_dchannel(void *vpri) /* Enable echo cancellation if it's not on already */ zt_enable_ec(pri->pvts[chanpos]); } + +#ifdef SUPPORT_USERUSER if (!ast_strlen_zero(e->answer.useruserinfo)) { pbx_builtin_setvar_helper(pri->pvts[chanpos]->owner, "USERUSERINFO", e->answer.useruserinfo); } +#endif + ast_mutex_unlock(&pri->pvts[chanpos]->lock); } } @@ -8827,9 +8862,13 @@ static void *pri_dchannel(void *vpri) if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "Channel %d/%d, span %d received AOC-E charging %d unit%s\n", pri->pvts[chanpos]->logicalspan, pri->pvts[chanpos]->prioffset, pri->span, (int)e->hangup.aoc_units, (e->hangup.aoc_units == 1) ? "" : "s"); + +#ifdef SUPPORT_USERUSER if (!ast_strlen_zero(e->hangup.useruserinfo)) { pbx_builtin_setvar_helper(pri->pvts[chanpos]->owner, "USERUSERINFO", e->hangup.useruserinfo); } +#endif + ast_mutex_unlock(&pri->pvts[chanpos]->lock); } else { ast_log(LOG_WARNING, "Hangup on bad channel %d/%d on span %d\n", @@ -8887,9 +8926,13 @@ static void *pri_dchannel(void *vpri) pri_reset(pri->pri, PVT_TO_CHANNEL(pri->pvts[chanpos])); pri->pvts[chanpos]->resetting = 1; } + +#ifdef SUPPORT_USERUSER if (!ast_strlen_zero(e->hangup.useruserinfo)) { pbx_builtin_setvar_helper(pri->pvts[chanpos]->owner, "USERUSERINFO", e->hangup.useruserinfo); } +#endif + ast_mutex_unlock(&pri->pvts[chanpos]->lock); } else { ast_log(LOG_WARNING, "Hangup REQ on bad channel %d/%d on span %d\n", PRI_SPAN(e->hangup.channel), PRI_CHANNEL(e->hangup.channel), pri->span); @@ -8913,9 +8956,13 @@ static void *pri_dchannel(void *vpri) if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "Channel %d/%d, span %d got hangup ACK\n", PRI_SPAN(e->hangup.channel), PRI_CHANNEL(e->hangup.channel), pri->span); } + +#ifdef SUPPORT_USERUSER if (!ast_strlen_zero(e->hangup.useruserinfo)) { pbx_builtin_setvar_helper(pri->pvts[chanpos]->owner, "USERUSERINFO", e->hangup.useruserinfo); } +#endif + ast_mutex_unlock(&pri->pvts[chanpos]->lock); } } |