Subject: [SIP] on sip IM implementation

From: "farhan" <[email-masked]>
Date: Thu, 24 Aug 2000 09:52:36 +0530

i dont really know if this is the form to discuss these things .. but
nevertheless, here i go.

this is about using SIP for Instant Messaging. I have been working on
creating small footprint telephony and instant messaging systems and over
the past few weeks i have got busy trying to implement this on sip. these
are the issues that we must face with IM on SIP.
I would also like to point out that as the initial implementations of SIP
are going to be predominantly on the Net, it will be a commercial nessecity
to implement IM along with voice. the fact is that people on the Net prefer
text to voice.

1. the MESSAGE request carries a callid. thus, if two people exchange
messages with the same callid, they should show up on the same windows for
both the users. This is pretty straightforward. What is not straightforward
is the question of treating an exchange of messages as a session. I think
that we should because the users will look at it that way and the software
authors (including I) will implement it that way. When my software gets a
message for a callid, i look up the current list of windows open and match
the message's callid with that of the window and if no window is found, then
the user agent will prompt the user to open a new window.

2. Okay, the MESSAGE is extremely efficient. I haven't seen anything
quicker, simpler and more sophisticated. It is ideal for a two party
conference. What happens when you want to join a third party to your two way
IM chat? Actually, MESSAGE can handle this, each person will have to send a
copy of MESSAGE to all the participants in the call (sharing the same
callid). Now how is a new participant invited to a group session of IM?
please note that we are already using words like session and invite. Thus,
we also need to be able to specify a group of users that the called party
will have to send MESSAGEs to.
This is my suggestion for an IM group chat INVITE:

INVITE sip:[email-masked]
To: sip:[email-masked]
From: sip:[email-masked]
Call-ID: [email-masked]
CSeq: 1 INVITE
Content-Type:application/sdp

v=0
o=caller 32434 23424 IN IP4 202.54.30.24
s=Chat session

m=application 5060 SIP/2.0 MESSAGE
a=participant:[email-masked]
a=participant:[email-masked]
a=participatn:[email-masked]

I have implemented this and also seen it work on my UA. Although my
implementation is still a few days old, I dont forsee any problems. It is
simple and easily understood.

I have also examine the RTP text payload RFC. It is not suitable as it is
has no error correction. we need something as efficient as the MESSAGE and
also as simple.

- farhan
CTO hotfoon.com

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

---

From: Jonathan Rosenberg <[email-masked]>
Date: Fri, 25 Aug 2000 00:59:30 -0400

> the user agent will prompt the user to open a new window.

The specification as written already defines the notion of a "session"
for IMs. Its optional; you can always treat each IM independently.

> a=participatn:[email-masked]

This seems similar to the fully distributed multiparty conferencing
concepts, but using SDP to convey that information instead of SIP. 

In general, I believe we will be able to reuse all of the conferencing
mechanisms being developed for SIP for IM as well.

> has no error correction. 

It provides redundancy which will perform just as well. I think there is
room for both as they serve different applications.

-Jonathan R.
-- 
Jonathan D. Rosenberg                       72 Eagle Rock Ave.
Chief Scientist                             First Floor
dynamicsoft                                 East Hanover, NJ 07936
[email-masked]                     FAX:   (973) 952-5050
http://www.cs.columbia.edu/~jdrosen         PHONE: (732) 741-7244
http://www.dynamicsoft.com