Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 May 2000 10:16:30 +0100
From:      "David Hedley" <david@inty.co.uk>
To:        <freebsd-isdn@freebsd.org>
Subject:   ISDN problem fixed....
Message-ID:  <NEBBKDONLMHNHKCKHHAIKEMMCEAA.david@inty.net>

next in thread | raw e-mail | index | archive | help

I have succeeded in fixing the problem I was having with communicating
between i4b and Telewest ISDN. The problem was the same as point 12 in the
FAQ (and hence isn't Netherlands specific)

The solution given in the FAQ is to supply the correct local phone number.
However the problem is slightly more subtle than that. It would appear in
cases like these that if the local calling party number _is_ specified, then
it _must_ be correct, however if it _isn't_ specified then the exchange
doesn't complain!

A preferable solution in these cases is therefore to be able to disable
sending of the local calling party information. The following patch (against
the 3.4-RELEASE kernel) does this. If the local phone number is set to '*',
then no calling party number is sent. The powers that be may wish to include
this (or a similar patch) in a future release of the i4b code.

Best wishes,

David
--
Dr David Hedley, Head of Development
Intelligent Network Technology Ltd, Bristol, UK
http://www.inty.net/

---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<-
--8<---

*** ../../../sys-orig/i4b/layer3/i4b_l2if.c     Mon Nov 15 22:40:40 1999
--- i4b_l2if.c  Thu May 18 09:44:02 2000
***************
*** 434,439 ****
--- 434,441 ----
        int slen = strlen(cd->src_telno);
        int dlen = strlen(cd->dst_telno);

+       if (*cd->src_telno == '*') slen = -3;
+
        /*
         * there is one additional octet if cd->bprot == BPROT_NONE
         * NOTE: the selection of a bearer capability by a B L1
***************
*** 507,517 ****
                        break;
        }

!       *ptr++ = IEI_CALLINGPN;         /* calling party no */
!       *ptr++ = IEI_CALLINGPN_LEN+slen;/* calling party no length */
!       *ptr++ = NUMBER_TYPEPLAN;       /* type of number, number plan id */
!       strncpy(ptr, cd->src_telno, slen);
!       ptr += slen;

        *ptr++ = IEI_CALLEDPN;          /* called party no */
        *ptr++ = IEI_CALLEDPN_LEN+dlen; /* called party no length */
--- 509,521 ----
                        break;
        }

!       if (*cd->src_telno != '*') {
!               *ptr++ = IEI_CALLINGPN;         /* calling party no */
!               *ptr++ = IEI_CALLINGPN_LEN+slen;/* calling party no length
*/
!               *ptr++ = NUMBER_TYPEPLAN;       /* type of number, number
plan id */
!               strncpy(ptr, cd->src_telno, slen);
!               ptr += slen;
!       }

        *ptr++ = IEI_CALLEDPN;          /* called party no */
        *ptr++ = IEI_CALLEDPN_LEN+dlen; /* called party no length */


This email has been virus scanned using Sophos Anti-Virus by intY (www.inty.net)



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isdn" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?NEBBKDONLMHNHKCKHHAIKEMMCEAA.david>