Internet DRAFT - draft-ietf-avt-rtcptest

draft-ietf-avt-rtcptest



Internet Engineering Task Force                 Audio Video Transport WG
Internet Draft                                 J.Rosenberg,H.Schulzrinne
draft-ietf-avt-rtcptest-01.txt             Bell Laboratories,Columbia U.
June 25, 1999
Expires: December 1999


            Conformance Tests for RTP Scalability Algorithms

STATUS OF THIS MEMO

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as work in progress.

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.


Abstract

   This document defines a set of tests that can be run on an RTP imple-
   mentation to determine the level of conformance with the various sca-
   lability algorithms defined in the draft version of RTP. These tests
   do not require access to internal implementations, and use black box
   testing techniques to determine compliance.


1 Introduction

   The draft standard version of RTP [1] contains a number of algorithms
   and behaviors related to transmission and reception of RTCP packets.
   These algorithms include periodic transmission of RTCP packets, SSRC
   collision detection, and allocation of differing RTCP rates to
   senders and receivers. Many of these algorithms (forward reconsidera-
   tion, reverse reconsideration, and BYE reconsideration) relate to



J.Rosenberg,H.Schulzrinne                                     [Page 1]


Internet Draft                 RTCP Test                   June 25, 1999


   scalability features for large groups [2,3], and have been added in
   the transition from proposed to draft standard. Other mechanisms have
   been added to enhance robustness for high bandwidth sessions, or to
   allow greater flexibility in choosing RTCP bandwidth usage.

   It is essential for the evolution of RTP to evaluate the interopera-
   bility of these features. However, many of these algorithms are local
   computations which affect timers and other session variables. These
   do not get reflected in the content of messages that are sent by RTP
   participants. As a result, correctness and interoperability of this
   features is difficult to assess. Other features of RTP (such as SSRC
   collision) occur in unusual circumstances, and will not likely show
   up in a typical interop test.

   To get around these problems, this document proposes a suite of con-
   formance tests that can be run on an implementation to test its com-
   pliance to various components of the draft standard RTP. These tests
   are "black box" tests, and do not require access to the internal
   workings of the implementation being tested.

2 Testing Architecture

   The basic architecture for performing the tests is shown in Figure 1.



                     --------------
                    |              |
                    |    test      |
                    |  instrument  |
                    |              |
                     --------------
                          |
         -------------------------------- LAN
               |
        ----------------
       |                |
       |      RTP       |
       | implementation |
       |                |
        ----------------


   Figure 1: Testing Architecture



   The test instrument is connected on the same LAN as the RTP



J.Rosenberg,H.Schulzrinne                                     [Page 2]


Internet Draft                 RTCP Test                   June 25, 1999


   implementation being tested. It is assumed that the test instrument
   is preconfigured with the addresses and ports used by the RTP imple-
   mentation, and is also aware of the RTCP bandwidth and
   sender/receiver fractions. The tests can be conducted using either
   multicast or unicast.

   The test instrument must be capable of sending arbitrarily crafted
   RTP and RTCP packets to the RTP implementation. The instrument should
   also be capable of receiving packets sent by the RTP implementation,
   parsing them, and computing metrics based on those packets.

   It is furthermore assumed that a number of basic controls over the
   RTP implementation exist. These controls are:

        o the ability to force the implementation to send or not send
          RTP packets at any desired point in time;

        o the ability to force the application to terminate its involve-
          ment in the RTP session, and for this termination to be known
          immediately to the test instrument;

        o the ability to set the session bandwidth and RTCP sender and
          receiver fractions;

   The second of these is required only for the test of BYE reconsidera-
   tion, and is the only aspect of these tests not easily implementable
   by pure automation. It will generally require manual intervention to
   terminate the session from the RTP implementation and to convey this
   to the test instrument through some non-RTP means.

3 Basic Behavior

   The first test is to verify basic correctness of the implementation
   of the RTCP transmission rules. This basic behavior consists of:

        o periodic transmission of RTCP packets;

        o randomization of the interval for RTCP packet transmission;

        o correct implementation of the randomization interval computa-
          tions, with unconditional reconsideration.

   These features are tested in the following manner. The RTP implemen-
   tation acts as a session receiver, and never sends any RTP packets.
   The implementation is configured with a large session bandwidth, say
   1 Mb/s. This will cause the implementation to use the minimal inter-
   val of 5s rather than the small interval based on the session
   bandwidth and membership size. The implementation will generate RTCP



J.Rosenberg,H.Schulzrinne                                     [Page 3]


Internet Draft                 RTCP Test                   June 25, 1999


   packets at this minimal interval, on average. The test instrument
   generates no packets, but receives the RTCP packets generated by the
   implementation. When an RTCP packet is received, the time is noted by
   the test instrument. The difference in time between each pair of sub-
   sequent packets (called the interval) is computed. These intervals
   are stored, so that statistics based on these intervals can be com-
   puted. It is recommended that this observation process operate for at
   least 20 minutes.

   An implementation passes this test if the intervals have the follow-
   ing properties:

        o the minimum interval is never less than 2 seconds or more than
          2.5 seconds;

        o the maximum interval is never more than 7 seconds or less than
          5.5 seconds;

        o the average interval is between 4.5 and 5.5 seconds;

        o the number of intervals between x and x+500ms is less than the
          number of intervals between x+500ms and x+1s, for any x.

   In particular, an implementation fails if the packets are sent with a
   constant interval.

4 Step join backoff

   The main purpose of the reconsideration algorithm is to avoid a flood
   of packets that might occur when a large number of users simultane-
   ously join an RTP session. Reconsideration therefore exhibits a back-
   off behavior in sending of RTCP packets when group sizes increase.
   This aspect of the algorithm can be tested in the following manner.

   The implementation begins operation. The test instrument waits for
   the arrival of the first RTCP packet. When it arrives, the test
   instrument notes the time and then immediately sends 100 RTCP RR
   packets to the implementation, each with a different SSRC and SDES
   CNAME. The test instrument should ensure that each RTCP packet is of
   the same length. The instrument should then wait until the next RTCP
   packet is received from the implementation, and the time of such
   reception is noted.

   Without reconsideration, the next RTCP packet will arrive within a
   short period of time. With reconsideration, transmission of this
   packet will be delayed. The earliest it can arrive depends on the
   RTCP session bandwidth, receiver fraction, and average RTCP packet
   size. The RTP implementation should be using the exponential



J.Rosenberg,H.Schulzrinne                                     [Page 4]


Internet Draft                 RTCP Test                   June 25, 1999


   averaging algorithm defined in the specification to compute the aver-
   age RTCP packet size. Since this is dominated by the received packets
   (the implementation has only sent one itself), the average will be
   roughly equal to the length of the RTCP packets sent by the test
   instrument. Therefore, the minimum amount of time between the first
   and second RTCP packets from the implementation is:



   T > 101 * S / ( B * Fr * (e-1.5) * 2 )




   Where S is the size of the RTCP packets sent by the test instrument,
   B is the RTCP bandwidth (normally five percent of the session
   bandwidth), Fr is the fraction of RTCP bandwidth allocated to
   receivers (normally 75 percent), and e is the natural exponent.
   Without reconsideration, this minimum interval Te would be much
   smaller:


   Te > MAX( [ S / ( B * Fr * (e-1.5) * 2 ) ] , [ 2.5 / (e-1.5) ] )



   B should be chosen sufficiently small so that T is around 60 seconds.
   Reasonable choices for these parameters are B = 950 bits per second,
   and S = 1024 bits. An implementation passes this test if the interval
   between packets is not less than T above, and not more than 3 times
   T.

   The test may be repeated for the case when the RTP implementation is
   a sender. This is accomplished by having the implementation send RTP
   packets at least once a second. In this case, the interval between
   the first and second RTCP packets should be no less than:


   T > S / ( B * Fs * (e-1.5) * 2 )



   Where Fs is the fraction of RTCP bandwidth allocated to senders, usu-
   ally 25%. Note that this value of T is significantly smaller than the
   interval for receivers.

5 Steady State Behavior




J.Rosenberg,H.Schulzrinne                                     [Page 5]


Internet Draft                 RTCP Test                   June 25, 1999


   In addition to the basic behavior in section 3, an implementation
   should correctly implement a number of other, slightly more advanced
   features:

        o scale the RTCP interval with the group size;

        o correctly divide bandwidth between senders and receivers;

        o correctly compute the RTCP interval when the user is a sender

   The following tests are meant to test these features.

5.1 Scaling the Interval

   The implementation begins operation as a receiver. The test instru-
   ment waits for the first RTCP packet from the implementation. When it
   arrives, the test instrument notes the time, and immediately sends 50
   RTCP RR packets and 50 RTCP SR packets to the implementation, each
   with a different SSRC and SDES CNAME. The test instrument then sends
   50 RTP packets, using the 50 SSRC from the RTCP SR packets. The test
   instrument should ensure that each RTCP packet is of the same length.
   The instrument should then wait until the next RTCP packet is
   received from the implementation, and the time of such reception is
   noted. The difference between the reception of the RTCP packet and
   the reception of the previous is computed and stored. In addition,
   after every RTCP packet reception, the 100 RTCP and 50 RTP packets
   are retransmitted by the test instrument. This ensures that the
   sender and member status of the 100 users does not time out. The test
   instrument should collect the interval measurements figures for at
   least 100 RTCP packets.

   With 50 senders, the implementation should not try to divide the RTCP
   bandwidth between senders and receivers, but rather group all users
   together and divide the RTCP bandwidth equally. The test is deemed
   successful if the average RTCP interval is within 5% of:


   T = 101* S/B



   Where S is the size of the RTCP packets sent by the test instrument,
   and B is the RTCP bandwidth. B should be chosen sufficiently small so
   that the value of T is on the order of tens of seconds or more. Rea-
   sonable values are S=1024 bits and B=3.4 kb/s.

5.2 Compensating for Senders




J.Rosenberg,H.Schulzrinne                                     [Page 6]


Internet Draft                 RTCP Test                   June 25, 1999


   The test of section 5.1 is repeated. However, the test instrument
   sends 10 RTP packets instead of 50, and 10 RTCP SR and 90 RTCP RR
   instead of 50 of each. In addition, the implementation is made to
   send at least one RTP packet between transmission of every one of its
   own RTCP packets.

   In this case, the average RTCP interval should be within 5% of:


   T = 11 * S / (B * Fs)



   Where S is the size of the RTCP packets sent by the test instrument,
   B is the RTCP bandwidth, and Fs is the fraction of RTCP banwidth
   allocated for senders (normally 25%). The values for B and S should
   be chosen small enough so that T is on the order of tens of seconds.
   Reasonable choices are S=1024 bits and B=1.5 kb/s.

6 Reverse Reconsideration

   The reverse reconsideration algorithm is effectively the opposite of
   the normal reconsideration algorithm. It causes the RTCP interval to
   be reduced more rapidly in response to decreases in the group member-
   ship. This is advantageous in that it keeps the RTCP information as
   fresh as possible, and helps avoids some premature timeout problems.

   These tests verify the basic correctness of reverse reconsideration.

6.1 Test I

   In this test, the implementation joins the session as a receiver. As
   soon as it sends its first RTCP packet, the test instrument sends 100
   RTCP RR packets, each of the same length S, and a different SDES
   CNAME and SSRC in each. It then waits for the implementation to send
   another RTCP packet. Once it does, the test instrument sends 100 BYE
   packets, each one containing a different SSRC, but matching an SSRC
   from one of the initial RTCP packets. Each BYE should also be the
   same size as the RTCP packets sent by the test instrument. This is
   easily accomplished by using a BYE reason to pad out the length. The
   time of the next RTCP packet from the implementation is then noted.
   The delay T between this (the third RTCP packet) and the previous
   should be no more than:


   T < 3 * S / (B * Fr * (e-1.5) * 2)





J.Rosenberg,H.Schulzrinne                                     [Page 7]


Internet Draft                 RTCP Test                   June 25, 1999


   Where S is the size of the RTCP and BYE packets sent by the test
   instrument, B is the RTCP bandwidth, Fr is the fraction of the RTCP
   bandwidth allocated to receivers, and e is the natural exponent. B
   should be chosen such that T is on the order of tens of seconds. A
   reasonable choice is S=1024 bits and B=168 bits per second.

   This test demonstrates basic correctness of implementation. An imple-
   mentation without reverse reconsideration will not send its next RTCP
   packet for nearly 100 times as long as the above amount.

6.2 Test II

   In this test, the implementation joins the session as a receiver. As
   soon as it sends its first RTCP packet, the test instrument sends 100
   RTCP RR packets, each of the same length S, followed by 100 BYE pack-
   ets, also of length S. Each RTCP packet carries a different SDES
   CNAME and SSRC, and is matched with precisely one BYE packet with the
   same SSRC. This will cause the implementation to see a rapid increase
   and then rapid drop in group membership.

   The test is deemed succesful if the next RTCP packet shows up T
   seconds after the first, and T is within:


   2.5 / (e-1.5) < T < 7.5 / (e-1.5)



   This tests correctness of the maintenance of the pmembers variable.
   An incorrect implementation might try to execute reverse reconsidera-
   tion every time a BYE is received, as opposed to only when the group
   membership drops below pmembers. If an implementation did this, it
   would end up sending an RTCP packet immediately after receiving the
   stream of BYE's. For this test to work, B must be chosen to be a
   large value, around 1Mb/s.

7 BYE Reconsideration

   The BYE reconsideration algorithm works in much the same fashion as
   regular reconsideration, except applied to BYE packets. When a user
   leaves the group, instead of sending a BYE immediately, it may delay
   transmission of its BYE packet if others are sending BYE's.

   The test for correctness of this algorithm is as follows. The RTP
   implementation joins the group as a receiver. The test instrument
   waits for the first RTCP packet. When the test instrument receives
   this packet, the test instrument immediately sends 100 RTCP RR pack-
   ets, each of the same length S, and each containing a different SSRC



J.Rosenberg,H.Schulzrinne                                     [Page 8]


Internet Draft                 RTCP Test                   June 25, 1999


   and SDES CNAME. Once the test instrument receives the next RTCP
   packet from the implementation, the RTP implementation is made to
   leave the RTP session, and this information is conveyed to the test
   instrument through some non-RTP means. The test instrument then sends
   100 BYE packets, each with a different SSRC, and each matching an
   SSRC from a previously transmitted RTCP packet. Each of these BYE
   packets is also of size S. Immediately following the BYE packets, the
   test instrument sends 100 RTCP RR packets, using the same SSRC/CNAMEs
   as the original 100 RTCP packets.

   The test is deemed successful if the implementation either never
   sends a BYE, or if it does, the BYE is not received by the test
   instrument earlier than T seconds after the implementation left the
   session, where T is:


   T = 100 * S / ( 2 * (e-1.5) * B * Fr)



   S is the size of the RTCP and BYE packets, e is the natural exponent,
   B is the RTCP bandwidth, and Fr is the RTCP bandwidth fraction for
   receivers. S and B should be chosen so that T is on the order of 50
   seconds. A reasonable choice is S=1024 bits and B=1.1 kb/s.

   The transmission of the RTCP packets is meant to verify that the
   implementation is ignoring non-BYE RTCP packets once it decides to
   leave the group.

8 Timing out members

   Active RTP participants are supposed to send periodic RTCP packets.
   When a participant leaves the session, they may send a BYE, however
   this is not required. Furthermore, BYE reconsideration may cause a
   BYE to never be sent. As a result, participants must time out other
   participants who have not sent an RTCP packet in a long time. Accord-
   ing to the specification, participants who have not sent an RTCP
   packet in the last 5 intervals are timed out. This test verifies that
   these timeouts are being performed correctly.

   The RTP implementation joins a session as a receiver. The test
   instrument waits for the first RTCP packet from the implementation.
   Once it arrives, the test instrument sends 100 RTCP RR packets, each
   with a different SDES and SSRC, and notes the time. This will cause
   the implementation to believe that there are now 101 group partici-
   pants, causing it to increase its RTCP interval. The test instrument
   continues to monitor the RTCP packets from the implementation. As
   each RTCP packet is received, the time of its reception is noted, and



J.Rosenberg,H.Schulzrinne                                     [Page 9]


Internet Draft                 RTCP Test                   June 25, 1999


   the interval between RTCP packets is stored. The 100 participants
   spoofed by the test instrument should eventually time out at the RTP
   implementation. This should cause the RTCP interval to be reduced to
   its minimum.

   The test is deemed successful if the interval between RTCP packets
   after the first is no less than:


   Ti > 101 * S / ( 2 * (e-1.5) * B * Fr)



   and this minimum interval is sustained no later than Td seconds after
   the transmission of the 100 RR's, where Td is:


   Td = 7 * 101 * S / ( B * Fr )



   and the interval between RTCP packets after this point is no less
   than:


   Tf > 2.5 / (e-1.5)



   For this test to work, B and S must be chosen so Ti is on the order
   of minutes. Recommended values are S = 1024 bits and B = 1.9 kbps.

9 SSRC Randomization

   According to the RTP specification, SSRC's are supposed to be chosen
   randomly and uniformly over a 32 bit space. This randomization is
   beneficial for several reasons:

        o It reduces the probability of collisions in large groups.

        o It simplifies the process of group sampling [4], which depends
          on the uniform distribution of SSRC's across the 32 bit space.

   Unfortunately, verifying that a random number has 32 bits of uniform
   randomness requires a large number of samples. The procedure below
   gives only a rough validation to the randomness used for generating
   the SSRC.




J.Rosenberg,H.Schulzrinne                                    [Page 10]


Internet Draft                 RTCP Test                   June 25, 1999


   The test runs as follows. The RTP implementation joins the group as a
   receiver. The test instrument waits for the first RTCP packet. It
   notes the SSRC in this RTCP packet. The test is repeated 2500 times,
   resulting in a collection of 2500 SSRC.

   The are then placed into 25 bins. An SSRC with value X is placed into
   bin FLOOR(X/(2**32 / 25)). The idea is to break the 32 bit space into
   25 regions, and compute the number of SSRC in each region. Ideally,
   there should be 40 SSRC in each bin. Of course, the actual number in
   each bin is a random variable whose expectation is 40. With 2500
   SSRC, the coefficient of variation of the number of SSRC in a bin is
   .1, which means the number should be between 36 and 44. The test is
   thus deemed successful if each bin has no less than 30 and no more
   than 50 SSRC.

   Running this test may require substantial amounts of time, particu-
   larly if there is no automated way to have the implementation join
   the session. In such a case, the test can be run fewer times. With 26
   tests, half of the SSRC should be less than 2**31, and the other half
   higher. The cofficient of variation in this case is .2, so the test
   is successful if there are more than 8 SSRC less than 2**31, and less
   than 26.

   In general, if the SSRC is collected N times, and there are B bins,
   the coefficient of variation of the number of SSRC in each bin is
   given by:



   coeff = SQRT( (B-1)/N )




10 SSRC Collisions

   RTP has a provision for SSRC collisions. These collisions occur when
   two different session participants choose the same SSRC. In this
   case, both participants are supposed to send a BYE, leave the ses-
   sion, and rejoin with a different SSRC, but the same CNAME. The pur-
   pose of this test is to verify that this function is present in the
   implementation.

   The test is straightforward. The RTP implementation is made to join
   the multicast group as a receiver. The test instrument waits for the
   first RTCP packet. Once it arrives, the test instrument notes the
   CNAME and SSRC from the RTCP packet. The test instrument then gen-
   erates an RTCP receiver report. This receiver report contains an SDES



J.Rosenberg,H.Schulzrinne                                    [Page 11]


Internet Draft                 RTCP Test                   June 25, 1999


   chunk with an SSRC matching that of the RTP implementation, but with
   a different CNAME. At this point, the implementation should send a
   BYE RTCP packet (containing an SDES chunk with the old SSRC and
   CNAME), and then rejoin, causing it to send a receiver report con-
   taining an SDES chunk, but with a new SSRC and the same CNAME.

   The test is deemed succesful if the RTP implementation sends the RTCP
   BYE and RTCP RR as described above within one minute of receiving the
   colliding RR from the test instrument.

11 Rapid SR's

   In the draft version of RTP, the minimum interval for RTCP packets
   can be reduced for large session bandwdiths. The reduction applies to
   senders only. The recommended algorithm for computing this minimum
   interval is 360 divided by the RTP session bandwidth, in kbps. For
   bandwidths larger than 72 kbps, this interval is less than 5 seconds.

   This test verifies the ability of an implementation to use a lower
   RTCP minimum interval when it is a sender in a high bandwidth ses-
   sion. The test can only be run on implementations that support this
   reduction, since it is optional.

   The RTP implementation is configured to join the session as a sender.
   The session is configured to use 360 kbps. If the recommended algo-
   rithm for computing the reduced minimum interval is used, the result
   is a 1 second interval. If the RTP implementation uses a different
   algorithm, the session bandwidth should be set in such a way to cause
   the reduced minimum interval to be 1 second.

   Once joining the session, the RTP implementation should begin to send
   both RTP and RTCP packets. The interval between RTCP packets is meas-
   ured and stored until 100 intervals have been collected.

   The test is deemed successful if the smallest interval is no less
   than 1/2 a second, and the largest interval is no more than 1.5
   seconds. The average should be close to 1 second.

12 Changes since -00

   The following changes have been made since version -00 of this
   specification:

        o The introduction was rewritten to reflect the new broader
          scope of the tests. Previously, the tests verified only the
          features new in draft standard. Now, the tests include some
          features present in the proposed standard.




J.Rosenberg,H.Schulzrinne                                    [Page 12]


Internet Draft                 RTCP Test                   June 25, 1999


        o A test for verifying uniform distribution of SSRC was added.

        o A test for verifying reduction of the minimum interval for
          high bandwidth sessions was added.

        o A test for verifying SSRC collision detection was added.

        o A test for verifying timeouts was added.

13 Author's Addresses


   Jonathan Rosenberg
   Lucent Technologies, Bell Laboratories
   101 Crawfords Corner Rd.
   Holmdel, NJ 07733
   Rm. 4C-526
   email: jdrosen@bell-labs.com

   Henning Schulzrinne
   Columbia University
   M/S 0401
   1214 Amsterdam Ave.
   New York, NY 10027-7003
   email: schulzrinne@cs.columbia.edu




14 Bibliography

   [1] H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, "RTP: a
   transport protocol for real-time applications," Internet Draft,
   Internet Engineering Task Force, Mar. 1999.  Work in progress.

   [2] J. Rosenberg and H. Schulzrinne, "Timer reconsideration for
   enhanced RTP scalability," in IEEE Infocom , (San Francisco, Califor-
   nia), March/April 1998.

   [3] J. Rosenberg and H. Schulzrinne, "New results in RTP scalabil-
   ity," Internet Draft, Internet Engineering Task Force, Dec. 1997.
   Work in progress.

   [4] J. Rosenberg and H. Schulzrinne, "Sampling of the group member-
   ship in RTP," Internet Draft, Internet Engineering Task Force, Apr.
   1999.  Work in progress.





J.Rosenberg,H.Schulzrinne                                    [Page 13]


Internet Draft                 RTCP Test                   June 25, 1999


   Full Copyright Statement

   Copyright (c) The Internet Society (1999). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this docu-
   ment itself may not be modified in any way, such as by removing the
   copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of develop-
   ing Internet standards in which case the procedures for copyrights
   defined in the Internet Standards process must be followed, or as
   required to translate it into languages other than English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MER-
   CHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

























J.Rosenberg,H.Schulzrinne                                    [Page 14]