Voice and Video Protocol Support
Adium uses libpurple for its protocol support, so adding support for the various protocols will be done in conjunction with that development team.
At the protocol level, each IM Service supporting voice and video needs to provide mechanisms for exchanging the following information about each buddy:
- Buddy Presence - Which buddies are currently online?
- Capabilities - What AV Capabilities does that buddy have? (Camera, Microphone, etc)
- Status - Is that buddy currently able to start a Voice or Video session?
- IP Address - Communicate IP address information needed to establish a direct connection.
- Session Control - Communicate requests to Start, Stop, and Pause a session.
Each IM Service uses its own proprietary mechanism for accomplishing these tasks, but these capabilities are present in each service which supports Voice and Video chat.
Use of SIP
Many Voice and Video clients use the Session Initiation Protocol or SIP to accomplish the Session Control. Even though most IM clients use SIP, the other 4 elements above are typically proprietary, so development work has to be done for each particular IM system.
Based upon preliminary research, the following IM Systems use SIP in one form or another
- AIM
- iChat AV
- MSN
- Google Talk
- Gizmo Project
- VoIP
- Yahoo (Voice)
- Jabber
The following systems do not use SIP
- Yahoo (Video)
- IAX (Asterisk PBX)
- Ventrillo
- TeamSpeak
- Skype
- H.323

