Subject: Editorial Comments On v13

From: Tom-PT Taylor <[email-masked]>
Date: Sat, 15 Jan 2000 00:57:25 -0500

6.2.4, table of descriptors: descriptions of Local and Remote are reversed.

7. Opening paragraph: commands affect terminations only.  Context properties
are modified through specification within actions -- something you may want
to mention at the end of the paragraph, giving a forward reference to sec.
8.

7. AuditValue command summary: "Audit" should be AuditValue".

7.1.7 second para, add the sentence "If a termination is added to an
existing context in sendOnly mode, it must be done in such a way that the
other terminations in the context are unaware of the addition."

7.1.7 third para: say "empty descriptor" rather than "null descriptor"

7.1.7 fourth para: first sentence typo "selected"  second sentence typo "in
excess"

7.1.8 first para, last sentence: suggest it read: "In the binary encoding,
the equivalent of individual SDP session descriptions is achieved by
enclosing the relevant Annex C tag-value pairs within the Annex A 'group of
properties' construct."

7.1.8: all following the sentence "The following rules of interpretation are
provided to facilitate that negotiation."  I apologize for reorganizing this
stuff so much, but now that we have agreed that for Reserve set to "false"
an empty descriptor has a different meaning from when Reserve is "true", the
exposition is better organized by giving the logic for those two cases
separately.  The two "phases" shown in the current document were just to
simplify exposition, but they have lost their value and should be forgotten.

Moreover, when Reserve is "true", then contrary to current text, it seems to
me that the MG should allocate the resources it needs to support the
descriptor that had some content before allocating the leftovers to fill up
the empty descriptor.  In other words, when the MGC provides details these
take priority over filling in the blanks.  Based on these considerations I
now suggest the following logic:
-----------

A new setting of Local / Remote Descriptor completely replaces the previous
setting of that descriptor in the MG.  Thus to retain information from the
previous setting the MGC must include that information in the new setting.
If the MGC wishes to delete some information from the existing descriptor,
it merely resends the descriptor (in a Modify command) with the unwanted
information stripped out.

The MG processes the Local and Remote descriptors differently depending on
whether Reserve is "true" or "false".  One common element to the two cases
is the treatment of an omitted descriptor (where the identifying descriptor
tag is absent from the command, as well as any content).  An omitted
descriptor shall be treated as if the MGC had provided a descriptor
containing the previous setting of that descriptor.  If there was no
previous setting, the MG must assume that the MGC does not wish to commit
resources to support a media flow in the corresponding direction.  In
addition, in both cases, if both Local and Remote are present but empty and
the medium of the stream cannot be inferred (e.g. from other terminations
supporting that streamId in the same context), the MG must return an error.

If Reserve is true, the alternatives presented to the MG represent the
policy of the MGC.  The MG returns those alternatives its current capability
will allow.  The MG reserves the resources required to support any of the
alternatives it returns in each descriptor that it can, according to the
following rules:
(a)     Multiple session descriptions describe mutually exclusive
alternatives.
(b)     If multiple encodings are specified within a single session
description, they may all be used as the content of the media flow requires,
but the first-listed encoding is the default for the session.
(c)     If the MG has insufficient resources to support all of the specified
alternatives, it must if at all possible support at least one alternative
each within Local and Remote.  Subject to this constraint, it should
allocate resources for alternatives according to the priorities set by the
MGC, as follows:
        (1) Session descriptions in each descriptor are listed in decreasing
order of priority.  The MG must allocate resources one session description
at a time, alternating between Local and Remote until it is no longer
possible to make progress in one of the descriptors, then continuing in the
other descriptor until no more allocations are possible.
        (2) If one of the descriptors supplied by the MGC is empty, then the
MG must apply the rule of alternation stated above as if the MGC had
specified that descriptor to be identical to the other one.  If both
descriptors are empty (but the medium to be encoded is known), the MG
supplies and reserves resources for all of the possibilities it can support
for both directions of flow.
(d) The MG returns descriptors showing the session descriptions for which it
has reserved resources.  An empty returned descriptor indicates either that
the MGC has not indicated a requirement to support that direction of flow
(omitted descriptor, no previous setting), or else that the resources
required to support what the MGC has requested were unavailable.  In Remote,
if the "send-to" address is unknown, the MG should provide a dummy address
(such as an all-zeroes IP address and port) as a placeholder until the MGC
provides the real address to be used.
(e) The MG must be prepared to receive media encoded according to any one of
the alternatives specified in Local as soon as it has responded to the
transaction containing the command.
If Reserve is false, or not present, then the MG must apply the following
rules to resolve Local and Remote to a single alternative each:
(a)  In contrast to the previous case, if the MGC supplies an empty
descriptor the MG assumes that no flow need be supported in the given
direction.  In this case or in the case of an omitted descriptor with no
previous specification, the MG chooses the first alternative in the other
descriptor which it can support.
(b)     If possible, the MG establishes a symmetric media flow (same coding
in both directions)
(c)     Where multiple possibilities for symmetric flows exist, the MG gives
priority according to the order of listing of alternatives in Local
(d)     If symmetric coding is not possible, the MG chooses the first
alternative in Local for which it is able to support at least one
alternative in Remote.  Where it can support more than one alternative in
Remote, it chooses the earliest-listed one.
(e)     If the MG is unable to support at least one Local and one Remote
alternative, it returns Error 510 Insufficient Resources.
------------------
7.1.9 default streamID: may want to say that default is 0 unless over-ridden
by the event definition.  Otherwise a lot of audio-related events will need
explicit streamIDs.
7.1.11: similar remark
7.1.14 Digit maps: my attempt to explain the purpose of "L" and "S" within
digit strings is clearly inconsistent with the example.  Do we keep the idea
of "L" as an indication that a long-duration digit is expected and forget
about "S", or use them as the example intended, to indicate inter-digit
timing for the next digit?
7.1.18 second para, first sentence is repeated -- delete the first instance
In the para introducing the figures, should indicate that they are
successive stages in the same example.
7.2.1, 7.2.2, 7.2.4: EventBuffer descriptor must appear as an input.
8. last para -- I still think local management should be notified if an
application-level timer expires.  At the least, it might maintain a counter
which could trigger alarms if it grows too quickly.

Tom Taylor
Advisor -- IPConnect Standards
E-mail: [email-masked] (internally, Tom-PT Taylor)
Phone and FAX: +1 613 736 0961