Merged revisions 296582 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r296582 | rmudgett | 2010-11-29 14:46:03 -0600 (Mon, 29 Nov 2010) | 24 lines
  
  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
  ..........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@296585 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2010-11-29 20:54:27 +00:00
parent 22cca55597
commit 267cf27744
2 changed files with 27 additions and 2 deletions

View File

@@ -500,6 +500,8 @@ static msg_t *build_setup (struct isdn_msg msgs[], struct misdn_bchannel *bc, in
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 @@ static msg_t *build_setup (struct isdn_msg msgs[], struct misdn_bchannel *bc, in
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 @@ static msg_t *build_setup (struct isdn_msg msgs[], struct misdn_bchannel *bc, in
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,