RE: New version of the early media draft
2003-04-01 01:54:48 GMT
> -----Original Message-----
> From: Bob Penfield [mailto:bpenfield <at> acmepacket.com]
> Sent: Saturday, March 29, 2003 07:43
> To: sipping <at> ietf.org
> Subject: Re: [Sipping] New version of the early media draft
>
> BTW, I do support your position that no additional indication
> of the presence or absence of early media is required in SIP
> signaling. If UAC receives media, it should play it.
This is actually the biggest problem I personnally have with the assumptions on early
media.
I do not think that this rule of "play media when you receive it" is implementable
generally, but only in a few very selected cases.
There are a number of scenarios that I think are problematic:
1 - 180 with SDP
If a 180 is sent with an SDP (for the purpose of telling the far end what
codec is picked), the called UA the shouldn't be sending silence in
RTP because, according to the current rules, the calling UA would stop the
locally generated ringing to play the silence packet. (Doing some heavy duty
DSP parsing to detect if the media is silence or not seems hardly efficient,
nor reliable).
A side effect of this is that if there is a NAT/Firewall involved, it is quite
possible that the binding will expire and the address in the SDP will be invalid
or the media will be blocked upon answer.
If an indication was present to indicate if the in-band media was meant to be
replacing the locally generated tone, we wouldn't have this problem (i.e., one
could send packets in-band to keep the binding alive).
2 - Sequential calling
In a sequential calling scenario such as call call forwarding no answer (section 2.8
of the SIP services examples Internet Draft). Suppose the following:
Alice Proxy User B1 User B2
| | | |
| INVITE F1 | | |
|--------------->| INVITE F2 | |
|(100 Trying) F3 |------------->| |
|<---------------|183 ProgressF4| | SDP is included with 183
| 183 Progress F5|<-------------| |
|<---------------| | |
| Both way RTP Established | |
In-band |<=============================>| |
ringing | Request Timeout |
| | | |
| | CANCEL F6 | |
| |------------->| |
| | 200 OK F7 | |
| |<-------------| |
| | 487 F8 | |
| |<-------------| |
| | ACK F9 | |
| |------------->| |
| | | INVITE F10 |
| |--------------------------------->|
| | | 180 Ringing F11 |
| 180 Ringing F12|<---------------------------------|
|<---------------| | |
The problem with this scenario is that presumably, upon receipt of 180,
the UA needs to figure out somehow that it should be playing the locally
generated alerting. This would imply that upon receipt of the 180, the calling
UA would start a timer and wait until it expires to play the locally generate
tone. Since ringing is composed of tone-silence-tone, the timer will have to be
relatively long. While the UA can detect that the 180 is a different dialog than
the 183, it can not know for sure that the first dialog had been cancelled
because it could be forking: it has to rely on the media.
While this is technically feasible, it imposes a big unecessary burden on
the client, especially if it is a thin client. On a "decomposed" architecture
(like a stimulus MGCP phone), it makes for pretty nasty signalling, if possible
at all.
PS: I'm not saying that the in-band media is necessarily useful in this scenario. I'm
just pointing out the difficulties of the "play media when received" mantra.
3 - Forking
As expected, this is the worst.
Alice Proxy User B1 User B2
| | | |
| INVITE F1 | | |
|--------------->| INVITE F2 | |
|(100 Trying) F3 |------------->| |
|<---------------|183 ProgressF4| | SDP is included with 183
| 183 Progress F5|<-------------| |
|<---------------| | |
| Both way RTP Established | |
In-band |<=============================>| |
ringing | | | |
| | | INVITE F10 |
| |--------------------------------->|
| | | 180 Ringing F11 |
Locally | 180 Ringing F12|<---------------------------------|
generated |<---------------| | 200 OK F13 |
ringing | |<---------------------------------|
There are of course multiple permutations, such as 2 183s, 2 180s, 1 183 followed
by a 180, or 1 180 followed by a 183. And then there might be more than 2 UAs being
forked-to, so the problem can be really bad.
There is no way to associate a specific RTP stream with a specific dialog. The current
draft hints that one UA could randomly play one stream and mute the others (which will be
very troublesome if the other UA doesn't support UPDATE). This is not satisfactory and
would result in garbage being played to the user. For this reason, I believe that the only
reasonable approach in this scenario is to let the 180 override the 183s (if there is
a 180) and ignore all media. This will of course result that there might be some level of
clipping on answer (I have yet to see a network where this is a problem). If there is no
180, one could play one of the random stream (although I don't think it is particulary
useful), or play some default "progress" tone that would indicate to the user that the
call is forked.
One of the reason I think the 180 indication is more useful than the 183-with-in-band-
media is that if the in-band from the 183 is saying "This number has been disconnected,
please hangup" and then a 200 OK comes back (for the 180) wich connects the call, the user
will be very disoriented (realistically, he will probably have hung-up anyways). The other
way around (playing the local ringback) will at least keep the user on-line in case somebody
does answer. The point is that since we can't associate a particular media stream with
the SIP signalling, we can't just "play the media" when there is multiple dialogs.
Many people seem to think that "this is forking, it is trouble, don't use it, bla bla bla".
Unfortunately, it is extremely useful. Also, it happens all the time today when parallel
calling is done (different names exists for it, including "multiple appearances", or
"parallel hunt groups"). If SIP can not properly ring multiple agents in a pool in parallel,
it won't be terribly useful.
The only alternative is to wait for the 200 OK to connect media. Despite the claims of
this introducing clipping on answer, I haven't seen this to be a problem on existing VoIP
systems (i.e., the time it takes the human to answer is longer than the interval during
which there could be clipping).
One added difficulty is that from the calling UA's perspective, we can't distinguish easily
between case 2 and 3.
---------
My conclusion is that when there are multiple dialogs, we can not honor media at the
calling UA and have to rely on the SIP provisional responses exclusively. This goes against
the "play media as soon as you receive it" principle.
Also, since parallel calling (i.e., forking) is extremely common in call centers and
within enterprises, it greatly limits the applicability of early media, or indeed ringing
2 phones in a private residence. My personal opinion is that it is really limited to TDM
gateway interworking, and only when there is no forking involved or multiple dialog
involved.
Again, I don't believe that the "in-band alerting" indication necessarily solves this (although
it does help in a few cases). I'm just pointing out that the play in-band RTP even if 180 is
received is not generally a good idea. The reason I am sending this email in the context
of this discussion on the in-band ringing indication is that this idea that playing in-band
media automatically helps keeps on re-surfacing.
François Audet
On Mon, 2003-03-31 at 13:05, Dean Willis wrote:
> network asserted From:?
>
> haha
>
> --
> Dean
> -----Original Message-----
> From: sipping-admin <at> ietf.org [mailto:sipping-admin <at> ietf.org]
> On Behalf Of Cullen Jennings
> Sent: Thursday, March 27, 2003 1:12 PM
> To: sipping <at> ietf.org
> Subject: Apology for RE: [Sipping] A WinXP patch
>
>
> I did not sent any patches - certainly not to XP
Cullen
> (the guy with the fluffy hair)
> -----Original Message-----
> From: sipping-admin <at> ietf.org
> [mailto:sipping-admin <at> ietf.org]On Behalf Of fluffy
> Sent: Wednesday, March 26, 2003 3:50 PM
> To: sipping <at> ietf.org
> Subject: [Sipping] A WinXP patch
>
>
> This is a WinXP patch
> I expect you would like it.
_______________________________________________
Sipping mailing list
RSS Feed