Go to file
Matthew Fredrickson 3a1739883b There are two changes in this commit that are bug fixes for various Q.921 issues found in internal testing.
Both were exposed/introduced by the TBR4 compliance patch for bug #12861, in changing how retransmissions and in how
the transmission queue was maintained.  TX-RX message flow and acknowledgement was severely restricted,
since the patch changed the behavior so that pending untransmitted frames would not actually be send until
the next RR was received in normal circumstances, or REJ when a reject frame was received.  On busy links,
this can severly limit the amount of useful traffic that is sent, and can slow down message transmission.

Until someone can point out where in Q.921 it is mandated for us to wait for RR frames to start sending
untransmitted messages, the first change is to allow us to send untransmitted frames when we receive new
I frames as well, with updated N(R).

The other bug fixed is a situation caused by the restricted traffic flow, if an outside process tries to send
an I-frame asynchronous to an RR frame, when the transmit window was previously closed and then opened up but 
an RR has not been received yet.  A bug was found with the integration of the old transmit code with the new reject 
handling code which caused the new frame to be sent immediately, regardless if there were any pending untransmitted 
I-frames in the queue to be sent and causing an out of order I-frame to be sent to the other side.  This bug is 
also fixed in this patch.


git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@859 2fbb986a-6c06-0410-b554-c9c1f0a7f128
2009-06-09 19:47:05 +00:00
build_tools Use the correct branch integrated property when generating the version string. 2009-03-13 01:05:54 +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 'const' qualifier to character string argument to keypad facility API calls 2009-05-13 15:17:08 +00:00
LICENSE remove extraneous svn:executable properties 2005-11-29 18:39:18 +00:00
Makefile Added Q.SIG Advice-Of-Charge encode/decode routines. 2009-04-21 23:32:13 +00:00
pri_facility.c Added Q.SIG Advice-Of-Charge encode/decode routines. 2009-04-21 23:32:13 +00:00
pri_facility.h ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
pri_internal.h Minor code clean up. 2009-05-07 16:21:24 +00:00
pri_q921.h Add service maintenance message support 2009-04-14 15:05:21 +00:00
pri_q931.h Add 'const' qualifier to character string argument to keypad facility API calls 2009-05-13 15:17:08 +00:00
pri_timers.h Merged revisions 610 via svnmerge from 2008-08-05 22:18:12 +00:00
pri.c Add 'const' qualifier to character string argument to keypad facility API calls 2009-05-13 15:17:08 +00:00
pridump.c Merged revisions 610 via svnmerge from 2008-08-05 22:18:12 +00:00
prisched.c Merged revisions 610 via svnmerge from 2008-08-05 22:18:12 +00:00
pritest.c Merged revisions 610 via svnmerge from 2008-08-05 22:18:12 +00:00
q921.c There are two changes in this commit that are bug fixes for various Q.921 issues found in internal testing. 2009-06-09 19:47:05 +00:00
q931.c Renamed callstate2str() to q931_call_state_str(). 2009-06-03 21:35:14 +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 ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
rose_internal.h Added Q.SIG Advice-Of-Charge encode/decode routines. 2009-04-21 23:32:13 +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_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 ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
rose_qsig_mwi.c ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
rose_qsig_name.c ROSE ASN.1 facility encode and decode rewrite of existing messages. 2009-04-21 22:08:45 +00:00
rose.c Added Q.SIG Advice-Of-Charge encode/decode routines. 2009-04-21 23:32:13 +00:00
rose.h Added Q.SIG Advice-Of-Charge encode/decode routines. 2009-04-21 23:32:13 +00:00
rosetest.c Added Q.SIG Advice-Of-Charge encode/decode routines. 2009-04-21 23:32:13 +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.