AIMCC Technote 9

DIM (Direct IM)


Q: What is DIM?
A: DIM is a session type of IAccImSession. It is similar to standard IM, with these key differences:


Q: How does one initiate a DIM session?
A:
Q: How does one handle a DIM session invitation?
A:
Q: How does one embed data in an IM?
A:
Q: How does one receive embedded data in an IM?
A:
Q: What attributes does a DIM img tag have in xhtml?
A:
Q: What is an embedId?
A: It uniquely identifies an embed within a particular IAccIm. For historical reasons, embedIds are one-based numbers (the first embed in an IAccIm has id "1", the next embed has id "2", etc.).

Q: How can I tell how many streams there are in an IAccIm?
A: Call the IAccIm's get_Property(AccImProp_StreamCount,...).

Q: How do I implement embed suppression?
A:
Q: How does one support the embedded image navigation feature that AIM 6 has?
A: This is not a feature of AIMCC. AIM 6 implemented a custom protocol on top of the DIM feature. If there is enough interest, we may be able to document the protocol.

Q: How can I tell when a DIM session ends, and how can I tell when a DIM session fails to start?
A: In both cases, the OnSecondarySessionStateChange event fires. Unlike the way most secondary sessions end, when a DIM session ends the state is AccSecondarySessionState_Online because it rolls over to AccImSessionType_Im. To distinguish between a DIM session that ended and a DIM session that failed to start, callers must maintain their own state variable. For example, one can observe when the session state changes to AccSecondarySessionState_Online while the session type is AccImSessionType_DirectIm, and set a flag.

rev. 2007/03/11