Subject: [SIP] call flow: Two different media types in parallel

From: [email-masked]
Date: Thu, 12 Oct 2000 09:40:03 +0200

Thanks to SIP-list readers for answering my questions, which I hope are not
too newbie-ish.

Here is a call flow question. I did not see this discussed in the FAQ or
call-flow examples,
but if I missed it, could you please point me to the right URL.

Say that two humans--the omnipresent Alice and Bob of cryptography
fame--have two SIP-enabled
UA's each. The UA's may be two apps running on one computer, or an app on a
computer and
on a handheld embedded-SIP device. The two devices communicate on different
media--say one
is audio-only and the other  video-only, or one is audio-video and the
other text-chat. Part of this
call flow is that each person uses two independent SIP
implementations--this is not one SIP UA controlling
two media types, but rather two SIP UA's controlling two media types.

Alice wants to push one and only one button and initiate simultaneous
parallel channels on two separate media.

What is the correct call flow? Does Alice's UA1 INVITE three other
UA's--Alice's UA2,
Bob's UA1, and Bob's UA2--to a four-way session (using SDP to
distinguish the two channels)? If this is a case where Alice's UA1 and
Alice's UA2 can
communicate easily using a non-SIP protocol--say they are two apps on the
same computer,
and inter-process communication is possible--should that be done first,
rather than attempting
a SIP 4-way session? If so, then should the same thing be done of the other
side--only one of
Bob's UA's is initially invited, and this UA then INVITEs or otherwise
brings Bob's other UA into the session?

Or should Alice's initial INVITE from her UA1 be forked to both of Bob's
UA's
(a forking proxy typically forks to find which one of several choices is
valid, but it could be asked to return
more than one) and if so, what about Alice's UA2?  In any of these cases,
does Alice's UA1 have to be
"told" about her UA2, or should a automated discovery process be built
using REGISTER?

I guess that both of each person's UAs would have the same SIP URL.

We could take the question further and ask what call-flow to use when one
of the
apps is not SIP-enabled, but rather uses one of the other protocols which
can be translated to/from SIP
with a gateway.

This is a rather wide question, and no doubt many implementations are
possible. I'd like to see what
has been written about these possibilities.

Joshua Fox

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip

---

From: Rohan Mahy <[email-masked]>
Date: Mon, 16 Oct 2000 10:02:07 -0700

Joshua,

If I understand you correctly, Alice and Bob each have only one physical
device, which happens to handle multiple media types.  If this is the case
then Alice will send a single INVITE to Bob with an SDP for both (two
distinct m= lines in the SDP).

c=1.1.1.1 etc.et
m=audio 16748 blah blah
m=video 16750 blah blah

If instead you want Alice's SIP phone to play audio, and her computer to
play video, you could do this with REFER and caller preferences:

Alice's phone sends an INVITE to bob and a REFER to her PC:

	INVITE sip:[email-masked] SIP/2.0
	Contact: <sip:[email-masked]>
	Accept-Contact: *;media="audio"
	...

	REFER [email-masked]
	Refer-To: <sip:[email-masked]?Accept-Contact=*;media="video">
	...

Her PC will generate an INVITE for bob as well.  Note that it is not
necessary for Alice to specify to which of Bob's devices to send audio and
video--caller preferences will take care of that.

	INVITE sip:[email-masked] SIP/2.0
	Contact: <sip:[email-masked]>
	Accept-Contact: *;media="video"
	...

hope this helps.  thanks,
-rohan