summaryrefslogtreecommitdiff
path: root/channels/misdn
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2009-04-27 20:03:49 +0000
committerRichard Mudgett <rmudgett@digium.com>2009-04-27 20:03:49 +0000
commit89d06c7759086e1c4e48da6cd693d544684772b9 (patch)
treed2139a84e6f6ca8924f8827177c295366227c906 /channels/misdn
parentb88343b248521e6b6308c7964aea72402f96a01d (diff)
Make PTP DivertingLegInformation3 message behavior closer to the specifications.
* Wait for a DivertingLegInformation3 message after receiving a DivertingLegInformation1 message to complete the redirecting-to information before queuing a redirecting update to the other channel. * A DivertingLegInformation2 message should be responded to with a DivertingLegInformation3 when the COLR is determined. If the call could or does experience another redirection, you should manually determine the COLR to send to the switch by setting REDIRECTING(to-pres) to the COLR and setting REDIRECTING(to-num) = ${EXTEN}. * A DivertingLegInformation2 message must have an original called number if the redirection count is greater than one. Since Asterisk does not keep track of this information, we can only indicate that the number is not available due to interworking. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@190735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/misdn')
-rw-r--r--channels/misdn/isdn_lib.c5
-rw-r--r--channels/misdn/isdn_lib.h12
2 files changed, 17 insertions, 0 deletions
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c
index 4a0da06d3..c0a4170e2 100644
--- a/channels/misdn/isdn_lib.c
+++ b/channels/misdn/isdn_lib.c
@@ -764,6 +764,11 @@ static void empty_bc(struct misdn_bchannel *bc)
bc->progress_location=0;
bc->progress_indicator=0;
+#if defined(AST_MISDN_ENHANCEMENTS)
+ bc->div_leg_3_rx_wanted = 0;
+ bc->div_leg_3_tx_pending = 0;
+#endif /* defined(AST_MISDN_ENHANCEMENTS) */
+
/** Set Default Bearer Caps **/
bc->capability=INFO_CAPABILITY_SPEECH;
bc->law=INFO_CODEC_ALAW;
diff --git a/channels/misdn/isdn_lib.h b/channels/misdn/isdn_lib.h
index 7bd516565..df11659c3 100644
--- a/channels/misdn/isdn_lib.h
+++ b/channels/misdn/isdn_lib.h
@@ -493,6 +493,18 @@ struct misdn_bchannel {
*/
int progress_indicator;
+#if defined(AST_MISDN_ENHANCEMENTS)
+ /*!
+ * \brief TRUE if waiting for DivertingLegInformation3 to queue redirecting update.
+ */
+ int div_leg_3_rx_wanted;
+
+ /*!
+ * \brief TRUE if a DivertingLegInformation3 needs to be sent with CONNECT.
+ */
+ int div_leg_3_tx_pending;
+#endif /* defined(AST_MISDN_ENHANCEMENTS) */
+
/*! \brief Inbound FACILITY message function type and contents */
struct FacParm fac_in;