Commands in the Skype API

For this assignment, you'll only need a tiny subset of the Skype API commands. Still, the Skype API is very rich and contains commands for doing all of the following:

You're welcome to use any of the commands that are described in more detail in the Skype API documentation. A very small subset is listed below, some of which are not needed for your assignment. You'll probably have more fun and learn much more by reading the documentation.

Making Phone Calls

Syntax: CALL <target>[, <target>]*
Response: CALL <call_ID> <status>
Example: CALL seanmwhite

The CALL command is used to initiate a regular call or conference call. It returns the ID for the call and the status of the call. Once you have the ID, you can manage the call and execute commands such as adding a new person to the conference call, ending the call, checking status, or putting the call on hold.

Answer a call (and then hang up)

Syntax: SET CALL <id> STATUS INPROGRESS

If you receive a call from someone, the message will look like "CALL 112 STATUS RINGING". To answer the call, you set the call status to INPROGRESS. To end the call, set the STATUS to FINISHED. Notice that you'll even get the duration of the call in a message that looks like "CALL 117 DURATION 115" which could be interesting to visualize.

Send a Chat Message

Syntax: CHAT CREATE <target>[, <target>]*
Response: CHAT <chat_id> STATUS <value>
and
Syntax: CHATMESSAGE <chat_id> <message>
Response: CHATMESSAGE <id> STATUS SENDING
or
Syntax: MESSAGE <target> <text>
Response: CHATMESSAGE <id> STATUS SENDING

You can either create a chat and then send messages using the first two commands or just send a simple message using the third command (which is deprecated but still in use).

Get a list of friends or buddies

Syntax: SEARCH FRIENDS
Response: USERS [user[, user]*]

This command will return a list of all your friends or buddies. Once you have this list, you can use the get/set commands, call commands, and chat commands.

Minimize the Skype UI

SYNTAX: MINIMIZE

This just minimizes the UI. Useful if you want to hide the UI after making a call.

Get a user property

SYNTAX: GET <user> <property>

This lets you find out any property about a user such as ONLINESTATUS, HANDLE, CITY, MOOD_TEXT, and too many properties to name here. Note that you can also get property information about messages, calls, groups, chat,s and other objects. When a friend is online, you will also get an updated message like "USER laurenwilcox LASTONLINETIMESTAMP 1144094090".