Paul/Kaiduan,

It was pretty insightful. So, applying Paul's logic, is the following a
valid scenario?

A,B are video endpoints and in a call with 2-way audio video flowing.

Videocalls support the concept of presentation, wherein only one
participant is allowed to generate videocontent for all to view. Since
this kind of call can graduate to a conference also, we need token
control so that one participant can grab the floor from another. Anybody
can voluntarily release a floor, etc. Whoever has the token has the
right to generate videocontent)

Now,

(A grabs the token by the relevant procedure and all endpoints are aware
that A has the token.
Now A sends the offer to start generating videocontent)
A---------------->B
    (SENDONLY)
A<----------------B
    (RECVONLY)

(After a while, B grabs the token by the same procedure and A
relinquishes the token.
Now, since B wishes to start generating video, is this valid?)

A<----------------B
     (SENDONLY)
A----------------->B
     (RECVONLY)


Here, we have bypassed the "inactive" state that you guys discussed.
Here A knows that it no longer has the token and is OK with responding
with "recvonly". This is not a two-way hold.

I dont think anything is violated here. Only thing is that there is a
parallel protocol that conveys information to the endpoints in addition
to the offer/answer.

-Thanks
R.Kamath

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
kaiduan xie
Sent: Thursday, December 04, 2008 3:33 AM
To: Paul Kyzivat
Cc: sip-implementors@lists.cs.columbia.edu
Subject: Re: [Sip-implementors] two-way hold/resume

"Each time you are considering what to put into the SDP, ask yourself
"*why* am I making this choice of the direction?"

The possible answers are:
- this is what I want/need based on *my* local state
- this is not what I want, but it is the closest to
  what I want that is permitted in an answer given what
  I just received in the offer.
- this is what I think I ought to offer based on my
  *inference* about what the other guy wants.

If
you give the third answer, then you are asking for trouble. The fact is
that you cannot know what the other guy wants. Some day you will get it
wrong, and end up in a less desirable state that you would have if you
had not guessed. And when *both* sides start guessing about what the
other wants, you start to see "stuck on hold" scenarios.

There is no reason to *offer* less than what you want. The answer will
take care of what the other guy wants."

This is very insightful. Thanks a lot for the detailed explanation.

kaiduan


----- Original Message ----
From: Paul Kyzivat <[EMAIL PROTECTED]>
To: kaiduan xie <[EMAIL PROTECTED]>
Cc: sip-implementors@lists.cs.columbia.edu
Sent: Wednesday, December 3, 2008 3:31:45 PM
Subject: Re: [Sip-implementors] two-way hold/resume

inline.

kaiduan xie wrote:
> Hi, all,
> 
> Consider the following case, what are the right values in SDP in
INVITE/200?
> 
> A                          B
> |    INVITE/SDP1    |
> |-------------------------->|
> |    200/SDP2         |
> |<--------------------------|
> |    ACK                 |
> |-------------------------->|
> ........................ Call is up
> 
> A initiates hold
> 
> |  SDP3/sendonly    |
> |-------------------------->|
> |  SDP4/recvonly     |
> |<--------------------------|
> 
> B initiates hold
> |  SDP5/?               |
> |<--------------------------| |  SDP6/?               |
> |-------------------------->|
> 
> 
> A resumes
> |  SDP7/?               |
> |-------------------------->|
> |  SDP8/?               |
> |<--------------------------|
> 
> B resumes
> |  SDP9/?               |
> |<--------------------------|
> |  SDP10/?             |
> |-------------------------->|
> 
> Here, the direction attribute value is of interest. From
http://www.ietf.org/internet-drafts/draft-ietf-sipping-sip-offeranswer-0
9.txt, my understanding is:
> 
> SDP5: sendonly
> SDP6: inactive

Yes, that would be my recommendation if B would otherwise desire
sendonly (because it wants to play MoH).

> SDP7: sendrecv
> SDP8: sendonly

Yup.

> SDP9: sendrecv
> SDP10: sendrecv

Yup.

> Is my understanding correct? Can we do as below?
> 
> SDP5: inactive
> SDP6: inactive

Certainly you MAY. It is probably the best choice if B isn't interested
in sending anything while it has the call on hold.

> SDP7: recvonly

Does A not *want* to send? By offering recvonly, it is making an
assumption about B that it ought not make. Things might work out ok, but
this is asking for trouble.

> SDP8: sendonly

While B is permitted to do this, it isn't consistent with what it did in
SDP5. There it indicated it wasn't interested in sending anything. So in
this case, I would expect that it again wouldn't be interested in
sending anything, and so would respond with inactive.

> SDP9: sendrecv
> SDP10: sendrecv
> 
> Thanks for the input.

Each time you are considering what to put into the SDP, ask yourself
"*why* am I making this choice of the direction?"

The possible answers are:
- this is what I want/need based on *my* local state
- this is not what I want, but it is the closest to
  what I want that is permitted in an answer given what
  I just received in the offer.
- this is what I think I ought to offer based on my
  *inference* about what the other guy wants.

If you give the third answer, then you are asking for trouble. The fact
is that you cannot know what the other guy wants. Some day you will get
it wrong, and end up in a less desirable state that you would have if
you had not guessed. And when *both* sides start guessing about what the
other wants, you start to see "stuck on hold" scenarios.

There is no reason to *offer* less than what you want. The answer will
take care of what the other guy wants.

Does that make sense? That is what I have tried to make clear in the
offeranswer draft.

    Thanks,
    Paul



      __________________________________________________________________
Looking for the perfect gift? Give the gift of Flickr! 

http://www.flickr.com/gift/
_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to