Go to file
Richard Mudgett da0b057536 ISDN BRI does not recover from line faults
Q.921 was getting stuck in state 2 (Q921_ASSIGN_AWAITING_TEI).  For some
reason the network was removing the TEI.  Libpri then immediately tried to
get a new TEI assigned.  The network did not reply to the N202(3) attempts
to get a new TEI.  Libpri then just gave up trying but did not leave the
state.  Some paths in Q.921 Figure B.3 were not implemented.

Q.921 now transitions to the Q921_TEI_UNASSIGNED state when the N202 count
is exceeded.  Q.921 will wait there until an incoming or outgoing call is
attempted.

* Fixed initializing the n202_counter.  Not initializing the n202_counter
would cause the Q921_TEI_IDENTITY_REQUEST to unexpectedly not go out and
due to how state transitions were done, Q.921 would get stuck in the
Q921_ASSIGN_AWAITING_TEI state.

* Fixed start T202 timer fail causing Q.921 to get stuck in the
Q921_ASSIGN_AWAITING_TEI state if the network did not respond to the
request.

* Fixed handling of Q921_TEI_IDENTITY_REMOVE to do the MDL-REMOVE
primitive (q921_mdl_remove()) instead of transitioning directly to the
Q921_TEI_UNASSIGNED state.  Necessary state clean-up was not getting done.

* Minor tweaks to q921_mdl_remove().  The worst problem was erroneously
generating an error message.

* Fixed potential for sending I-frames with an invalid TEI.  The I-frame
could have been queued when Q.921 did not have an assigned TEI.

* Fixed testing of the q931_receive() return value when a UI-frame is
received.

(closes issue #17570)
Reported by: jcovert
Patches:
      issue17570_v1.4.11.3_v3.patch uploaded by rmudgett (license 664)
      issue17570_v1.4_v3.patch uploaded by rmudgett (license 664)
Tested by: jcovert, rmudgett


git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@1918 2fbb986a-6c06-0410-b554-c9c1f0a7f128
2010-08-30 17:53:33 +00:00
build_tools Use the correct branch integrated property when generating the version string. 2009-03-13 01:05:54 +00:00
doc Add Call Completion Suppplementary Service 2010-05-26 16:01:10 +00:00
asn1_primitive.c Made ASN.1 memory dump also display printable characters. 2009-06-03 22:51:42 +00:00
asn1.h ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
compat.h remove extraneous svn:executable properties 2005-11-29 18:39:18 +00:00
compiler.h Merged revisions 610 via svnmerge from 2008-08-05 22:18:12 +00:00
copy_string.c Merged revisions 610 via svnmerge from 2008-08-05 22:18:12 +00:00
libpri.h Add pri_new_bri_cb() API - Create BRI D-channel with user defined I/O callbacks and data 2010-07-22 17:59:57 +00:00
LICENSE remove extraneous svn:executable properties 2005-11-29 18:39:18 +00:00
Makefile pritest hadn't been ported to DAHDI 2010-07-16 22:55:15 +00:00
pri_aoc.c support for sending ETSI advice of charge 2010-05-28 22:34:24 +00:00
pri_cc.c Add Call Completion Suppplementary Service 2010-05-26 16:01:10 +00:00
pri_facility.c Q.SIG calling name in FACILITY message not reported to the upper layer. 2010-06-04 22:45:59 +00:00
pri_facility.h support for sending ETSI advice of charge 2010-05-28 22:34:24 +00:00
pri_internal.h [regression] Calling Number assignment logic change in libpri 1.4.11. 2010-06-29 16:15:03 +00:00
pri_q921.h Merge of Q.921 rewrite branch for wider testing. 2010-01-13 19:37:59 +00:00
pri_q931.h ETSI Call Waiting support. 2010-05-28 18:43:57 +00:00
pri.c Convert most references of Q931_MAX_TEI to use ARRAY_LEN(). 2010-08-27 23:37:46 +00:00
pridump.c PTMP NT mode call reference value ambiguity. 2010-04-19 22:40:41 +00:00
prisched.c Add Call Completion Suppplementary Service 2010-05-26 16:01:10 +00:00
pritest.c pritest hadn't been ported to DAHDI 2010-07-16 22:55:15 +00:00
q921.c ISDN BRI does not recover from line faults 2010-08-30 17:53:33 +00:00
q931.c Convert most references of Q931_MAX_TEI to use ARRAY_LEN(). 2010-08-27 23:37:46 +00:00
README Merged revisions 311 via svnmerge from 2006-02-15 18:01:03 +00:00
rose_address.c ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
rose_etsi_aoc.c ETSI Advice Of Charge (AOC) event reporting. 2010-05-28 18:03:38 +00:00
rose_etsi_cc.c Add Call Completion Suppplementary Service 2010-05-26 16:01:10 +00:00
rose_etsi_diversion.c Add COLP support to libpri for ETSI PTP, ETSI PTMP, and Q.SIG. 2009-08-18 23:53:32 +00:00
rose_etsi_ect.c Add COLP support to libpri for ETSI PTP, ETSI PTMP, and Q.SIG. 2009-08-18 23:53:32 +00:00
rose_etsi_mwi.c ETSI Message Waiting Indication (MWI) support. 2010-05-28 21:50:14 +00:00
rose_internal.h ETSI Message Waiting Indication (MWI) support. 2010-05-28 21:50:14 +00:00
rose_other.c ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
rose_q931.c ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
rose_qsig_aoc.c Added Q.SIG Advice-Of-Charge encode/decode routines. 2009-04-21 23:32:13 +00:00
rose_qsig_cc.c Add Call Completion Suppplementary Service 2010-05-26 16:01:10 +00:00
rose_qsig_ct.c ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
rose_qsig_diversion.c Corrected standard document reference. 2009-08-07 15:53:20 +00:00
rose_qsig_mwi.c ETSI Message Waiting Indication (MWI) support. 2010-05-28 21:50:14 +00:00
rose_qsig_name.c Calling name not successfully processed on inbound QSIG PRI calls from Mitel PBX 2010-07-16 16:37:07 +00:00
rose.c Add support to receive ECMA-164 2nd edition OID name ROSE messages. 2010-08-27 15:54:17 +00:00
rose.h ETSI Message Waiting Indication (MWI) support. 2010-05-28 21:50:14 +00:00
rosetest.c Add support to receive ECMA-164 2nd edition OID name ROSE messages. 2010-08-27 15:54:17 +00:00
testprilib.c Merged revisions 610 via svnmerge from 2008-08-05 22:18:12 +00:00
TODO More TODO updates 2006-02-16 19:21:30 +00:00

libpri: An implementation of Primary Rate ISDN

Written by Mark Spencer <markster@digium.com>

What is libpri?
===============

libpri is a C implementation of the Primary Rate ISDN specification.  It was
based on the Bellcore specification SR-NWT-002343 for National ISDN.  As of
May 12, 2001, it has been tested work with NI-2, Nortel DMS-100, and 
Lucent 5E Custom protocols on switches from Nortel and Lucent.

What is the license for libpri?
===============================
libpri is distributed under the terms of the GNU General Public License, 
which permit its use and linking with other GPL'd software only.  
The GNU GPL is included in the file LICENSE in this directory.

As a special exception, libpri may also be linked to the OpenH323
library, so long as the entirity of the derivative work (as defined
within the GPL) is licensed either under the MPL of the OpenH323 license
or the GPL of libpri.

If you wish to use libpri in an application for which the GPL is not 
appropriate (e.g. a proprietary embedded system), licenses for libpri 
under more flexible terms can be readily obtained through Digium, Inc. 
at reasonable cost.


How do I report bugs or contribute?
===================================
For now, contact the author directly.  In the future if there is 
sufficient interest, we will setup a mailing list.

Does anything use this library so far?
======================================
Yes, the Asterisk Open Source PBX does.  http://www.asterisk.org

Also, the Zapata library has hooks for it.  http://www.zapatatelephony.org

Special thanks
==============
Special thanks to Jim Dixon <jim@lambdatel.com> for his help in 
testing and fixing the implementation.