On 6/23/15 10:23 PM, isshed wrote:
Hi Paul,

Below is the updated scenario. sorry for confusion by making step2 as
recvonly. now it is fine. The problem here is that after step 9 call
becomes audio only. Video disappears.

UAC1--------------------------------------------------------------------UAC2

1)---------------------INVITE (a=sendrecv)------------------------->
2)<---------------------200-OK(a=sendrecv)-------------------------
3)-------------------------------ACK-------------------------------------->

4)<---------------------INVITE
(a=sendonly)-------------------------(UAC wants to put call on hold
here)
5)---------------------200-OK(a=inactive)------------------------->
6)<---------------------------ACK -----------------------------------------

OK. The above looks *reasonably* normal. It is a little odd for UAC1 to answer inactive in (5). (Why wouldn't it want to receive if it was willing to sendrecv? Saying "I won't listen to you if you won't listen to me" is a little picky. How does it know there isn't something worthwhile to listen to? I guess it might make sense if it is assuming that this will be music-or-advertisements-on-hold, but there is no way for it to know that for certain.)

7)<---------------------INVITE
(a=sendonly)-------------------------(UAC2 wants to resume the call
here)

You say this is for resuming the call, but you show sendonly. Is that a mistake?

8)---------------------200-OK(a=recvonly)------------------------->
9)<---------------------------ACK -----------------------------------------

The call is established in step 3. It's an audio and video call.
In step 4 UAC2 puts call on hold by sending (a=sendonly) for both
audio and video media lines respectively.
In step 5 UAC1 responds with a=inactive for both audio and video lines
and along with that it makes video port as 0.

In addition to comment above, it is a little hard to understand *why* it should drop the video at this point. I suppose maybe it is trying to save the bandwidth for what it supposes is worthless media? But again, this is a leap of faith, since there is nothing in the signaling that says "this is MoH". There could be some other reason, where the content is real but oneway. (E.g. UAC2 had someone enter the room who should not observe the media from UAC1.)

While resuming call in step 7

Does UAC2 send video line with valid port or 0 port??? for audio mline
it is sending validn port with a=sendrecv.

(Assuming the sendonly in (7) was a mistake and you intended it to be sendrecv.) Certainly UAC2 *may* include a valid video port. If it is still wants, and it prepared to, send/receive video then I think it should. My previous comments to you still apply.

What is happening is UAC2 is sending mline for video as last
used(while holding) with valid port and a=sendonly??

I don't understand what that sentence is trying to say.

Of course you must continue to have the video m-line in some form, so the question is whether the port is zero or not, and whether sendrecv or something else. In an offer all those choices are open to the offerer and so are implementation choice. But some choices are more likely to lead to desired results than others.

The general approach that I advocate is:

When sending an *offer*, offer what *you* want, without regard to what you might *think* the answerer will want. In subsequent offers this must be tempered slightly in that you must retain all the m-lines, and you should generally (if you can) include at least one codec in common with what was agreed in the prior o/a for continuity.

When sending an *answer*, same guidelines as for offers, except that you are more constrained in what "direction" you can put - e.g. you can only answer recvonly or inactive if the offer had sendonly.

Reducing what you offer because you think (based on prior O/A) doesn't want something is generally a pathway to a suboptimal experience.

        Thanks,
        Paul

Does RFC says anything or is it implementation dependent behavior??


Thanks,

On Wed, Jun 24, 2015 at 12:04 AM, Paul Kyzivat <pkyzi...@alum.mit.edu> wrote:
I saw this after replying to the prior message. But I don't see anything
here that alters my reply.

         Thanks,
         Paul


On 6/23/15 9:16 AM, isshed wrote:

Hi All,

Below is the scenario..


UAC1--------------------------------------------------------------------UAC2

1)---------------------INVITE (a=sendrecv)------------------------->
2)<---------------------200-OK(a=recvonly)-------------------------

3)-------------------------------ACK-------------------------------------->

4)<---------------------INVITE (a=sendonly)-------------------------
5)---------------------200-OK(a=inactive)------------------------->
6)<---------------------------ACK
-----------------------------------------

7)<---------------------INVITE (??????)-------------------------
8)---------------------200-OK(????)------------------------->
9)<---------------------------ACK
-----------------------------------------

The call is established in step 3. It's an audio and video call.
In step 4 UAC2 puts call on hold by sending (a=sendonly) for both
audio and video media lines.
In step 5 UAC1 responds with a=inactive for both audio and video lines
and along with that it makes video port as 0.

While resuming in step 7

Does UAC2 send video line with valid port or 0 port??? for audio mline
it is sending validn port with a=sendrecv.


What is happening is UAC2 is sending mline for video as last
used(while holding) with valid port and a=sendonly??

Does RFC says anything or is it implementation dependent behavior??


Thanks,

On Tue, Jun 23, 2015 at 6:43 PM, isshed <isshed....@gmail.com> wrote:

Hi All,

Below is the scenario..


UAC1--------------------------------------------------------------------UAC2

1)---------------------INVITE (a=sendrecv)------------------------->
2)<---------------------200-OK(a=recvonly)-------------------------

3)-------------------------------ACK-------------------------------------->

4)<---------------------INVITE (a=sendonly)-------------------------
5)---------------------200-OK(a=inactive)------------------------->
6)<---------------------------ACK
-----------------------------------------

7)<---------------------INVITE (a=sendonly)-------------------------
8)---------------------200-OK(a=recvonly)------------------------->
9)<---------------------------ACK
-----------------------------------------

The call is established in step 3. It's an audio and video call.
In step 4 UAC2 puts call on hold by sending (a=sendonly) for both
audio and video media lines.
In step 5 UAC1 responds with a=inactive for both audio and video lines
and along with that it makes video port as 0.

While resuming in step 7

Does UAC2 send video line with valid port or 0 port??? for audio mline
it is sending validn port with a=sendrecv.


What is happening is UAC2 is sending mline for video as last
used(while holding) with valid port and a=sendonly??

Does RFC says anything or is it implementation dependent behavior??


Thanks,

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


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


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

Reply via email to