[svn-commits] rmudgett: branch 1.8 r296582 - in /branches/1.8/channels: ./ misdn/
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Mon Nov 29 14:46:07 CST 2010
Author: rmudgett
Date: Mon Nov 29 14:46:03 2010
New Revision: 296582
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=296582
Log:
Merged revision 296575 from
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
..........
r296575 | rmudgett | 2010-11-29 14:27:37 -0600 (Mon, 29 Nov 2010) | 13 lines
Invalid mISDN PTMP redirecting signaling as TE towards NT.
The mISDN PTMP redirection signaling (NOTIFY redirecting number and
notification code, SETUP redirecting number) is also sent in PTMP/TE mode.
It should only apply in PTMP/NT mode. The call setup proceeds but the
network (Deutsche Telekom) reacts with ugly ISDN STATUS messages.
Also don't send the redirecting number ie when PTP is also sending the
DivertingLegInformation2 facility. The redirecting number ie is redundant
and the network (Deutsche Telekom) complains about it.
Patches:
abe_2651_v4.patch uploaded by rmudgett (license 664)
JIRA ABE-2651
JIRA SWP-2537
..........
Modified:
branches/1.8/channels/chan_misdn.c
branches/1.8/channels/misdn/isdn_msg_parser.c
Modified: branches/1.8/channels/chan_misdn.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/chan_misdn.c?view=diff&rev=296582&r1=296581&r2=296582
==============================================================================
--- branches/1.8/channels/chan_misdn.c (original)
+++ branches/1.8/channels/chan_misdn.c Mon Nov 29 14:46:03 2010
@@ -6432,6 +6432,15 @@
is_ptmp = !misdn_lib_is_ptp(bc->port);
if (is_ptmp) {
+ /*
+ * We should not send these messages to the network if we are
+ * the CPE side since phones do not redirect calls within
+ * themselves. Well... If you consider someone else picking up
+ * the handset a redirection then how is the network to know?
+ */
+ if (!misdn_lib_port_is_nt(bc->port)) {
+ return;
+ }
/* Send NOTIFY(call-is-diverting, redirecting.to data) */
bc->redirecting.to_changed = 1;
bc->notify_description_code = mISDN_NOTIFY_CODE_CALL_IS_DIVERTING;
Modified: branches/1.8/channels/misdn/isdn_msg_parser.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/misdn/isdn_msg_parser.c?view=diff&rev=296582&r1=296581&r2=296582
==============================================================================
--- branches/1.8/channels/misdn/isdn_msg_parser.c (original)
+++ branches/1.8/channels/misdn/isdn_msg_parser.c Mon Nov 29 14:46:03 2010
@@ -500,6 +500,8 @@
int HEADER_LEN = nt?mISDNUSER_HEAD_SIZE:mISDN_HEADER_LEN;
SETUP_t *setup;
msg_t *msg =(msg_t*)create_l3msg(CC_SETUP | REQUEST, MT_SETUP, bc?bc->l3_id:-1, sizeof(SETUP_t) ,nt);
+ int is_ptp;
+ enum FacFunction fac_type;
setup=(SETUP_t*)((msg->data+HEADER_LEN));
@@ -508,7 +510,8 @@
else
enc_ie_channel_id(&setup->CHANNEL_ID, msg, 1, bc->channel, nt,bc);
- if (bc->fac_out.Function != Fac_None) {
+ fac_type = bc->fac_out.Function;
+ if (fac_type != Fac_None) {
enc_ie_facility(&setup->FACILITY, msg, &bc->fac_out, nt);
}
@@ -522,7 +525,20 @@
switch (bc->outgoing_colp) {
case 0:/* pass */
case 1:/* restricted */
- if (bc->redirecting.from.number[0]) {
+ is_ptp = misdn_lib_is_ptp(bc->port);
+ if (bc->redirecting.from.number[0]
+ && ((!is_ptp && nt)
+ || (is_ptp
+#if defined(AST_MISDN_ENHANCEMENTS)
+ /*
+ * There is no need to send out this ie when we are also sending
+ * a Fac_DivertingLegInformation2 as well. The
+ * Fac_DivertingLegInformation2 supercedes the information in
+ * this ie.
+ */
+ && fac_type != Fac_DivertingLegInformation2
+#endif /* defined(AST_MISDN_ENHANCEMENTS) */
+ ))) {
#if 1
/* ETSI and Q.952 do not define the screening field */
enc_ie_redir_nr(&setup->REDIR_NR, msg, bc->redirecting.from.number_type,
More information about the svn-commits
mailing list