3a1739883b
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 |
||
---|---|---|
build_tools | ||
asn1_primitive.c | ||
asn1.h | ||
compat.h | ||
compiler.h | ||
copy_string.c | ||
libpri.h | ||
LICENSE | ||
Makefile | ||
pri_facility.c | ||
pri_facility.h | ||
pri_internal.h | ||
pri_q921.h | ||
pri_q931.h | ||
pri_timers.h | ||
pri.c | ||
pridump.c | ||
prisched.c | ||
pritest.c | ||
q921.c | ||
q931.c | ||
README | ||
rose_address.c | ||
rose_etsi_aoc.c | ||
rose_internal.h | ||
rose_other.c | ||
rose_q931.c | ||
rose_qsig_aoc.c | ||
rose_qsig_ct.c | ||
rose_qsig_diversion.c | ||
rose_qsig_mwi.c | ||
rose_qsig_name.c | ||
rose.c | ||
rose.h | ||
rosetest.c | ||
testprilib.c | ||
TODO |
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.