summaryrefslogtreecommitdiff
path: root/channels/sig_pri.h
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2011-04-04 16:17:58 +0000
committerRichard Mudgett <rmudgett@digium.com>2011-04-04 16:17:58 +0000
commite1ceb52b5148d23ebeed76380944406c1b551d22 (patch)
tree2793f9493a7082ff514a1f21a57455203e9bdad6 /channels/sig_pri.h
parent6826b083ec4602637e367e41944946580888a1ee (diff)
Merged revisions 312575 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r312575 | rmudgett | 2011-04-04 11:10:50 -0500 (Mon, 04 Apr 2011) | 52 lines Merged revisions 312574 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r312574 | rmudgett | 2011-04-04 11:00:02 -0500 (Mon, 04 Apr 2011) | 45 lines Merged revisions 312573 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r312573 | rmudgett | 2011-04-04 10:49:30 -0500 (Mon, 04 Apr 2011) | 38 lines Issues with ISDN calls changing B channels during call negotiations. The handling of the PROCEEDING message was not using the correct call structure if the B channel was changed. (The same for PROGRESS.) The call was also not hungup if the new B channel is not provisioned or is busy. * Made all call connection messages (SETUP_ACKNOWLEDGE, PROCEEDING, PROGRESS, ALERTING, CONNECT, CONNECT_ACKNOWLEDGE) ensure that they are using the correct structure and B channel. If there is any problem with the operations then the call is now hungup with an appropriate cause code. * Made miscellaneous messages (INFORMATION, FACILITY, NOTIFY) find the correct structure by looking for the call and not using the channel ID. NOTIFY is an exception with versions of libpri before v1.4.11 because a call pointer is not available for Asterisk to use. * Made all hangup messages (DISCONNECT, RELEASE, RELEASE_COMPLETE) find the correct structure by looking for the call and not using the channel ID. (closes issue #18313) Reported by: destiny6628 Tested by: rmudgett JIRA SWP-2620 (closes issue #18231) Reported by: destiny6628 Tested by: rmudgett JIRA SWP-2924 (closes issue #18488) Reported by: jpokorny JIRA SWP-2929 JIRA AST-437 (The issues fixed here are most likely causing this JIRA issue.) JIRA DAHDI-406 JIRA LIBPRI-33 (Stuck resetting flag likely fixed) ........ ................ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@312579 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/sig_pri.h')
-rw-r--r--channels/sig_pri.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/channels/sig_pri.h b/channels/sig_pri.h
index f4aef912d..f75646e3f 100644
--- a/channels/sig_pri.h
+++ b/channels/sig_pri.h
@@ -305,6 +305,17 @@ struct sig_pri_chan {
unsigned int progress:1; /*!< TRUE if the call has seen inband-information progress through the network */
unsigned int resetting:1; /*!< TRUE if this channel is being reset/restarted */
+ /*!
+ * \brief TRUE when this channel is allocated.
+ *
+ * \details
+ * Needed to hold an outgoing channel allocation before the
+ * owner pointer is created.
+ *
+ * \note This is one of several items to check to see if a
+ * channel is available for use.
+ */
+ unsigned int allocated:1;
unsigned int outgoing:1;
unsigned int digital:1;
/*! \brief TRUE if this interface has no B channel. (call hold and call waiting) */
@@ -558,6 +569,7 @@ int sig_pri_indicate(struct sig_pri_chan *p, struct ast_channel *chan, int condi
int sig_pri_answer(struct sig_pri_chan *p, struct ast_channel *ast);
+int sig_pri_is_chan_available(struct sig_pri_chan *pvt);
int sig_pri_available(struct sig_pri_chan **pvt, int is_specific_channel);
void sig_pri_init_pri(struct sig_pri_span *pri);