NAME

     rtpDest - RTP Dest Object



SYNOPSIS

     rtpDest prefix ?options?



DESCRIPTION

     The rtpDest command creates a new RTP dest object,  used  to
     receive  data  using the Real-Time Transport Protocl.  For a
     detailed description of the protocol,  which  is  useful  in
     understanding  the  various configuration slots and how they
     affect the behavior of the  RTP  objects,  see  [Schulzrinne
     95].

     The name of the new object (which is created by appending  a
     unique suffix to prefix) is returned.  This name is also the
     name of a Tcl command that can be used  with  the  following
     options.


OPTIONS

  object destroy
     Destroys the packet dest named object.

  object members
     Returns a list containing the SDES CNAMEs of all other users
     who  have  sent  a valid control or data packet to this ses-
     sion.

  object configure ?-options?
     Sets configuration parameters  for  object.   Valid  options
     are:

          -outCmd
               Where to send data as it arrives.  This should  be
               a string conforming to the usual CMT semantics for
               passing data between objects.  That is, it  should
               be either the name of a Tcl procedure to be called
               every time data is available, or a string  of  the
               form  @object.accept  where  object  is  some  CMT
               object that will accept the data.

          -address
               The IP address being listened to.  Only  multicast
               addresses  are  currently supported, and they must
               be written in dot notation.

          -port
               The port number on which data packets are sent and
               received.   It  should  be an even number; control
               packets are implicity sent  and  received  on  the
               next port number.

          -cname
               A string to be used as the CNAME in SDES  packets.
               Default  is  username@hostname.   Can  only be set
               after address and port are set.

          -name
               A string to be used as the NAME in  SDES  packets.
               Default  is  taken  from  user's finger info.  Can
               only be set after address and port are set.

          -pg
               Specifies the priority group this object  is  part
               of.   This  is usually one of tk, audio, or video.
               By default, an object is part of the  tk  priority
               group.  Can only be set after address and port are
               set.

          -ttl
               Multicast Time-to-Live  (TTL)  in  every  outgoing
               control  packet.   Default  is 2.  Can only be set
               after address and port are set.




OUTPUT

     An rtpDest object can send received  packets  to  other  CMT
     objects  using  the  regular  CMT  buffer passing semantics.
     However, since a single rtpDest object can receive data from
     multiple  senders,  multiple  outCmd configuration slots are
     needed.  The syntax is similar to the usual  -outCmd  confi-
     guration syntax, with the addition of a a parenthesized SDES
     CNAME.  For example, if objName is an  rtpDest  object,  the
     following    command    will    cause   all   packets   from
     user@host.domain.edu to be  sent  to  the  CMT  out  command
     @obj2.accpet.

     objName configure -outCmd(user@host.domain.edu) @obj2.accept



CM BINDINGS

     An rtpDest object provides several events that can be  bound
     via  cmbind(l).   In the callbacks for these events, several
     escape sequences are available:

          %c
               SDES CNAME of the user generating the event.

          %n
               SDES NAME of the user generating the event, or the
               CNAME if no NAME has been seen.

          %e
               Encoding of packets  (the  PT  field  of  the  RTP
               header)  send  by  this  user.   Only relevant for
               <NEW_SENDER> and <ENCODING_CHANGED>.


     The events are:

          <NEW_SENDER>
               Generated whenever some session participant  sends
               their  first  data  packet  to  the session.  This
               could be a user just joining the group, or  a  who
               has  already  sent  control packets (and thus gen-
               erated a <NEW_LISTENER> event) beginning  to  send
               data.

          <NEW_LISTENER>
               A new user has joined the session,  but  has  only
               sent control packets.

          <NAME_CHANGED>
               A user's SDES NAME has changed.

          <MEMBER_LEFT>
               The given user has quit the session.

          <ENCODING_CHANGED>
               The value of the PT field of the  RTP  header  has
               changed.




SEE ALSO

     rtpSrc(l), cmbind(l), buffer(l), cmt(l), cmwish(1), cmx(1)



REFERENCES

     [Schulzrinne 95] Henning Schulzrinne, et. al., "RTP: A Tran-
     sport   Protocol   for   Real-Time  Applications,"  Internet
     Engineering Task Force Internet-Draft, March 1995



AUTHORS

     Andrew Swan (aswan@CS.Berkeley.EDU)