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)