From: Paul Kyzivat <[EMAIL PROTECTED]>
Looks pretty reasonable, though I think people will continue to use a
multiplicity of methods depending on their goals, constraints, and whims.
Oh, yes. I just want to document a method we think is useful.
This is all consistent with the offeranswer draft section on hold, that
recommends always offering everything you would like, constrained only
by the o/a rules, rather than trying to guess what you think the other
end wants. Here it is essential to follow that discipline wrt the codecs
in order that a common codec be discovered.
Since we all know that most implementation is done to examples rather
than specs, it might be helpful to put this into the example. :-)
Yes, I think I'll add an example to illustrate the pitfalls.
On another subject - payload type numbers - there is a *potential*
problem. The music server *can* choose its own payload numbers. This is
most likely in an offer (which in these flows it never does), but also
in an answer. It is preferred to use the same payload number in answer
as offer, but it isn't required. And the answer can also include codecs
not present in the offer, in which case the music server will be
choosing for sure.
In these cases, its possible that the payload number chosen by the music
server will conflict with one used previously by Bob for some other
codec. For instance, in my example above, the payload number chosen by
the music server for Y in F8 might turn out to be the same as the number
used by Bob for X in F3. If this happens, and if the UAs *care* about
this violation of the specs, then there is little that Bob can do about
it. IMO that restriction needs to be relaxed a bit.
I think that's covered in section 2.7. In summary, the executing
phone inserts into the offer generated by the remote phone additional
a=rtpmap lines to specify any payload numbers that have been
previously used in the dialog but aren't present in the remote phone's
offer. That prevents the MOH source from using them in a way
inconsistent with the original dialog. Viz.:
But strict compliance to [2] (section 8.3.2) requires that payload
type numbers used in the SDP answer may duplicate the payload type
numbers used in any offers and answers previously used in the dialog
only if the payload type numbers represent the same media format
(codec) as they did previously. However, the MOH source has no
knowledge of the payload type numbers previously used in the original
dialog, and it may accidentally specify a media format for a
previously used payload type number in its answer (or in a
subsequently generated INVITE or UPDATE). This would cause no
problem with media decoding, as it cannot send any format that was
not in the remote UA's offer, but it would violate [2].
We can prevent this problem by utilizing the requirement itself to
control the behavior of the MOH source: When the executing UA is
composing the INVITE to the MOH source, it compiles a list of all the
(dynamically-assigned) payload type numbers which have been used in
the original dialog but which are not mapped to a media format in the
offer SDP. (The executing UA must be maintaining a list of all
previously used payload type numbers anyway, in order to comply with
[2].) Then, for each of these payload type numbers, it inserts
session-level or media-level (as appropriate) a=rtpmap lines
specifying the payload type number and the media format that it has
been used for. Because of the reuse rule, the MOH source cannot
propose those payload type numbers for any other media format.
Someone named "Kyzivat" raised the problem:
5. Acknowledgments
[...]
Paul Kyzivat[10] pointed out the difficulties regarding re-use of
payload type numbers.
[...]
[10] Kyzivat, P., "Subject: Re: [Sipping] I-D
ACTION:draft-ietf-sipping-service-examples-11.txt", IETF
Sipping mailing list msg12181, October 2006.
Dale
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors