Skype 2.0 API reference
The Skype 2.0 API reference is now available. To view a HTML version of the document please click the link below. Or you can download a PDF version from the Skype Learning Zone.
]]>
About this guide
This section describes this guide to help you find
what you want quickly. If you are developing for the Skype API,
please read the complete document and understand its technical and
procedural information.
Purpose of this guide
This document describes the public Skype
application programming interface (API), version 2.0 for Windows, the
Skype APIs for Linux and Mac, and provides a reference guide for the
Skype developer community.
Who reads this guide?
Skype’s developer community who work with us to
enrich the Skype experience and extend the reach of free telephone
calls on the internet.
What is in this guide?
This document contains the following information:
More information
The Skype websites contain useful information for
developers:
-
The
Skype Developer Zone
is where to find all the Skype public API docs
(including earlier versions) and where you can download free
examples for Windows, Linux, and Mac platforms. -
Share ideas and
information on the
Skype Public API forum
on the Skype websites. -
See the cool things people are creating and
submit your project to the
Skype Extras Gallery
site.
Legal information
This document is the property of Skype
Technologies S.A. and its affiliated companies (Skype) and is
protected by copyright and other intellectual property rights laws in
Luxembourg and abroad. Skype makes no representation or warranty as
to the accuracy, completeness, condition, suitability, or performance
of the document or related documents or their content, and shall have
no liability whatsoever to any party resulting from the use of any of
such documents. By using this document and any related documents, the
recipient acknowledges Skype’s intellectual property rights thereto
and agrees to the terms above, and shall be liable to Skype for any
breach thereof. For usage restrictions please read the
end user license agreement
(EULA).
Text notation
This document uses
monospace
font to
represent code, file names, commands, objects and parameters. The
following text conventions apply for syntax:
-
CALL
-
uppercase text indicates a keyword, such as command, notification,
and object. -
property
– lowercase text indicates a category of a keyword -
<username>
– angle brackets indicate an identifier, such as username or call id -
[<target>]
– square brackets identify optional items -
*
-
asterisk indicates repetitive items -
|
-
vertical bar means "or" -
->
-
command issued by client (used in examples) -
<-
-
response or notification from Skype (used in examples) -
//
– comment line (used in examples)
Overview of the Skype API
The Skype API passes commands in simple text
messages between Skype and client applications and devices. Client
applications can be applications which extend Skype functionality and
devices can be hardware or software devices, such as USB phones. The
Skype API has two main components; the Skype phone API and the Skype
access API.
Skype protocol
The Skype protocol defines communications in
Skype. Skype releases new versions of the protocol periodically to
enable new communication features in Skype. Skype always uses the
correct protocol version to match the protocol version reported by a
connecting device or application. Skype never responds with a higher
protocol than the connecting device or application and the default
protocol it uses is version 1.
Skype phone API
The Skype phone API provides an interface to
connecting devices such as USB phones. The Skype client controls the
API and triggers events on the device (or application) driver. The
connecting device receives abstract events such as:
-
the green button
is pressed -
the handset is
off-hook -
the device rings
During installation, Skype detects compatible
audio drivers and installs them. If a new device and driver are added
after Skype installation, Skype detects the new driver but the user
must select the driver manually for it to become operational.
The Skype phone API uses the following commands to
communicate with Skype, substituting values and setting indicators as
appropriate:
-
NAME
deviceName
-
PROTOCOL
version
-
AUDIO_IN
deviceName
-
AUDIO_OUT
deviceName
-
HOOK ON|OFF
-
MUTE ON|OFF
-
BTN_PRESSED
(0-9,A-Z,#,*,+,UP,DOWN,YES,NO,SKYPE)
-
BTN_RELEASED ...
The Skype phone API uses the
MUTE ON|OFF
command to control the mute function on a device.
Skype access API
The Skype access API enables external applications
to control certain Skype functions, for example to place a call or to
get a Skype user profile. In the interests of privacy and security,
before an external application can take control, Skype pops up the
name of the application to the user and asks if it is OK to allow
access.
When a client application starts controlling
Skype, Skype switches audio devices to the devices reported by the
controlling client.
The Skype access API has the following
characteristics:
-
All actions
performed using the API are mirrored on the Skype client. -
Multiple
applications can use the Skype access API at the same time. -
All times and
dates in the API are in UTC (Coordinated Universal Time) -
Transmission over the API is in UTF-8
encoding.
Using the Skype API on
Windows
When developing applications to work with Skype,
follow these general guidelines:
-
Give intuitive
names to executable files (.exe files) because this name is
displayed to the user for confirmation. If the name is unclear, the
user might not allow the application to access Skype. -
Sign applications
with VeriSign’s CodeSigning certificate. -
The application must support the
NAME
command and publish its name.
Skype for Windows sends and receives API commands
using
WM_COPYDATA
messages. Use the
RegisterWindowMessage
method to register the following messages:
-
SkypeControlAPIDiscover
-
SkypeControlAPIAttach
To initiate communication, a client application
broadcasts the
SkypeControlAPIDiscover
message, including
its window name as a
wParam
parameter. Skype responds with a
SkypeControlAPIAttach
message to the specified window name
and indicates the connection status with one of the following values:
-
SKYPECONTROLAPI_ATTACH_SUCCESS
= 0
– The client is attached and the API window handle is
provided in
wParam
parameter. -
SKYPECONTROLAPI_ATTACH_PENDING_AUTHORIZATION
= 1
– Skype acknowledges the connection request and is waiting
for user confirmation. The client is not yet attached and must wait
for the
SKYPECONTROLAPI_ATTACH_SUCCESS
message. -
SKYPECONTROLAPI_ATTACH_REFUSED
= 2
– The user has explicitly denied access to client. -
SKYPECONTROLAPI_ATTACH_NOT_AVAILABLE = 3
– The API is not available at the moment, for example because no
user is currently logged in. The client must wait for a
SKYPECONTROLAPI_ATTACH_API_AVAILABLE
broadcast before
attempting to connect again.
When the API becomes available, Skype broadcasts
the
SKYPECONTROLAPI_ATTACH_API_AVAILABLE = 0x8001
message to
all application windows in the system. The data exchange uses
commands (or responses), provided as null-terminated UTF-8 strings.
The terminating 0 must be transferred as well. You cannot combine
several messages in one packet. There is no limit to the length of
the transferred string.
Note:
The result of processing
the message must be different from zero (0), otherwise Skype
considers that the connection broken.
If the API client spends more than 1 second
processing a message, the connection is disconnected. Use the
PING
command to test the connection status. To ease debugging during
development, in regedit enter the key
APITimeoutDisabled (DWORD
value, 0 = timeout enabled 1 = timeout disabled)
into the
HKCUSoftwareSkypePhoneUI
file in the registry to
override the 1 second timeout.
To check if Skype is installed, in regedit check
if the following key exists:
HKCUSoftwareSkypePhone,
SkypePath
. This key points to the location of the
skype.exe
file
. If this key does not exist, check if the
HKLMSoftwareSkypePhone, SkypePath
key exists. If the
HKCU
key does not exist but the
HKLM
key is present, Skype has
been installed from an administrator account has but not been used
from the current account.
Download free examples
Using the Skype API on Linux
The Skype API for Linux uses the Skype protocol,
version 1.1.0.3. The API uses the d-bus messaging framework and you
can download the d-bus libraries from
freedesktop.org.
If RPM Package Manager is installed on the Linux
device, the d-bus files are automatically configured. If RPM is not
installed, create a text file named
skype.conf
, and save it
to
/etc/dbus-1/system.d/skype.conf
.
The configuration file enables the Skype API to
use the d-bus framework and contains the following:
<!DOCTYPE busconfig PUBLIC "-//freedesktop//
DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy context="default">
<allow own="com.Skype.API"/>
<allow send_destination="com.Skype.API"/>
<allow receive_sender="com.Skype.API"/>
<allow send_path="/com/Skype"/>
</policy>
</busconfig>
To access the Skype API from a client application:
-
The application
passes its name to Skype:
<- NAME clientApplication
-
Skype pops up a
confirmation window to the user with the following
response:ClientApplication wants to talk to Skype. OK?
-
If OK, protocol messages are exchanged:
-
-> OK
<- PROTOCOL 1
-> PROTOCOL 1
The Skype protocol manages the subsequent session.
The d-bus service is
com.Skype.API
Two communication paths are used:
-
for
client-to-Skype commands the path is
/com/Skype
-
for Skype-to-client commands the path is
/com/Skype/Client
Two methods are used:
-
use the
Invoke
method with one string parameter for client-to-Skype commands -
use the
Notify
method for
Skype-to-client commands and responses
More information and examples
Read the
Skype API for Linux guide
and download free examples for C and for
Python.
Using the Skype API on Mac
The Skype API for Mac uses Skype version 1.3 and
has interfaces for Cocoa, Carbon, and AppleScript. The Cocoa and
Carbon interfaces are implemented in
Skype.framework
. Skype
recommends that you include the Skype framework in your application
as an embedded framework. To do so, copy it into the application
bundle and link it to the application.
Client applications send string commands to
control Skype. The format of these strings commands is described in
the
Skype API reference. If
you are using a Cocoa or Carbon interface, Skype will send
information back to your application by calling asynchronous delegate
functions/methods.
More information and examples:
Read the
Skype API for Mac
guide and download the Skype framework and free
examples.
Skype protocol
The Skype protocol is currently in its fifth
version. Starting with protocol 1 (the first Skype protocol) a new
version is created only when new commands become incompatible with
existing commands. The protocol number does not increase when new
commands are introduced but existing commands remain unchanged.
Protocol 5
Protocol 5 is the current version of the Skype
protocol and is used by the following versions of Skype:
-
2.0 – Windows
-
1.4.0.84 – Windows
-
1.3.0.33 – Windows and Mac
This protocol introduced multiperson chat
commands, one-to-one video calls, call forwarding, and contact
grouping.
Protocol 4
Protocol 4 is used by the following versions of
Skype:
-
1.2.0.11 – Windows
-
1.1.0.3 – Windows and Linux
This protocol introduced ISO code prefixes for
language and country.
Protocol 3
Protocol 3 is used by the following version of
Skype:
-
1.1.0.61 – Windows
This protocol introduced a compatibility layer for
previous versions of instant messaging.
Protocol 2
Protocol 2 is used by the following version of
Skype:
-
1.0.0.94
This protocol implemented the following changes:
-
Introduced the
SKYPEME
online status -
For calls on hold,
notifies clients with either
LOCALHOLD
or
REMOTEHOLD
.
Protocol 1 simply returned
ONHOLD
. -
Introduces the call status,
CANCELLED
.
Protocol 1 and 2 compatibility
If the requested protocol is smaller than 3, all
incoming commands are converted as follows:
-
SEARCH
MESSAGES
->
SEARCH CHATMESSAGES
-
SEARCH
MISSEDMESSAGES
->
SEARCH MISSEDCHATMESSAGES
-
GET MESSAGE
->
GET CHATMESSAGE
-
SET MESSAGE
->
SET
CHATMESSAGE
The
GET MESSAGE
properties are also
converted:
-
PARTNER_HANDLE
->
FROM_HANDLE
-
PARTNER_DISPNAME
->
FROM_DISPNAME
All API notification (including
GET/SET
MESSAGE
) replies are converted:
-
CHATMESSAGE *
FROM_HANDLE x
->
MESSAGE * PARTNER_HANDLE x
-
CHATMESSAGE *
FROM_DISPNAME x
->
MESSAGE * FROM_DISPNAME x
-
CHATMESSAGE * property x
->
MESSAGE * property x
If the protocol is less than 3,
SEARCH
MESSAGES
and
SEARCH MISSEDMESSAGES
commands return
string
MESSAGES
1, 2, 3.
Skype API reference
The Skype API reference is a guide for developers
working with the public Skype API. The reference contains the
following information:
Terminology
The Skype API reference uses the following terms:
-
The Skype access
API is also known as the Skype control API. -
The client
application issues a
command
to control Skype. -
In reply to some
commands, Skype returns a synchronous
response. Not
all commands require a response. Responses are documented under
their relevant commands. -
Skype
objects
are application, call, chat, chatmessage, profile, user, and
voicemail. -
A
notification
is an asynchronous message Skype sends to a client when a change
occurs, for example when a contact comes online or a new chatmessage
is received. -
Skype has
general parameters
to control the setup, current user and
connection information. -
Connectable users
are online
Skype users who are in the client contact list and also non-contacts
who are in active communication with the client.
Commands
This section provides a reference to the commands
used in Skype, and contains the following:
Commands
>
Reference
>
Contents
Command identifiers
A command identifier is useful to identify a
response to a specific command. A command identifier is supported by
most commands and is included in the response.
- Syntax
-
#<command_id> command
- Response
-
#<command_id> response|error
- Parameters
-
command_id
– client assigned alphanumeric identifier - Errors
- all possible errors for a given command
- Version
- Protocol 4
- Notes
-
A command identifier is not included in asynchronous notification
events initiated by a command. -
Asynchronous
commands usually return a synchronous response with the command id.
When the command is processed an asynchronous notification is also
sent -
A response may come not directly after the
command because there can other messages can be received between
command and response.
- Examples
-
Simple response to command
-> #AB GET USERSTATUS
<- #AB USERSTATUS ONLINE
-
Invalid command with reported error
-> #123 GET XZY
<- #123 ERROR 7 GET: invalid WHAT
-
Command response and notification
-> #cmd11 SET USERSTATUS ONLINE
// this is the response for the command
<- #cmd11 USERSTATUS ONLINE
// this is notification when the command is actually processed
<- USERSTATUS ONLINE
-
Command response and notification are
asynchronous
-> #50 CALL +18005551234
// note that events can arrive before response
<- CALL 651 STATUS ROUTING
<- #50 CALL 651 STATUS ROUTING
<- CALL 651 PSTN_STATUS 10503 Service Unavailable
// the following events do not have a command id
<- CALL 651 FAILUREREASON 1
<- CALL 651 STATUS FAILED
-
Notifications can appear between
command-response
-> #50 PING
// note that other events can arrive before command response
<- USER echo123 LASTONLINETIMESTAMP 1105764678
<- USER echo123 FULLNAME Echo Test Service
<- USER test LASTONLINETIMESTAMP 1105487965
// Now comes Skype response to command
<- #50 PONG
Commands
>
Reference
>
Contents
Making and managing voice calls
This section describes the commands for making and
managing voice calls. The commands are:
-
Use the
CALL
command
to make a call. -
Use the
GET
CALL
command
to retrieve call information. -
Use the
SET
CALL INPROGRESS
command
to take an incoming call. -
Use the
SET
CALL FINISHED
command
to end a call. -
Use the
SET
CALL ONHOLD
command
to place a call on hold. -
Use the
SET
CALL JOIN CONFERENCE
command
to join a call to a
conference. -
Use the
SET
CALL DTMF
command
to set DTMF for a call. -
Use the
SET
CALL SEEN
command
to mark a missed call as seen in order to
clear the missed events list. -
Use the
ALTER
CALL
command
to control call status.
Refer to
Making and managing video calls
for a description of video call
commands.
Refer to
Call failure reasons
for a list of all reasons for call failure.
Calls
>
Commands
>
Reference
>
Contents
CALL
- Syntax
-
CALL <target>[, <target>]*
- Response
-
CALL <call_ID> <status>
- Parameters
-
<target>
– targets to be called. In case of multiple
targets conference is created. Available target types:
-
USERNAME
– Skype username, e.g. "pamela",
"echo123" -
PSTN
– PSTN phone number, e.g. "+18005551234",
"003725555555" -
SPEED DIAL CODE
– 1 or 2 character speeddial code
- Errors
-
ERROR 34 invalid user handle
Target username/number
missing or contains invalid characters -
ERROR 39 user blocked
Trying to
call to a blocked user (unblock user in contactlist) -
ERROR 73 too many participants
Call
is initiated to more than 4 people -
ERROR 92 call error
Call is
initiated to a number that is neither PSTN number nor a speeddial
number
- Version
- Protocol 1
- Notes
-
The Skype call window is focused when a call is initiated through
the API. It is possible to make speed dial calls via the API. - Example
-> CALL echo123
<- CALL 1402 STATUS ROUTING
<- CALL 1402 SUBJECT
<- CALL 1402 STATUS ROUTING
<- CALL 1402 STATUS RINGING
<- CALL 1402 STATUS INPROGRESS
<- CALL 1402 DURATION 1
<- CALL 1402 STATUS FINISHED
Calls
>
Commands
>
Reference
>
Contents
GET CALL
- Syntax
-
GET CALL <id> property
- Response
-
CALL <id> property <value>
- Parameters and response values
-
refer to the
CALL
object - Errors
-
ERROR 7 GET: invalid WHAT
Object name missing or
misspelled -
ERROR 11 Invalid call id
ID
includes characters other than numeric characters -
ERROR 12 Unknown call
Call with
specified ID does not exist in current user’s call history -
ERROR 13 Invalid PROP
Property
name missing or misspelled -
ERROR 71 Invalid conference participant
NO
Conference participant’s number is not a number or is too
long
- Version
- Protocol 1
Calls
>
Commands
>
Reference
>
Contents
SET CALL INPROGRESS
- Syntax
-
SET CALL <id> STATUS INPROGRESS
- Parameters
-
<id>
– call ID (numeric) - Errors
-
ERROR 19 Invalid call id
ID includes other than numeric
characters -
ERROR 20 Unknown call
Call with
specified ID does not exist -
ERROR 23 Cannot resume this call at the
moment
Given call is not ringing and therefore can not be
answered.
Calls
>
Commands
>
Reference
>
Contents
SET CALL FINISHED
- Syntax
-
SET CALL <id> STATUS FINISHED
- Parameters
-
<id>
– call ID (numeric) - Errors
-
ERROR 19 Invalid call id
ID includes other than numeric
characters -
ERROR 20 Unknown call
Call with
specified ID does not exist in current user’s call history nor is
active. -
ERROR 24 Cannot hangup inactive
call
Given call is not in progress and therefore can not be
hung up.
Calls
>
Commands
>
Reference
>
Contents
SET CALL ONHOLD
- Syntax
-
SET CALL <id> STATUS value
- Parameters
-
<id>
– call ID (numeric), possible values: -
ONHOLD
-
hold call -
INPROGRESS
– resume call
- Errors
-
ERROR 19 Invalid call id
ID includes other than numeric
characters -
ERROR 20 Unknown call
The call ID
does not exist in current user’s call history nor is it active. -
ERROR 22 Cannot hold this call at the
moment
Given call is not in progress and therefore can not
be placed on hold. -
ERROR 23 Cannot resume this call at the
moment
Given call is not on hold and therefore can not be
resumed.
Calls
>
Commands
>
Reference
>
Contents
SET CALL JOIN
CONFERENCE
- Syntax
-
SET CALL <joining_id> JOIN_CONFERENCE <master_id>
- Response
-
CALL <id> CONF_ID <conference_id>
- Parameters
-
<joining_id>
– call ID (numeric) to join into; -
<master_id>
– master call ID,
where is another call’s ID.
- Errors
-
ERROR 19 Invalid call id
ID includes other than numeric
characters -
ERROR 20 Unknown call
Call with
specified ID does not exist in current user’s call history nor is
active. -
ERROR 72 Cannot create
conference
Creating conference, for example "
SET
CALL 65 JOIN_CONFERENCE 66
" fails for some reason.
- Note
-
It is possible to initate a conference with the
CALL target1,
target2
command
- Example
// make first call
-> CALL test
<- CALL 1540 STATUS ROUTING
<- CALL 1540 SUBJECT
<- CALL 1540 STATUS ROUTING
<- CALL 1540 STATUS RINGING
<- CALL 1540 STATUS INPROGRESS
// set first call on hold ...
-> SET CALL 1540 STATUS ONHOLD
<- CALL 1540 STATUS INPROGRESS
<- CALL 1540 STATUS ONHOLD
// .. and make another call
-> CALL echo123
<- CALL 1545 STATUS ROUTING
<- CALL 1545 SUBJECT
<- CALL 1545 STATUS ROUTING
<- CALL 1545 STATUS RINGING
<- CALL 1545 STATUS INPROGRESS
// join second call (1545) into conference with first call (1540)
-> SET CALL 1545 JOIN_CONFERENCE 1540
<- CALL 1545 CONF_ID 17930
<- CALL 1545 CONF_ID 17930
<- CALL 1540 CONF_ID 17930
// first call is automatically resumed and joined to conference
<- CALL 1540 STATUS INPROGRESS
// ...
<- CALL 1540 DURATION 53
<- CALL 1540 STATUS FINISHED
<- CALL 1545 DURATION 23
<- CALL 1545 STATUS FINISHED
Calls
>
Commands
>
Reference
>
Contents
SET CALL DTMF
- Syntax
-
SET CALL <id> DTMF <value>
- Parameters
-
<id>
– call ID (numeric) -
<value>
– sends value as DTMF.
Permitted symbols in
VALUE
are: {0..9,#,*}.
- Notes
-
DTMF support and quality for PSTN calls depends on terminating
partner. - Errors
-
ERROR 19 Invalid call id
ID includes other than numeric
characters -
ERROR 20 Unknown call
Call with
specified ID does not exist in current user’s call history nor is it
active. -
ERROR 21 Unknown/disallowed call
prop
DTMF property value is incorrect or misspelled
Calls
>
Commands
>
Reference
>
Contents
SET CALL SEEN
- Syntax
-
SET CALL <id> SEEN
- Response
-
CALL <id> SEEN TRUE
- Parameters
-
<id>
– call ID (numeric) - Errors
-
ERROR 19 Invalid call id
ID includes other than numeric
characters -
ERROR 20 Unknown call
Call with
specified ID does not exist in current user’s call history nor is
active.
- Example
-> SET CALL 15 SEEN
<- CALL 15 SEEN TRUE
Calls
>
Commands
>
Reference
>
Contents
ALTER CALL
The
ALTER CALL
command controls call
status.
- Syntax
ALTER CALL xxx
{ ANSWER
| HOLD
| RESUME
| HANGUP
| END { HANGUP | REDIRECT_TO_VOICEMAIL | FORWARD_CALL } // for an incoming ringing call
| DTMF <0|1|..|9|*|#>
| JOIN_CONFERENCE <callID> }
- Version
- Protocol 5
Call failure reasons
|
Code
|
Description
|
Possible reason
|
|
1
|
|
Miscellaneous error
|
|
2
|
|
User or phone number does not exist. Check
|
|
3
|
|
User is offline
|
|
4
|
|
No proxy found
|
|
5
|
|
Session terminated.
|
|
6
|
|
No common codec found.
|
|
7
|
|
Sound I/O error.
|
|
8
|
|
Problem with remote sound device.
|
|
9
|
|
Call blocked by recipient.
|
|
10
|
|
Recipient not a friend.
|
|
11
|
|
Current user not authorized by recipient.
|
|
12
|
|
Sound recording error.
|
Calls
>
Commands
>
Reference
>
Contents
Making and managing video calls
The commands for making and managing video calls
are:
-
Use the
GET VIDEO_IN
command to retrieve the name of the video device. -
Use the
GET CALL VIDEO_STATUS
command to check the status of a video
call. -
Use the
ALTER CALL VIDEO_SEND
command to start or stop sending video
during a call. -
Use the
ALTER CALL VIDEO_RECEIVE
-
Use the
GET CALL VIDEO_SEND_STATUS
command to check video send status
for a call. -
Use the
GET CALL VIDEO_RECEIVE_STATUS
command to check video receive
status for a call. -
Use the
IS_VIDEO_CAPABLE
command to check if a user is video-enabled. -
Use the
OPEN VIDEOTEST
command to open the Video Test window. -
Use the
OPEN OPTIONS VIDEO
command to open the Video Options window.
GET VIDEO_IN
The
GET VIDEO_IN
command retrieves the
name of the video device to use for a call. If no value is returned,
Skype sets the default value.
- Syntax
-> GET VIDEO_IN
- Response
-
<- VIDEO_IN <devicename>
- Parameters
-
<devicename>
– the name of the video device - Note
-
If no devicename is returned, Skype sets the default value:
->
SET VIDEO_IN <devicename>
- Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
GET CALL
VIDEO_STATUS
To check if a Skype client is video-enabled:
- Syntax
-> GET CALL 5921 VIDEO_STATUS
- Response
Skype responds with the video status for the active call, for example:
<- CALL 5921 VIDEO_STATUS VIDEO_NONE
- Parameters
VIDEO_NONE
VIDEO_SEND_ENABLED
VIDEO_RECV_ENABLED
VIDEO_BOTH_ENABLED
- Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
ALTER CALL
VIDEO_SEND
To start or stop sending video during a call:
- Syntax
-> ALTER CALL 5921 { START_VIDEO_SEND | STOP_VIDEO_SEND }
- Parameters
START_VIDEO_SEND
TOP_VIDEO_SEND
- Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
ALTER CALL
VIDEO_RECEIVE
To start or stop receiving video during a call:
- Syntax
-> ALTER CALL 5921 { START_VIDEO_RECEIVE | STOP_VIDEO_RECEIVE }
- Parameters
START_VIDEO_RECEIVE
STOP_VIDEO_RECEIVE
- Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
GET CALL
VIDEO_SEND_STATUS
To check video send status:
- Syntax
-> GET CALL 5921 VIDEO_SEND_STATUS
- Response
- Skype responds with the appropriate parameter.
- Parameters
-
NOT_AVAILABLE
// The client does not have video capability
because video is disabled or a webcam is unplugged).
AVAILABLE
// The client is video-capable but the video is not running (can
occur during a manual send).
STARTING
// The video is
sending but is not yet running at full speed.
REJECTED
// The receiver rejects the video feed (can occur during a manual
receive).
RUNNING
// The video is actively
running.
STOPPING
// The active video is in the process
of stopping but has not halted yet.
PAUSED
// The video
call is placed on hold. - Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
GET CALL
VIDEO_RECEIVE_STATUS
To check video receive status:
- Syntax
-> GET CALL 5921 VIDEO_RECEIVE_STATUS
- Response
- Skype responds with the appropriate parameter.
- Parameters
-
NOT_AVAILABLE
// The client does not have video capability
because video is disabled or a webcam is unplugged).
AVAILABLE
// The client is video-capable but the video is not running (can
occur during a manual send).
STARTING
// The video is
sending but is not yet running at full speed.
REJECTED
// The receiver rejects the video feed (can occur during a manual
receive).
RUNNING
// The video is actively
running.
STOPPING
// The active video is in the process
of stopping but has not halted yet.
PAUSED
// The video
call is placed on hold. - Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
IS_VIDEO_CAPABLE
To check if a user is video-capable:
- Syntax
-> GET USER <username> IS_VIDEO_CAPABLE
- Response
<- USER <username> IS_VIDEO_CAPABLE {True|False}
- Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
OPEN VIDEOTEST
To open the Video Test window to test if video is
working:
- Syntax
-> OPEN VIDEOTEST
- Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
OPEN OPTIONS VIDEO
To open the Video Options window:
- Syntax
-> OPEN OPTIONS VIDEO
- Version
- Protocol 5
Video
>
Commands
>
Reference
>
Contents
Leaving and manipulating voicemails
The commands to leave and manipulate voicemails
are:
-
Use the
VOICEMAIL
command
to leave a voicemail for a target user. -
Use the
OPEN
VOICEMAIL
command
to open and listen to voicemails. -
Use the
ALTER
VOICEMAIL
command
to manipulate voicemails.
VOICEMAIL
To leave a voicemail:
- Syntax
-
VOICEMAIL <target>
- Response
-
VOICEMAIL <id> STATUS <value>
- Parameters
-
<target>
– Skype username to receive the voicemail -
<value>
– Refer to
voicemail object
for a list of available status values
- Errors
- Version
- Protocol 5
- Notes
-
Leaving a voicemail for a target user actually uses two types of
voicemail object: -
a greeting type of voicemail object which is
downloaded from the server -
an outgoing type of voicemail object which
the user composes
Voicemail
>
Commands
>
Reference
>
Contents
OPEN VOICEMAIL
To open and start playing a voicemail:
- Syntax
-
OPEN VOICEMAIL <id>
- Notes
-
Voicemail is downloaded from server automatically.
-
The main Skype window comes into focus and
switches to the Call List tab; use the
ALTER
VOICEMAIL
command
to play without a UI response.
See also the
SEARCH VOICEMAILS
command.
Voicemail
>
Commands
>
Reference
>
Contents
ALTER VOICEMAIL
The
ALTER VOICEMAIL
command allows finer
control over the
VOICEMAIL
object.
- Syntax
-
ALTER VOICEMAIL <id> action
- Response
-
ALTER VOICEMAIL action
- Parameters
-
action,
possible values: -
STARTPLAYBACK
– starts playing downloaded voicemail -
STOPPLAYBACK
– stops voicemail playback -
UPLOAD
– uploads recorded voicemail from a local computer
to a server -
DOWNLOAD
– downloads voicemail object from a server to a
local computer -
STARTRECORDING
– stops playing greeting and starts
recording, the equivalent to a user pressing the green button; -
STOPRECORDING
– ends recording, the equivalent to a user
pressing the red button -
DELETE
– delete voicemail object - Notes
-
STARTPLAYBACK
plays voicemail but the window does not
change to the Call List tab as it does with the
OPEN VOICEMAIL
command. -
STOPRECORDING
causes automatic message upload to the server. -
Voicemails are deleted as a background
process and the elapsed time depends on the server response; during
this period, the
SEARCH VOICEMAILS
command still returns an
ID for the voicemail, but the status is changed to
DELETING
.
Voicemail
>
Commands
>
Reference
>
Contents
Managing call forwarding
The commands to manage call forwarding are:
-
Use the
GET
PROFILE CALL_APPLY_CF
command
to query if call forwarding
is enabled. -
Use the
SET
PROFILE CALL_APPLY_CF
command
to enable or disable call
forwarding. -
Use the
GET
PROFILE CALL_FORWARD_RULES
command
to query the rules
defined for call forwarding. -
Use the
SET
PROFILE CALL_FORWARD_RULES
command
to set rules for call
forwarding. -
Use the
GET
PROFILE CALL_NOANSWER_TIMEOUT
command
to query the number
of times a call rings on a forwarded number before timing out. -
Use the
SET
PROFILE CALL_NOANSWER_TIMEOUT
command
to set the number of
times a call rings on a forwarded number before timing out. -
Use the
GET
PROFILE CALL_SEND_TO_VM
command
to query if voicemail is
enabled for forwarded calls. -
Use the
SET
PROFILE CALL_SEND_TO_VM
command
to enable or disable
voicemail for forwarded calls.
Call forwarding
>
Commands
>
Reference
>
Contents
GET PROFILE
CALL_APPLY_CF
Use the
GET PROFILE CALL_APPLY_CF
command
to query if call forwarding is enabled for a call.
- Syntax
-> GET PROFILE CALL_APPLY_CF
- Response
<- PROFILE CALL_APPLY_CF {True|False}
- Version
- Protocol 1.4
Call forwarding
>
Commands
>
Reference
>
Contents
GET PROFILE
CALL_APPLY_CF
Use the
SET PROFILE CALL_APPLY_CF
to
enable or disable call forwarding.
- Syntax
-> SET PROFILE CALL_APPLY_CF {True|False}
- Response
<- PROFILE CALL_APPLY_CF {True|False}
- Version
- Protocol 1.4
Call forwarding
>
Commands
>
Reference
>
Contents
GET
PROFILE CALL_FORWARD_RULES
Use the
GET PROFILE CALL_FORWARD_RULES
to
query the rules set for call forwarding.
- Syntax
-> GET PROFILE CALL_FORWARD_RULES
- Response
<- PROFILE CALL_FORWARD_RULES [<start_time>,<end_time>,{<username>|<+PSTN>}[ <start_time>,<end_time>,{<username>|<+PSTN>}]*]
- Parameters
-
timeout
– in seconds for call forward -
start_time
-
in seconds when connecting to this number/user starts -
end_time
– in seconds when ringing to this number/user ends -
username
– another Skype username to forward calls to -
+PSTN - PSTN
number to forward a
call
- Note
-
A call can be forwarded to multiple numbers and the numbers can
overlap in time, with all ringing and the first to pick up the call
takes it. - Version
- Protocol 1.4
Call forwarding
>
Commands
>
Reference
>
Contents
SET
PROFILE CALL_FORWARD_RULES
Use the
SET PROFILE CALL_FORWARD_RULES
to
set the rules for call forwarding.
- Syntax
-> SET PROFILE CALL_FORWARD_RULES [<start_time>,<end_time>,{<username>|<+PSTN>}[ <start_time>,<end_time>,{<username>|<+PSTN>}]*]
- Response
<- PROFILE CALL_FORWARD_RULES [<start_time>,<end_time>,{<username>|<+PSTN>}[ <start_time>,<end_time>,{<username>|<+PSTN>}]*]
- Parameters
- Default values for rule parameters are:
-
timeout
– 15 seconds -
start_time
– 0,60 seconds -
end_time
– 0,60 seconds - Version
- Protocol 1.4
Call forwarding
>
Commands
>
Reference
>
Contents
GET
PROFILE CALL_NOANSWER_TIMEOUT
Use the
GET PROFILE CALL_NOANSWER_TIMEOUT
to query the amount of seconds a forwarded call will ring before
timing out.
- Syntax
-
-> GET PROFILE CALL_NOANSWER_TIMEOUT
- Response
-
<- PROFILE CALL_NOANSWER_TIMEOUT 15
- Note
- 15 seconds is the default timeout value.
- Version
- Protocol 1.4
Call forwarding
>
Commands
>
Reference
>
Contents
SET
PROFILE CALL_NOANSWER_TIMEOUT
Use the
SET PROFILE CALL_NOANSWER_TIMEOUT
to change the amount of seconds a forwarded call will ring before
timing out.
- Syntax
-
-> SET PROFILE CALL_NOANSWER_TIMEOUT 20
- Response
-
<- PROFILE CALL_NOANSWER_TIMEOUT 20
- Note
- This command replaces the default timeout value of 15 seconds.
- Version
- Protocol 1.4
Call forwarding
>
Commands
>
Reference
>
Contents
GET PROFILE
CALL_SEND_TO_VM
Use the
GET PROFILE CALL_SEND_TO_VM
to
query if voicemail is enabled for forwarded calls.
- Syntax
-
-> GET PROFILE CALL_SEND_TO_VM
- Response
-
<- PROFILE CALL_SEND_TO_VM {True|False}
- Version
- Protocol 1.4
Call forwarding
>
Commands
>
Reference
>
Contents
SET PROFILE
CALL_SEND_TO_VM
Use the
SET PROFILE CALL_SEND_TO_VM
to
enable (or disable) voicemail for forwarded calls.
- Syntax
-
-> SET PROFILE CALL_SEND_TO_VM True
- Response
-
<- PROFILE CALL_SEND_TO_VM True
- Version
- Protocol 1.4
Call forwarding
>
Commands
>
Reference
>
Contents
Creating chats and sending messages
The commands for creating chats and sending
messages are:
-
Use the
CHAT
CREATE
command
to create a chat. -
Use the
CHATMESSAGE
command
to send a chat message. -
Use the
ALTER
CHAT SETTOPIC
command
to set the topic for a chat. -
Use the
ALTER
CHAT ADDMEMBERS
command
to add members to a chat. -
Use the
ALTER
CHAT LEAVE
command
to leave a chat. -
Use the
GET
CHAT CHATMESSAGES
command
to retrieve the message
identifiers for a chat. -
Use the
GET
CHAT RECENTCHATMESSAGES
command
to retrieve recent chat
messages. -
Use the
SET
CHATMESSAGE SEEN
command
to mark a chat message as seen. -
The
SET
MESSAGE SEEN
command
is obsolete. -
The
MESSAGE
command
is obsolete.
Chat
>
Commands
>
Reference
>
Contents
CHAT CREATE
- Syntax
-
CHAT CREATE <target>[, <target>]*
- Response
-
CHAT <chat_id> STATUS <value>
- Version
- Protocol 5
- Parameters
-
<target>
– username(s) with whom to create a chat -
<chat_id>
– chat identifier; string (usually looks like
"#me/$target;012345679012345") -
<value>
– depends on the type
of chat created:
DIALOG
for a 1:1 chat;
MULTI_SUBSCRIBED
for a chat with multiple participants
- Notes
-
The
CHAT CREATE
command does not open a chat window; use
the
OPEN CHAT
command to do so.
Chat
>
Commands
>
Reference
>
Contents
CHATMESSAGE
- Syntax
-
CHATMESSAGE <chat_id> <message>
- Response
-
CHATMESSAGE <id> STATUS SENDING
- Parameters
-
<chat_id>
– chat identifier -
<message>
– message text body to send -
<id>
– chatmessage identifier
- Version
- Protocol 5
- Errors
-
ERROR 510 Invalid/unknown chat name given
Chat with
<chat_id> does not exist -
ERROR 511 Sending a message to chat
fails
Could not send message to chat (eg. not a member)
Chat
>
Commands
>
Reference
>
Contents
ALTER CHAT SETTOPIC
- Syntax
-
ALTER CHAT <chat_id> SETTOPIC <topic>
- Response
-
ALTER CHAT SETTOPIC
- Version
- Protocol 5
- Errors
-
ERROR 501 CHAT: No chat found for given chat
Chat with
<id> does not exist
Chat
>
Commands
>
Reference
>
Contents
ALTER CHAT
ADDMEMBERS
- Syntax
-
ALTER CHAT <chat_id> ADDMEMBERS <target>[,
<target>]*
- Response
-
ALTER CHAT ADDMEMBERS
- Version
- Protocol 5
- Errors
-
ERROR 501 CHAT: No chat found for given chat
Chat with
<chat_id> does not exist -
ERROR 504 CHAT: Action failed
Could
not add members into chat (eg <target> is already a member;
you have left chat)
Chat
>
Commands
>
Reference
>
Contents
ALTER CHAT LEAVE
- Syntax
-
ALTER CHAT <chat_id> LEAVE
- Response
-
ALTER CHAT LEAVE
- Errors
-
ERROR 501 CHAT: No chat found for given chat
Chat with
<chat_id> does not exist -
ERROR 504 CHAT: Action failed
Could
not leave chat (for example if the user has already left this chat)
Chat
>
Commands
>
Reference
>
Contents
GET CHAT
CHATMESSAGES
- Syntax
-
GET CHAT <chat_id> CHATMESSAGES
- Response
-
CHAT <chat_id> CHATMESSAGES <id>[, <id>]*
- Version
- Protocol 5
- Errors
-
ERROR 501 CHAT: No chat found for given chat
Chat with
<chat_id> does not exist
Chat
>
Commands
>
Reference
>
Contents
GET CHAT
RECENTCHATMESSAGES
- Syntax
-
GET CHAT <chat_id> RECENTCHATMESAGES
- Response
-
CHAT <chat_id> RECENTCHATMESSAGES <id>[, <id>]*
- Version
- Protocol 5
- Errors
-
ERROR 501 CHAT: No chat found for given chat
Chat with
<chat_id> does not exist
Chat
>
Commands
>
Reference
>
Contents
SET CHATMESSAGE
SEEN
- Syntax
-
SET CHATMESSAGE <id> SEEN
- Response
-
CHATMESSAGE <id> STATUS <value>
- Parameters
-
<id>
– chat message ID. -
<value>
– new value for chat
message status; refer to
CHATMESSAGE
object
for status values
- Version
- Protocol 3
- Example
-> SET CHATMESSAGE 61 SEEN
<- CHATMESSAGE 61 STATUS READ
- Errors
-
ERROR 18 SET: invalid WHAT
CHATMESSAGE command is missing or misspelled -
ERROR 31 Unknown message id
Unknown chat message ID -
ERROR 30 Invalid message id
Chat message ID is misspelled or contains non-permitted symbols (numeric are permitted) -
ERROR 32 Invalid WHAT
Invalid status given to chat message, for example the message is already marked as seen
Chat
>
Commands
>
Reference
>
Contents
SET MESSAGE SEEN
– obsolete
Mark message as seen by the user and remove it
from the missed messages list. This command is obsolete and has been
replaced by the
SET CHATMESSAGE SEEN
command.
- Syntax
-
SET MESSAGE <id> SEEN
- Response
-
MESSAGE <id> STATUS value
- Properties
-
<id>
– message ID; -
value
– (new) status value
- Version
- Protocol 1, deprecated in protocol 3
- Example
-> SET MESSAGE 1578 SEEN
<- MESSAGE 1578 STATUS READ
- Errors
-
ERROR 18 SET: invalid WHAT
Object name missing or
misspelled. -
ERROR 30 Invalid message id
ID
includes other than numeric characters. -
ERROR 31 Unknown message id
Message
with specified ID does not exist in current user’s message history. -
ERROR 32 Invalid WHAT
Property
name missing or misspelled.
Chat
>
Commands
>
Reference
>
Contents
MESSAGE
– obsolete
The
MESSAGE
command is obsolete and has
been replaced by the
CHATMESSAGE
command.
- Syntax
-
MESSAGE <target> <text>
- Response
-
CHATMESSAGE <id> STATUS SENDING
(protocol 3 and
up)
MESSAGE <id> STATUS SENDING
(protocol 1 and 2) - Parameters
-
<target>
– target username to whom to send the
message -
<text>
– message body, for
example Please call me
- Version
- Protocol 1
- Errors
-
ERROR 26 Invalid user handle
The target username is missing or includes symbols which are not premitted -
ERROR 43 Cannot send empty message
The message has no body.
- Notes
-
When message sending fails, a LEFT-type message is received. The
message’s
LEAVEREASON
shows why it failed. See the
CHATMESSAGE
object
for a description. - Example
-> MESSAGE echo123 Please call me
<- MESSAGE 982 STATUS SENDING
<- MESSAGE 982 STATUS SENT
Chat
>
Commands
>
Reference
>
Contents
Managing contacts and groups
Users can group contacts, for example, creating
separate groups for friends, family, and work. To add a user to a
group, the user must be in the contact list. Contacts can be in
multiple groups at the same time. Refer to the
GROUP object
for a description of the object properties. Contact
grouping uses the following commands:
-
Use the
GET GROUP USERS
command to query the users in a group. -
Use the
GET GROUP VISIBLE
command to query if a group is visible to the
user. -
Use the
GET GROUP EXPANDED
command to query if a group is expanded in
the Skype window. -
Use the
GET GROUP DISPLAYNAME
command to query the name of a group. -
Use the
SET GROUP DISPLAYNAME
command to change the name of a group. -
Use the
GET GROUP TYPE
command to query the group type. -
Use the
CREATE GROUP
command to create a group. -
Use the
DELETE GROUP
command to delete a group. -
Use the
ALTER GROUP ADDUSER
command to add a contact to a group. -
Use the
ALTER GROUP REMOVEUSER
command to remove a contact from a group. -
Use the
SEARCH GROUPS
command to search for contact groups. -
Use the
SET USER DISPLAYNAME
command to change the displayname for a
contact. -
Use the
OPEN SENDCONTACTS
command to send contacts to multiple users.
GET GROUP USERS
The
GET GROUP USERS
command queries the
members of a group.
- Syntax
-> GET GROUP <id> USERS
- Response
<- GROUP <id> USERS <user1>, <user2>, <user3>
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
GET GROUP VISIBLE
The
GET GROUP VISIBLE
command queries if
a group is visible to the user.
- Syntax
-> GET GROUP <id> VISIBLE
- Response
<- GROUP <id> VISIBLE {True|False}
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
GET GROUP EXPANDED
The
GET GROUP EXPANDED
command queries
whether a group is expanded in the Skype window.
- Syntax
-> GET GROUP <id> EXPANDED
- Response
<- GROUP <id> EXPANDED {True|False}
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
GET GROUP
DISPLAYNAME
The
GET GROUP DISPLAYNAME
gets the
displayname for a group.
- Syntax
-> GET GROUP <id> DISPLAYNAME
- Response
<- GROUP <id> DISPLAYNAME <name>
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
SET GROUP
DISPLAYNAME
The
SET GROUP DISPLAYNAME
command changes
the displayname for a group.
- Syntax
-> SET GROUP <id> DISPLAYNAME <name>
- Response
<- GROUP <id> DISPLAYNAME <name>
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
GET GROUP TYPE
The
GET GROUP TYPE
command queries the
group type.
- Syntax
-> GET GROUP <id> TYPE
- Response
<- GROUP <id> TYPE <group_type>
- Version
- Protocol 5
Refer to the
GROUP OBJECT
for a list and description of group types.
Groups
>
Commands
>
Reference
>
Contents
CREATE GROUP
The
CREATE GROUP
command creates a
contact group, for example a group named Family.
- Syntax
-> CREATE GROUP <Family>
- Response
<- CREATE GROUP <Family>
-
The command triggers a number of
GROUP
properties events:
<- GROUP <234> TYPE CUSTOM_GROUP
<- GROUP <234> NROFUSERS 0
<- GROUP <234> NROFUSERS_ONLINE 0
<- GROUP <234> CUSTOM_GROUP_ID <111>
<- GROUP <234> DISPLAYNAME <Family>
<- GROUP <234> USERS
- The command triggers the following notification:
<- GROUP <234> USERS <user1> <user2>...
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
DELETE GROUP
The
DELETE GROUP
removes a contact group.
- Syntax
-> DELETE GROUP <234>
- Response
<- DELETE GROUP <234>
- The command triggers the following notifications:
<- DELETED GROUP <234>
<- GROUP <234> USERS <user1> <user2>...
ALTER GROUP ADDUSER
The
ALTER GROUP ADDUSER
command adds
contacts to a group.
- Syntax
-> ALTER GROUP <234> ADDUSER <userhandle|PSTN>
- Response
<- ALTER GROUP <234> ADDUSER <userhandle|PSTN>
- Parameters
ADDUSER <userhandle|PSTN>
- This command triggers the following notification:
<- GROUP <234> NROFUSERS y
- Note:
- A contact must exist in a contactlist to be added to a group.
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
ALTER GROUP
REMOVEUSER
The
ALTER GROUP REMOVEUSER
command
removes contacts from a group.
- Syntax
-> ALTER GROUP <234> REMOVEUSER <userhandle|PSTN>
- Response
<- ALTER GROUP <234> REMOVEUSER <userhandle|PSTN>
- Parameters
REMOVEUSER <userhandle|PSTN>
- This command triggers the following notification:
<- GROUP <234> NROFUSERS y
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
SET USER
DISPLAYNAME
The
SET USER DISPLAYNAME
command changes
the display name for a contact.
- Syntax
-> SET USER <handle|PSTN> DISPLAYNAME name
- Version
- Protocol 5
Groups
>
Commands
>
Reference
>
Contents
OPEN SENDCONTACTS
Refer to the
OPEN SENDCONTACTS
command for information about how to open a
window to send contacts to other users.
Groups
>
Commands
>
Reference
>
Contents
Search commands
The search command requests specific information
about objects. If no target is specified, all results for specified
objects are returned.
- Syntax
-
SEARCH USERS
|
FRIENDS
|
CALLS [<target>]
|
ACTIVECALLS
|
MISSEDCALLS
|
VOICEMAILS
|
CHATS
|
MISSEDCHATS
|
ACTIVECHATS
|
RECENTCHATS
|
BOOKMARKEDCHATS
|
CHATMESSAGES
[<target>]
|
MISSEDCHATMESSAGES
|
MESSAGES
[<target>]
|
MISSEDMESSAGES
|
USERSWAITINGMYAUTHORIZATION
|
GROUPS [{ ALL | CUSTOM |
HARDWIRED }]
- Notes
-
In Skype for Windows 1.1 only one search at a time is allowed; since
version 1.2 multiple searches can executed at the same time; -
The number of
search results is not limited. -
SkypeOut contacts: since Skype for Windows
1.2 release it is possible to get the list of SkypeOut contacts
which are part of the main contact list and they are returned with
the contact list numbers, if the
SEARCH FRIENDS
command is
executed. To get more information about the number in a current
user's SkypeOut contacts use the
GET USER <number>
<fullname>"
command.
The search commands are:
-
Use the
SEARCH
FRIENDS
command
to search for users in the contact list. -
Use the
SEARCH
USERS
command
to search for users. -
Use the
SEARCH
CALLS
command
to search for calls. -
Use the
SEARCH
ACTIVECALLS
command
to search for active calls. -
Use the
SEARCH
MISSEDCALLS
command
to search for missed calls. -
Use the
SEARCH
VOICEMAILS
command
to search for voicemails. -
The
SEARCH
MESSAGES
command
is obsolete. -
The
SEARCH
MISSEDMESSAGES
command
is obsolete. Use the
SEARCH
MISSEDCHATS
to search for unread chat messages. -
Use the
SEARCH
CHATS
command
to search for chats. -
User the
SEARCH
ACTIVECHATS
command
to search for active chats. -
Use the
SEARCH
MISSEDCHATS
command
to search for unread chat messages. -
Use the
SEARCH
RECENTCHATS
command
to search for recent chats. -
Use the
SEARCH
BOOKMARKEDCHATS
command
to search for bookmarked chats. -
Use the
SEARCH
CHATMESSAGES
command
to search for chatmessages. -
Use the
SEARCH
MISSEDCHATMESSAGES
command
to search for missed chat
messages. -
Use the
SEARCH
USERSWAITINGMYAUTHORIZATION
command
to search for users
awaiting authorization. -
Use the
SEARCH
GROUPS
command
to search for contact groups.
Search
>
Commands
>
Reference
>
Contents
SEARCH FRIENDS
- Syntax
-
SEARCH FRIENDS
- Response
-
USERS [user[, user]*]
returns a list of found usernames;
an empty list if no match is found
-
ERROR 67 target not allowed with SEARCH FRIENDS
A target(such as mike) was specified with the
SEARCH FRIENDS
command
- Version
- Protocol 1
- Example
-> SEARCH FRIENDS
<- USERS tim, joe, mike
Search
>
Commands
>
Reference
>
Contents
SEARCH USERS
- Syntax
-
-> SEARCH USERS <target>
- Parameters
-
<target>
- part of username or e-mail to match. If
the search string contains "@", the search is performed by
e-mail address and has to be an exact match. If the search string is
a valid Skype username, the search is performed on the full name and
username fields. In all other cases the search is made on the full
name field only. - Response
-
<- SEARCH [<username>[, <username>]*]
returns a
list of found usernames; list is empty if no match was found - Errors
-
ERROR 4 Empty target not allowed
Target username is not
specified
- Notes
-
When running the
SEARCH USERS
command,
USER
notifications are reported back to the API client as users are found
on the network. The API client should ignore these events and
request each user's property after the search. - Version
- Protocol 1
- Example
-> #123 SEARCH USERS echo123
<- #123 USERS echo123, echo1232885
Search
>
Commands
>
Reference
>
Contents
SEARCH CALLS
- Syntax
-
SEARCH CALLS <target>
- Parameters
-
<target>
- username. Specifying a target is optional.
If a target is specified, Skype searches the call history between
the current user and the target user. - Response
-
<- CALLS [id[, id]*]
Returns a list of call IDs. If a
target is specified, Skype returns IDs of all calls that have been
made between the current and target user. - Errors
-
ERROR 5 Search CALLS: invalid target
Characters that are
not permitted were used in the target username. The username must
have 6-22 characters and can contain only the following symbols:
{a-Z, 0-9-_,.}.
- Version
- Protocol 1
- Example
-> SEARCH CALLS abc
<- CALLS 15, 16, 39
Search
>
Commands
>
Reference
>
Contents
SEARCH ACTIVECALLS
Lists all calls visible on calltabs, including
members of conference calls if the user is hosting a conference.
- Syntax
-
-> SEARCH ACTIVECALLS
- Response
-
<- CALLS [<id>[, <id>]*]
Returns a list of
active call IDs. - Errors
-
ERROR 3 SEARCH: unknown WHAT
ACTIVECALLS
was
misspelled.
- Version
- Protocol 1
- Example
-> SEARCH ACTIVECALLS
<- CALLS 25, 56
Search
>
Commands
>
Reference
>
Contents
SEARCH MISSEDCALLS
- Syntax
-
-> SEARCH MISSEDCALLS
- Response
-
<- CALLS [<id>[, <id>]*]
Returns a list ofmissed call IDs, calls in
MISSED
status. - Errors
-
ERROR 6 SEARCH MISSEDCALLS: target not allowed
No targetis allowed with
SEARCH MISSEDCALLS
.
- Version
- Protocol 1
- Example
-> SEARCH MISSEDCALLS
<- CALLS 25, 56
Search
>
Commands
>
Reference
>
Contents
SEARCH VOICEMAILS
- Syntax
-
SEARCH VOICEMAILS
- Response
-
VOICEMAILS [<id>[, <id>]*]
Returns a list of
voicemail IDs - Errors
-
ERROR 29 SEARCH VOICEMAILS: target not allowed
No targetis allowed with
SEARCH VOICEMAILS
- Version
- Protocol 5
- Example
->SEARCH VOICEMAILS
<- VOICEMAILS 65, 70, 71
Search
>
Commands
>
Reference
>
Contents
SEARCH MESSAGES
- Syntax
-
SEARCH MESSAGES [<target>]
- Parameters
-
<target>
- username. It is optional to specify a
target. If a target is specified, Skype searches the message history
between the current user and the target user.
- Response
-
MESSAGES [<id>[, <id>]*]
Returns a list of
message IDs. If a target is specified, Skype returns IDs of all
messages that have been sent between the current user and the target
user. - Errors
-
ERROR 5 SEARCH MESSAGES: invalid target
A character was
used in the target username that is not permitted. The username must
have 6-22 characters and can contain only the following symbols:
{a-Z, 0-9-_,.}.
- Version
- Protocol 1, deprecated in protocol 3
- Notes
-
This search is deprecated in protocol 3, use the
SEARCHCHATMESSAGES
command instead. - Example
-> SEARCH MESSAGES abc
<- MESSAGES 123, 124
Search
>
Commands
>
Reference
>
Contents
SEARCH
MISSEDMESSAGES
- Syntax
-
SEARCH MISSEDMESSAGES
- Response
-
MESSAGES [<id>[, <id>]*]
Returns a list of
message IDs. - Errors
-
ERROR 29 SEARCH MISSEDMESSAGES: target not allowed
Notarget is allowed with the
SEARCH MISSEDMESSAGES
command.
- Version
- Protocol 1, deprecated in protocol 3
- Notes
-
This search is deprecated in protocol 3. Use the
SEARCH
MISSEDCHATMESSAGES
command instead. - Example
-> SEARCH MISSEDMESSAGES
<- MESSAGES 123, 124
Search
>
Commands
>
Reference
>
Contents
SEARCH CHATS
- Syntax
-
SEARCH CHATS
- Response
-
CHATS [<chatname>[, <chatname>]*]
Returns a
list of chat IDs. - Errors
-
ERROR 107 target not allowed with CHATS
No target isallowed with the
SEARCH CHATS
command.
- Version
- Protocol 3
- Example
-> SEARCH CHATS
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391
Search
>
Commands
>
Reference
>
Contents
SEARCH ACTIVECHATS
- Syntax
-
SEARCH ACTIVECHATS
- Response
-
CHATS [<chatname>[, <chatname>]*]
Returns a
list of chat IDs that are open in the window. - Errors
-
ERROR 29 No target allowed
No target is allowed with
SEARCH ACTIVECHATS
.
- Version
- Protocol 5
- Example
-> SEARCH ACTIVECHATS
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391
SEARCH MISSEDCHATS
- Syntax
-
SEARCH MISSEDCHATS
- Response
-
CHATS [<chatname>[, <chatname>]*]
Returns a
list of chat IDs that include unread messages. - Errors
-
ERROR 29 SEARCH MISSEDCHATS: target not allowed
Notarget is allowed with
SEARCH MISSEDCHATS
.
- Version
- Protocol 5
- Example
-> SEARCH MISSEDCHATS
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391
Search
>
Commands
>
Reference
>
Contents
SEARCH RECENTCHATS
- Syntax
-
SEARCH RECENTCHATS
- Response
-
CHATS [<chatname>[, <chatname>]*]
Returns a
list of recent chat IDs. - Errors
-
ERROR 29 SEARCH RECENTCHATS: target not allowed
Notarget is allowed with
SEARCH RECENTCHATS
.
- Version
- Protocol 5
- Example
-> SEARCH RECENTCHATS
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391
SEARCH
BOOKMARKEDCHATS
- Syntax
-
SEARCH BOOKMARKEDCHATS
- Response
-
CHATS [<chatname>[, <chatname>]*]
Returns a
list of bookmarked chat IDs. - Errors
-
ERROR 29 SEARCH BOOKMARKEDCHATS: target not allowed
Notarget is allowed with
SEARCH BOOKMARKEDCHATS
.
- Version
- Protocol 5
- Example
-> SEARCH BOOKMARKEDCHATS
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391
Search
>
Commands
>
Reference
>
Contents
SEARCH CHATMESSAGES
- Syntax
-
SEARCH CHATMESSAGES [<username>]
- Parameters
-
<username>
- target username, optional. If a username
is specified, only chatmessages from/to that target user are
returned. - Response
-
CHATMESSAGES [<id>[, <id>]*]
Returns a list
of chat message IDs. - Errors
-
ERROR 29 SEARCH CHATMESSAGES: Target not allowed
The
target username contained a character that is not permitted.
(Username must have 6-22 characters and can contain only the
following symbols: {a-Z, 0-9-_,.}.
- Version
- Protocol 3
- Example
-> SEARCH CHATMESSAGES abc
<- CHATMESSAGES 60, 59
Search
>
Commands
>
Reference
>
Contents
SEARCH
MISSEDCHATMESSAGES
- Syntax
-
SEARCH MISSEDCHATMESSAGES
- Response
-
CHATMESSAGES [<id>[, <id>]*]
Returns a list
of missed chat message IDs. - Errors
-
ERROR 29 SEARCH MISSEDCHATMESSAGES: target not allowed
Notarget is allowed with
SEARCH MISSEDCHATMESSAGES
.
- Version
- Protocol 3
- Example
-> SEARCH MISSEDCHATMESSAGES
<- CHATMESSAGES 61, 62
Search
>
Commands
>
Reference
>
Contents
SEARCH
USERSWAITINGMYAUTHORIZATION
- Syntax
-
SEARCH USERSWAITINGMYAUTHORIZATION
- Response
-
USERS [<id>[, <id>]*]
List of users who are
waiting for authorization - Errors
-
ERROR 29 SEARCH USERSWAITINGMYAUTHORIZATION: target not allowed
- Version
- Protocol 5
- Example
-> SEARCH USERSWAITINGMYAUTHORIZATION
<- USERS tim, john, echo123
SEARCH GROUPS
The
SEARCH GROUPS
command returns
existing contact groups.
- Syntax
-> SEARCH GROUPS [{ ALL | CUSTOM | HARDWIRED }]
- Response
<- GROUPS <id1>, <id2>, <id3>, ...
- Version
- Protocol 5
- Errors
ERROR 561 - SEARCH GROUPS: invalid target
ERROR 562 - Invalid group id
ERROR 563 - Invalid group object
ERROR 564 - Invalid group property given
Search
>
Commands
>
Reference
>
Contents
Managing history
These commands are available to clear chat,
voicemail, and call history.
CLEAR CHATHISTORY
- Syntax
-
CLEAR CHATHISTORY
CLEAR
VOICEMAILHISTORY
- Syntax
-
CLEAR VOICEMAILHISTORY
CLEAR CALLHISTORY
- Syntax
-
CLEAR CALLHISTORY
History
>
Commands
>
Reference
>
Contents
Controlling Skype user interface
This section lists the commands used to control
the Skype user interface. The commands are:
-
Use the
FOCUS
command
to bring the Skype window into focus. -
Use the
MINIMIZE
command
to minimize the Skype window. -
Use the
OPEN
ADDAFRIEND
command
to open the Add a Contact window. -
The
OPEN
IM
command
opens a chat window. However, this command has
been superceded by the
OPEN CHAT
command and new chat
management commands in protocol 5. -
Use the
OPEN
CHAT
command
to open a chat window. -
Use the
OPEN
FILETRANSFER
command
to open a file transfer window. -
Use the
OPEN_VIDEOTEST
command
to test if video is working. -
Use the
OPEN
VOICEMAIL
command
to open a voicemail window. -
Use the
OPEN
PROFILE
command
to open the profile for the current user. -
Use the
OPEN
USERINFO
command
to open the profile window for a named
Skype contact. -
Use the
OPEN
CONFERENCE
command
to open the create conference window. -
Use the
OPEN
SEARCH
command
to open a search window. -
Use the
OPEN
OPTIONS
command
to open the options configuration window. -
Use the
OPEN
CALLHISTORY
command
to open the call history tab in the
main Skype window. -
Use the
OPEN
CONTACTS
command
to open the contacts tab in the main Skype
window. -
Use the
OPEN
DIALPAD
command
to open the dialpad tab in the main Skype
window. -
Use the
OPEN
SENDCONTACTS
command
to open the send contacts window. -
Use the
OPEN
BLOCKEDUSERS
command
to open the blocked users window. -
Use the
OPEN
IMPORTCONTACTS
command
to open the import contacts window. -
Use the
OPEN
GETTINGSTARTED
command
to open the getting started wizard. -
Use the
OPEN
AUTHORIZATION
command
to open the authorization window. -
Use the
BTN_PRESSED
command
to simulate page scrolling.
FOCUS
The
FOCUS
brings the Skype window into
focus on screen (on top).
- Syntax
-
FOCUS
- Response
- If successful command is echoed back
- Version
- Protocol 1
User interface
>
Commands
>
Reference
>
Contents
MINIMIZE
This command minimizes the main Skype window into
the system tray.
- Syntax
-
MINIMIZE
- Response
- If successful command is echoed back
- Version
- Skype for Windows 1.3
- Notes
-
This command does not minimize other Skype windows, such as chat or
filetransfer.
User interface
>
Commands
>
Reference
>
Contents
OPEN ADDAFRIEND
This command opens the Add a Contact window.
- Syntax
-
OPEN ADDAFRIEND [<username>]
- Parameters
-
<username>
- target username is optional. If a
username is specified, the window is prefilled with it. - Response
- If successful command is echoed back
- Errors
-
ERROR 69 OPEN: invalid WHAT
Open target is missing or
misspelled - Version
- Skype for Windows 1.0
User interface
>
Commands
>
Reference
>
Contents
OPEN IM
This command opens the chat window with prefilled
message.
- Syntax
-
OPEN IM <username> [<message>]
- Response
- If successful command is echoed back
- Parameters
-
<username>
- contact username to whom to send the
message -
<message>
- optional message
body prefilled into the window
- Errors
-
ERROR 69 OPEN: invalid WHAT
Open target is missing or
misspelled -
ERROR 70 Invalid user handle
Username
is missing or contains not permitted symbols
- Version
- Skype for Windows 1.0
- Notes
-
The protocol 5 chat management commands and Skype for Windows 1.3
OPEN CHAT
command are preferable to the
OPEN IM
command. - Example
// IM dialog with echo123 will pop up, with text "This is a test!" already filled in as message text
-> OPEN IM echo123 This is a test!
<- OPEN IM echo123 This is a test!
User interface
>
Commands
>
Reference
>
Contents
OPEN CHAT
- Syntax
-
OPEN CHAT <chat_id>
- Parameters
-
<chat_id>
- existing chat identifier (see
CHAT
CREATE, SEARCH ...CHATS
commands) - Response
- If successful command is echoed back
- Errors
-
ERROR 69 invalid open what
Open target is missing or
misspelled -
ERROR 105 Invalid chat name
Chat
id is missing or chat with this id doesn't exist.
- Version
- Skype for Windows 1.3
- Example
-> OPEN CHAT #test/$echo123;52c2750d8686c10c
<- OPEN CHAT #test/$echo123;52c2750d8686c10c
User interface
>
Commands
>
Reference
>
Contents
OPEN FILETRANSFER
- Syntax
-
OPEN FILETRANSFER <username>[, <username>]*[ IN
<folder>]
- Response
- If successful command is echoed back
- Parameters
-
<username>
- list of usernames to transfer file to; -
<folder>
- optional,
filesystem folder for file selection window. If not specified, the
file transfer window opens in the default directory.
- Errors
-
ERROR 69 invalid open what
Open target is missing or
misspelled -
ERROR 108 user not contact
Command
is allowed for authorized contacts only -
ERROR 109 directory doesn't exist
Given
folder does not exist or user has no access to it
- Version
- Skype for Windows 1.3
- Example
-> OPEN FILETRANSFER echo123 IN C:temp
<- ERROR 108 user not contact
-> OPEN FILETRANSFER myfriend IN C:temp
<- OPEN FILETRANSFER myfriend IN C:temp
User interface
>
Commands
>
Reference
>
Contents
OPEN_VIDEOTEST
This command opens the Video test window to test
if video is working.
- Syntax
-
OPEN VIDEOTEST <id>
- Response
- If successful command is echoed back
- Parameters
-
<id>
- video device identifier
OPEN VOICEMAIL
This command brings the callhistory tab into focus
and starts playing a voicemail.
- Syntax
-
OPEN VOICEMAIL <id>
- Response
- If successful command is echoed back
- Parameters
-
<id>
- voicemail identifier - Errors
-
ERROR 69 invalid open what
Open target is missing or
misspelled -
ERROR 512 invalid voicemail ID
Voicemail
identifier is missing, is invalid or does not exist
Userinterface
>
Commands
>
Reference
>
Contents
OPEN PROFILE
This command opens the profile window for the
current user.
- Syntax
-
OPEN PROFILE
- Response
- If successful command is echoed back
- Parameters
- Errors
-
ERROR 69 invalid open what
Open target is missing or
misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN USERINFO
This command opens the profile window for a named
Skype contact.
- Syntax
-
OPEN USRERINFO <skypename>
- Response
- If successful command is echoed back
- Parameters
-
<skypename>
- Skypename of contact - Errors
-
ERROR invalid skypename
-
ERROR 69
invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN CONFERENCE
This command opens the create conference window.
- Syntax
-
OPEN CONFERENCE
- Response
- If successful command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN SEARCH
This command opens the search window.
- Syntax
-
OPEN SEARCH
- Response
- If successful, command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN OPTIONS
This command opens the options configuration
window.
- Syntax
-
OPEN OPTIONS <page>
- Response
- If successful, the command is echoed back
- Parameters
-
<page>
, possible values: - general
- privacy
- notifications
- soundalerts
- sounddevices
- hotkeys
- connection
- voicemail
- callforward
- video
- advanced
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
-
Skype for Windows 1.4
Note:
OPEN OPTIONS
video
parameter will be introduced in Skype for Windows 2.0.
User interface
>
Commands
>
Reference
>
Contents
OPEN CALLHISTORY
This command opens and sets the focus to the call
history tab in the main Skype window.
- Syntax
-
OPEN CALLHISTORY
- Response
- If successful, the command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open whatOpen target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN CONTACTS
This command opens and sets the focus to the
contacts tab in the main Skype window.
- Syntax
-
OPEN CONTACTS
- Response
- If successful, the command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN DIALPAD
This command opens and sets the focus to the
dialpad tab in the main Skype window.
- Syntax
-
OPEN DIALPAD
- Response
- If successful, the command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN SENDCONTACTS
This command opens the send contacts window.
- Syntax
-
OPEN SENDCONTACTS
- Response
- If successful, the command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN BLOCKEDUSERS
This command opens the blocked users window.
- Syntax
-
OPEN BLOCKEDUSERS
- Response
- If successful, the command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN IMPORTCONTACTS
This command opens the import contacts window.
- Syntax
-
OPEN IMPORTCONTACTS
- Response
- If successful, the command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN GETTINGSTARTED
This command opens the getting started wizard.
- Syntax
-
OPEN GETTINGSTARTED
- Response
- If successful, the command is echoed back
- Parameters
- none
- Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
User interface
>
Commands
>
Reference
>
Contents
OPEN AUTHORIZATION
This command opens the authorization request
window for a given user.
- Syntax
-
OPEN AUTHORIZATION <skypename>
- Response
- If successful, the command is echoed back
- Parameters
-
skypename
of the user whose authorization is requested - Errors
-
ERROR 69 invalid open what
-
Open target is missing or misspelled
- Version
- Skype for Windows 1.4
BTN PRESSED
The Skype API provides the ability to simulate
page scrolling through the contact list from an external device.
- Syntax
BTN_PRESSED {PAGEUP|PAGEDOWN}
BTN_RELEASED {PAGEUP|PAGEDOWN}
- Version
- Protocol 5
User interface
>
Commands
>
Reference
>
Contents
Application to application commands
The
AP2AP
feature in Skype allows two API
clients to exchange information without the communication being
visible on the client. Application to application communication has
the following characteristics:
-
Connections are
only allowed to
connectable users, online parties
who are in the user's contact list or have active ongoing
communication with the user. -
Connections are
only attempted to connectable users at CONNECT. -
Connections are
established only when there is a matching application on the other
side. -
The application
name is limited to 32 bytes. -
Idle connections
are dropped in a specific amount of time (typically 8 minutes). -
When connection is
relayed, throttling is engaged. -
If the other party
is logged in to multiple Skype instances, a stream for each instance
is created. -
The stream write
provides reliable transmission to deliver a large amount of data. -
The maximum amount
of write to a stream can be 0xFFFF bytes long. -
Any character
except 0x00 is allowed in a message. -
Datagrams are
unreliable packets sent over a network (usually translates to UDP). -
The maximum size
of datagrams is 1400 bytes. -
There is no guarantee that datagrams will be
delivered.
The application to application commands are:
-
Use the
AP2AP
CREATE
command
to register a new application object. -
Use the
AP2AP
CONNECT
command
to create a stream from an application to a
Skype user's instance of the application. -
Use the
AP2AP
WRITE
command
to write text to the application stream. -
Use the
AP2AP
DATAGRAM
command
to add a datagram to the application
stream. -
Use the
AP2AP
READ
command
to read data from the application stream. -
Use the
AP2AP
DISCONNECT
command
to disconnect a user stream from an
application. -
Use the
AP2AP
DELETE
conmmand
to delete an application and all
connections to it.
Read an
application to application example
to get you started.
AP2AP CREATE
This command registers a new application object
with Skype.
- Syntax
-
CREATE APPLICATION <appname>
- Response
- If successful, the command is echoed back
- Parameters
-
<appname>
: An arbitrary name to identify the
application that will be exchanging data - Errors
-
ERROR 536 CREATE: no object or type given
-
ERROR 537
CREATE: Unknown object type given
-
ERROR 540 CREATE APPLICATION: Missing or
invalid name
- Version
-
Protocol 5
-
Skype for Windows 1.4
AP2AP
>
Commands
>
Reference
>
Contents
AP2AP CONNECT
This command creates a stream from the application
to another Skype user's instance of the same application.
- Syntax
-
ALTER APPLICATION <appname> CONNECT <skypename>
- Response
- If successful, the command is echoed back
- Parameters
-
<appname>
: An arbitary name to identify the
application that will be exchanging data -
<skypename>
: The user to
connect to this application
- Errors
-
ERROR 546 ALTER APPLICATION: Missing or invalid action
-
ERROR 547 ALTER APPLICATION CONNECT:
Invalid user handle
- Version
-
Protocol 5
-
Skype for Windows 1.4
- Note
-
If the user identified by
<skypename>
is logged in
from multiple locations, a stream will be created to each location.
AP2AP
>
Commands
>
Reference
>
Contents
AP2AP WRITE
This command writes text into the application
stream identified by the destination user's Skypename and stream ID.
- Syntax
-
ALTER APPLICATION <appname> WRITE <skypename>:<id>
<text>
- Response
-
If successful, the command is echoed back
Note:
There is a bug in Skype 1.4 where, following an application WRITE
event, Skype reports that the number of bytes sent is two characters
greater than that which is actually written. - Parameters
-
<appname>
: An arbitary name to identify the
application that will be exchanging data -
<skypename>
:
The name of the skype contact to whom the message will be sent -
<id>
:
The numeric identifier for the skype instance to which the message
will be sent -
<text>
: The text to send
- Errors
-
ERROR 546 ALTER APPLICATION : Missing or invalid action
-
ERROR 550 ALTER APPLICATION READ: Missing
or Invalid stream identifier
- Version
-
Protocol 5
-
Skype for Windows 1.4
- Example
//Send "Hello world!" to user "testtest20" stream "1" (application "exe")
-> ALTER APPLICATION exe WRITE testtest20:1 Hello world!
<- ALTER APPLICATION exe WRITE testtest20:1
// The message has been queued for sending, message length is reported back
<- APPLICATION exe SENDING testtest20:1 14
// The message has been sent -- note missing stream ID from the end of response
<- APPLICATION exe SENDING
-> ALTER APPLICATION exe WRITE testtest20:1 1234567890
<- ALTER APPLICATION exe WRITE testtest20:1
<- APPLICATION exe SENDING testtest20:1 12
<- APPLICATION exe SENDING
AP2AP DATAGRAM
This command sends a datagram to the application
stream.
- Syntax
-
ALTER APPLICATION <appname> DATAGRAM <skypename>:<id>
<text>
- Response
- If successful, the command is echoed back
- Parameters
-
<appname>
: An arbitrary name to identify the
application that will be exchanging data - Errors
-
ERROR 546 ALTER APPLICATION : Missing or invalid action
-
ERROR 551 ALTER APPLICATION DATAGRAM:
Missing or invalid stream identifier
- Version
-
Protocol 5
-
Skype for Windows 1.4
AP2AP
>
Commands
>
Reference
>
Contents
AP2AP READ
This command reads data from an application
stream.
- Syntax
-
ALTER APPLICATION <appname> READ <skypename>:<id>
- Response
- If successful, the command is echoed back
- Parameters
-
<appname>
: An arbitrary name to identify the
application that will be exchanging data - Errors
-
ERROR 546 ALTER APPLICATION : Missing or invalid action
-
ERROR 550 ALTER APPLICATION READ: Missing
or invalid stream identifier
- Version
-
Protocol 5
-
Skype for Windows 1.4
AP2AP
>
Commands
>
Reference
>
Contents
AP2AP DISCONNECT
This command disconnects a user stream from an
application.
- Syntax
-
ALTER APPLICATION <appname> DISCONNECT <skypname>:<id>
- Response
- If successful, the command is echoed back
- Parameters
-
<appname>
: An arbitrary name to identify the
application that will be exchanging data -
<skypename>:<id>
: The user and stream to
disconnect
- Errors
-
ERROR 546 ALTER APPLICATION : Missing or invalid action
-
ERROR 548 ALTER APPLICATION DISCONNECT: Invalid stream
identifier
- Version
-
Protocol 5
-
Skype for Windows 1.4
AP2AP
>
Commands
>
Reference
>
Contents
AP2AP DELETE
This command deletes an application and drops all
connections to it.
- Syntax
-
DELETE APPLICATION <appname>
- Response
- If successful, the command is echoed back
- Parameters
-
<appname>
: The name of the application to be deleted - Errors
-
ERROR 538 DELETE: no object or type given
-
ERROR 539
DELETE: Unknown object type given
-
ERROR 542 DELETE APPLICATION : missing or
invalid application name
- Version
-
Protocol 5
-
Skype for Windows 1.4
AP2AP
>
Commands
>
Reference
>
Contents
Application to application
example
Jim and Joe are two users who installed "toru"
application.
// register application on both sides
[JIM] => CREATE APPLICATION toru
[JIM] <= CREATE APPLICATION toru
[JOE] => CREATE APPLICATION toru
[JOE] <= CREATE APPLICATION toru
// JIM initiates communication to JOE
[JIM] => ALTER APPLICATION toru CONNECT joe
[JIM] <= ALTER APPLICATION toru CONNECT joe
// connection establishing ...
[JIM] <= APPLICATION toru CONNECTING joe
// .. and is successful
[JIM] <= APPLICATION toru CONNECTING
// .. and creates one stream
[JIM] <= APPLICATION toru STREAMS joe:1
// and JOE is notified by new stream
[JOE] <= APPLICATION toru STREAMS jim:1
// JIM sends data over stream to JOE
[JIM] => ALTER APPLICATION toru WRITE joe:1 Hello world!
[JIM] <= ALTER APPLICATION toru WRITE joe:1
// stay tuned while data is transmitted...
[JIM] <= APPLICATION toru SENDING joe:1
// .. and you are notified on delivery success
[JIM] <= APPLICATION toru SENDING
// JOE receives notification about the incoming message
[JOE] <= APPLICATION toru RECEIVED jim:1
// .. and reads data from stream
[JOE] => ALTER APPLICATION toru READ jim:1
[JOE] <= ALTER APPLICATION toru READ jim:1 Hello world!
// ... and is notified that stream is empty
[JOE] <= APPLICATION toru RECEIVED
// JOE sends back acknowledgement of message
// A datagram is used because it is not so important to acknowledge
[JOE] => ALTER APPLICATION toru DATAGRAM jim:1 Hello back!
[JOE] <= ALTER APPLICATION toru DATAGRAM jim:1
// Now data is transmitted...
[JOE] <= APPLICATION toru SENDING jim:1=11
// .. and notificed when it was sent (but delivery not assured)
[JOE] <= APPLICATION toru SENDING
// JIM receives datagram notifcation
[JIM] <= APPLICATION toru DATAGRAM joe:1 Hello back!
// JIM decides to end the communication
[JIM] => ALTER APPLICATION toru DISCONNECT joe:1
[JIM] <= ALTER APPLICATION toru DISCONNECT joe:1
// .. and when stream is closed it is notified
[JIM] <= APPLICATION toru STREAMS
// Also JOE receives notification that stream was closed
[JOE] <= APPLICATION toru STREAMS
// JIM unregisters applicaton
[JIM] => DELETE APPLICATION toru
[JIM] <= DELETE APPLICATION toru
// JOE unregisters applicaton
[JOE] => DELETE APPLICATION toru
[JOE] <= DELETE APPLICATION toru
AP2AP
>
Commands
>
Reference
>
Contents
Testing connections
To query the connection status:
- Syntax
-
PING
- Response
-
If successful
PONG
is echoed back - Version
- Protocol 1
Commands
>
Reference
>
Contents
Objects
Skype has the following objects:
USER
The user object has the following properties:
-
HANDLE
-
username, for example:
USER pamela HANDLE pamela
. -
FULLNAME
- user's full name, for example:
USER pamela FULLNAME Jane Doe
. -
BIRTHDAY
- user's birth date in YYYYMMDD format, for example:
USER bitman
BIRTHDAY 19780329
. -
SEX
- example:
USER pamela SEX
UNKNOWN
. Values:-
UNKNOWN
- user has not specified sex in personal profile. -
MALE
-
FEMALE
-
-
LANGUAGE
- name of language, for example:
USER mike LANGUAGE English
.
In protocol 4 with the ISO 639 prefix, example:
USER mike
LANGUAGE en English
. -
COUNTRY
-
name of country, for example:
USER mike COUNTRY Estonia
. In
protocol 4 with the ISO 3166 prefix, example:
USER mike COUNTRY
ee Estonia
. -
PROVINCE
- example:
USER mike PROVINCE Harjumaa
. -
CITY
-
example:
USER mike CITY Tallinn
. -
PHONE_HOME
- example:
USER mike PHONE_HOME 3721111111
. -
PHONE_OFFICE
- example:
USER mike PHONE_OFFICE 3721111111
. -
PHONE_MOBILE
- example:
USER mike PHONE_MOBILE 3721111111
. -
HOMEPAGE
- example:
USER mike HOMEPAGE http://www.joltid.com
. -
ABOUT
-
example:
USER mike ABOUT I am a nice person
. -
HASCALLEQUIPMENT
- always returns
TRUE
. Example:
USER pamela
HASCALLEQUIPMENT TRUE
. -
IS_VIDEO_CAPABLE
- possible values:
True
or
False
-
BUDDYSTATUS
- example:
USER
pamela BUDDYSTATUS 2
. Possible BUDDYSTATUS values: -
0
-
never been in contact list. -
1
-
deleted from contact list. (read-write) -
2
-
pending authorisation. (read-write) -
3
- added
to contact list. -
ISAUTHORIZED
- (read-write) is user
authorized by current user? Example:
USER pamela ISAUTHORIZED
TRUE
. Values: -
TRUE
-
FALSE
-
ISBLOCKED
- (read-write) is user
blocked by current user? Example:
USER spammer ISBLOCKED TRUE
.
Values: -
TRUE
-
FALSE
-
DISPLAYNAME
- example:
USER pamela DISPLAYNAME pam
. -
ONLINESTATUS
- user online status,
for example:
USER mike ONLINESTATUS ONLINE
. Possible
values: -
UNKNOWN
- unknown user. -
OFFLINE
-
user is offline (not connected). Will also be returned if current
user is not authorized by other user to see his/her online status. -
ONLINE
-
user is online. -
AWAY
-
user is away (has been inactive for certain period). -
NA
- user
is not available. -
DND
-
user is in "Do not disturb" mode. -
SKYPEOUT
- user is in the SkypeOut contact list. -
SKYPEME
(Protocol 2) -
LASTONLINETIMESTAMP
- UNIX timestamp, available only for offline user. Example
USER
mike LASTONLINETIMESTAMP 1078959579
. -
CAN_LEAVE_VM
- is it possible to
send voicemail to user? Example:
USER test CAN_LEAVE_VM TRUE
.
Possible values: -
TRUE
-
FALSE
-
SPEEDDIAL
- (read-write) speeddial code assigned to user. -
RECEIVEDAUTHREQUEST
- text message for authorization request; available only when user
asks for authorization. -
MOOD_TEXT
- mood text for user (mood text is only visible to authorised users;
visible in Skype for Windows 2.0). -
ALIASES <text>
- list of assigned aliases (aliases are only visible as a result of
a direct match for alias search). -
TIMEZONE
<offset>
- time offset from GMT in minutes; visible in
Skype for Windows 2.0. See
GETPROFILE TIMEZONE
for more information. -
IS_CF_ACTIVE
- whether the user has
Call Forwarding activated or not. Possible values: -
TRUE
-
FALSE
Most user properties are read-only. The following
properties are read-write and can be modified with the
SET
command:
-
BUDDYSTATUS
-
1 - delete from
buddylist -
2 - add user into
contactlist and ask for authorization:
SET USER echo123
BUDDYSTATUS 2 Please authorize me
-
ISBLOCKED
-
TRUE
-
block user -
FALSE
-
unblock user -
ISAUTHORIZED
-
TRUE
-
authorize user -
FALSE
-
dismiss authorization for user -
SPEEDDIAL
- speeddial code assigned
to user
Objects
>
Reference
>
Contents
PROFILE
Use the
GET PROFILE
command to retrieve
profile information. The
PROFILE
object has the following
properties:
-
PSTN_BALANCE
- (
read only
) SkypeOut balance value -
PSTN_BALANCE_CURRENCY
- (
read only
) SkypeOut currency value -
FULLNAME
- text -
BIRTHDAY
- yyyymmdd, 0 is returned if not set; no partial birthday allowed -
SEX
-
MALE | FEMALE | UNKNOWN
-
LANGUAGES
- [lang[ lang]*] -- lang is a two letter ISO code (en, de, et) -
COUNTRY
-
iso2 name, a two letter ISO code; name - country name -
PROVINCE
- text -
CITY
-
text -
PHONE_HOME
- text -
PHONE_OFFICE
- text -
PHONE_MOBILE
- text -
HOMEPAGE
- text -
ABOUT
-
text -
MOOD_TEXT
- text -
TIMEZONE
- offset is given in minutes from GMT. See
GETPROFILE TIMEZONE
for more information. -
CALL_APPLY_CF
To enable/disable call forwarding - See
Call forwarding -
CALL_NOANSWER_TIMEOUT
Time out on call - See
Call forwarding -
CALL_FORWARD_RULES
See
Call forwarding -
CALL_SEND_TO_VM
To enable/disable
voicemail for forwarded calls - See
Call forwarding
Objects
>
Reference
>
Contents
CALL
The
CALL
object has the following
properties:
-
TIMESTAMP
- time when call was placed (UNIX timestamp), for example
CALL
17 TIMESTAMP 1078958218
-
PARTNER_HANDLE
- for example
CALL 17 PARTNER_HANDLE mike
-
PARTNER_DISPNAME
- for example
CALL 17 PARTNER_DISPNAME Mike Mann
-
CONF_ID
-
if the
CONF_ID>0
the call is a conference call, for
example:
CALL 17 CONF_ID 0
-
TYPE
-
call type, for example:
CALL 17 TYPE OUTGOING_PSTN
.
Possible values: -
INCOMING_PSTN
- incoming call from PSTN -
OUTGOING_PSTN
- outgoing call to PSTN -
INCOMING_P2P
- incoming call from P2P -
OUTGOING_P2P
- outgoing call to P2P -
STATUS
-
call status, for example:
CALL 17 STATUS FAILED
. Possible
values: -
UNPLACED
- call was never placed -
ROUTING
-
call is currently being routed -
EARLYMEDIA
- with pstn it is possible that before a call is established, early
media is played. For example it can be a calling tone or a waiting
message such as all operators are busy. -
FAILED
-
call failed - try to get a
FAILUREREASON
for more
information. -
RINGING
-
currently ringing -
INPROGRESS
- call is in progress -
ONHOLD
-
call is placed on hold -
FINISHED
- call is finished -
MISSED
-
call was missed -
REFUSED
-
call was refused -
BUSY
-
destination was busy -
CANCELLED
(Protocol
2) -
VM_BUFFERING_GREETING
- voicemail greeting is being downloaded -
VM_PLAYING_GREETING
- voicemail greeting is being played -
VM_RECORDING
- voicemail is being recorded -
VM_UPLOADING
- voicemail recording is finished and uploaded into server -
VM_SENT
-
voicemail has successfully been sent -
VM_CANCELLED
- leaving voicemail has been cancelled -
VM_FAILED
- leaving voicemail failed; check
FAILUREREASON
-
VIDEO_STATUS
- possible values: -
VIDEO_NONE
-
VIDEO_SEND_ENABLED
-
VIDEO_RECV_ENABLED
-
VIDEO_BOTH_ENABLED
-
VIDEO_SEND_STATUS
and
VIDEO_RECEIVE_STATUS
- possible values: -
NOT_AVAILABLE
- the client does not have video capability because video is
disabled or a webcam is unplugged). -
AVAILABLE
- the client is video-capable but the video is not running (can
occur during a manual send). -
STARTING
- the video is sending but is not yet running at full speed. -
REJECTED
- the receiver rejects the video feed (can occur during a manual
receive). -
RUNNING
-
the video is actively running. -
STOPPING
- the active video is in the process of stopping but has not halted
yet. -
PAUSED
-
the video call is placed on hold. -
FAILUREREASON
- example:
CALL 17 FAILUREREASON 1
(numeric). -
SUBJECT
-
not used. -
PSTN_NUMBER
- example:
CALL 17 PSTN_NUMBER 372123123
. -
DURATION
- example:
CALL 17 DURATION 0
. -
PSTN_STATUS
- error string from gateway, in the case of a PSTN call, for
example:
CALL 26 PSTN_STATUS 6500 PSTN connection creation
timeout
. -
CONF_PARTICIPANTS_COUNT
- number of non-hosts in the case of a conference call. Possible
values are: -
0
- call
is not a conference. For the host,
CONF_PARTICIPANTS_COUNT
is always 0. -
1
- call
is a former conference -
2, 3, 4
-
call is a conference -
CONF_PARTICIPANT
n
- the username of the nth participant in a conference call,
the call type and status and the displayname of participants who are
not the host. For example:
CALL 59 CONF_PARTICIPANT 1 echo123
INCOMING_P2P INPROGRESS Echo Test Service
. -
VM_DURATION
-
VM_ALLOWED_DURATION
- maximum
duration in seconds allowed to leave voicemail
- Notes
-
Status values for voicemails (
VM_xxx
) and
VM_DURATION/VM_ALLOWED_DURATION
apply to calls which are
forwarded into voicemail. This feature was introduced in protocol 5.
Most call properties are read-only. The following
properties are read-write and can be modified with the
SET
command:
-
STATUS
- for call control. Possible
values: -
ONHOLD
-
hold call -
INPROGRESS
- answer or resume call -
FINISHED
- hang up call -
SEEN
-
sets call as seen, so that a missed call is seen and can be removed
from the missed calls list. -
DTMF
-
sends
VALUE
as DTMF. Permitted symbols in
VALUE
are: {0..9,#,*}. -
JOIN_CONFERENCE
- joins call with another call into conference.
VALUE
is
the ID of another call. -
START_VIDEO_SEND
- starts sending video on a call. -
STOP_VIDEO_SEND
- stops sending video on a call. -
START_VIDEO_RECEIVE
- starts receiving video on a call. -
STOP_VIDEO_RECEIVE
- stops receiving
video on a call.
Objects
>
Reference
>
Contents
MESSAGE
- Version
-
Protocol 1,
deprecated in protocol 3
and replaced
by the
CHATMESSAGE
object. - Properties
-
TIMESTAMP
- time when the message was sent (UNIX
timestamp), for example:
MESSAGE 21 TIMESTAMP 1078958218
-
PARTNER_HANDLE
- for example
MESSAGE 21 PARTNER_HANDLE mike
-
PARTNER_DISPNAME
- for example
MESSAGE 21 PARTNER_DISPNAME Mike Mann
-
CONF_ID
-
not used. -
TYPE
- message type, for example
MESSAGE 21 TYPE TEXT
. Possible
TYPE
values: -
AUTHREQUEST
- authorization request -
TEXT
- IM
or topic set -
CONTACTS
- contacts data -
UNKNOWN
-
other -
STATUS
- message status, for example
MESSAGE 21 STATUS QUEUED
. Possible values: -
SENDING
- message is being sent -
SENT
-
message was sent -
FAILED
-
message sending failed. Try to get a
FAILUREREASON
for more
information. -
RECEIVED
- message has been received -
READ
-
message has been read -
IGNORED
-
message was ignored -
QUEUED
-
message is queued -
FAILUREREASON
- for example
MESSAGE 21 FAILUREREASON 1
(numeric). -
BODY
- message body, for example
MESSAGE 21 BODY Hi, what's up?
Most message properties are read-only. The
following property is read-write and can be modified with the
SET
command:
-
SEEN
- the message is seen and will
be removed from missed messages list. The UI sets this automatically
if auto-popup is enabled for the user.
Objects
>
Reference
>
Contents
CHAT
- Version
- Protocol 3
- Properties
-
NAME
- chat ID, for example
CHAT
#test_l/$6a072ce5537c4044 NAME #test_l/$6a072ce5537c4044
-
TIMESTAMP
- time when chat was created, for example
CHAT
#test_l/$6a072ce5537c4044 TIMESTAMP 1078958218
-
ADDER
-
user who added the current user to chat, for example
CHAT
1078958218 ADDER k6rberebane
-
STATUS
- chat status, for example
CHAT #test_l/$6a072ce5537c4044 STATUS MULTI_SUBSCRIBED
.
Possible values: -
LEGACY_DIALOG
- old style IM -
DIALOG
-
1:1 chat. -
MULTI_SUBSCRIBED
- participant in chat -
UNSUBSCRIBED
- left chat -
POSTERS
-
members who have posted messages, for example
CHAT
#test_l/$6a072ce5537c4044 POSTERS k6rberebane test_3
-
MEMBERS
-
all users who have been there, for example
CHAT
#test_l/$6a072ce5537c4044 MEMBERS k6rberebane test test_2 test_3
-
TOPIC
-
chat topic. Example:
CHAT #test_l/$6a072ce5537c4044 TOPIC API
testimine
-
CHATMESSAGES
- all messages IDs in this chat, for example
CHAT
#test_l/$6a072ce5537c4044 CHATMESSAGES 34, 35, 36, 38, 39
-
ACTIVEMEMBERS
- members who have stayed in chat, for example
CHAT
#test_l/$6a072ce5537c4044 ACTIVEMEMBERS k6rberebane test_2 test_3
-
FRIENDLYNAME
- name shown in chat window title, for example
CHAT
#test_l/$6a072ce5537c4044 FRIENDLYNAME Test Test XX | tere ise ka
-
CHATMESSAGES
- list of chatmessage identifiers -
RECENTCHATMESSAGES
list of
missed/recent chatmessage identifiers
Objects
>
Reference
>
Contents
CHATMESSAGE
- Version
-
Protocol 3. Supersedes the
MESSAGE
object. - Properties
-
TIMESTAMP
- time when message was sent (UNIX timestamp),
for example
MESSAGE 21 TIMESTAMP 1078958218
-
PARTNER_HANDLE
- for example
CHATMESSAGE 21 PARTNER_HANDLE mike
-
PARTNER_DISPNAME
- for example
CHATMESSAGE 21 PARTNER_DISPNAME Mike Mann
-
TYPE
- message type, for example
MESSAGE 21 TYPE TEXT
. Possible values: -
SETTOPIC
- change of chat topic -
SAID
- IM -
ADDEDMEMBERS
- invited someone to chat -
SAWMEMBERS
- chat participant has seen other members -
CREATEDCHATWITH
- chat to multiple people is created -
LEFT
-
someone left chat; can also be a notification if somebody cannot be
added to chat -
UNKNOWN
-
other -
STATUS
- message status, for example
MESSAGE 21 STATUS QUEUED
. Possible values: -
SENDING
- message is being sent -
SENT
-
message was sent -
RECEIVED
- message has been received -
READ
-
message has been read -
LEAVEREASON
- used with
LEFT
type message, for example
CHATMESSAGE 21 LEAVEREASON
UNSUBSCRIBE
. Possible values: -
USER_NOT_FOUND
- user was not found -
USER_INCAPABLE
- user has an older Skype version and cannot join multichat -
ADDER_MUST_BE_FRIEND
- recipient accepts messages from contacts only and sender is not in
his/her contact list -
ADDED_MUST_BE_AUTHORIZED
- recipient accepts messages from authorized users only and sender
is not authorized -
UNSUBSCRIBE
- participant left chat -
BODY
-
message body, for example
CHATMESSAGE 21 BODY Hi, what's up?
-
CHATNAME
- chat that includes the message, for example
#test_3/$b17eb511457e9d20
-
USERS
- people added to chat
Most chatmessage properties are read-only. The
following property is read-write and can be modified with the
SET
command:
-
SEEN
- mark missed chatmessage as
seen and removes chat from missed events.
Objects
>
Reference
>
Contents
VOICEMAIL
- Version
- Protocol 5
- Properties
-
TYPE
- type of voicemail object -
INCOMING
- voicemail received from partner -
OUTGOING
- voicemail sent to partner -
DEFAULT_GREETING
- Skype default greeting from partner -
CUSTOM_GREETING
- partner's recorded custom greeting -
UNKNOWN
-
PARTNER_HANDLE
- username for voicemail sender (for incoming) or recipient (for
outgoing) -
PARTNER_DISPNAME
- user displayname for partner -
STATUS
- current status of voicemail
object -
NOTDOWNLOADED
- voicemail is stored on server (has not been downloaded yet) -
DOWNLOADING
- downloading from server to local machine -
UNPLAYED
- voicemail has been downloaded but not played back yet -
BUFFERING
- buffering for playback -
PLAYING
-
currently played back -
PLAYED
-
voicemail has been played back -
BLANK
-
intermediate status when new object is created but recording has not
begun -
RECORDING
- voicemail currently being recorded -
RECORDED
- voicemail recorded but not yet uploaded to the server -
UPLOADING
- voicemail object is currently being uploaded to server -
UPLOADED
- upload to server finished but not yet deleted; object is also
locally stored -
DELETING
- pending delete -
FAILED
-
downloading voicemail/greeting failed -
UNKNOWN
-
FAILUREREASON
possible values -
MISC_ERROR
-
CONNECT_ERROR
-
NO_VOICEMAIL_PRIVILEGE
-
NO_SUCH_VOICEMAIL
-
FILE_READ_ERROR
-
FILE_WRITE_ERROR
-
RECORDING_ERROR
-
PLAYBACK_ERROR
-
UNKNOWN
-
SUBJECT
-
not used -
TIMESTAMP
-
DURATION
- actual voicemail duration in seconds -
ALLOWED_DURATION
- maximum voicemail
duration in seconds allowed to leave to partner
Objects
>
Reference
>
Contents
APPLICATION
- Properties
-
CONNECTABLE
- query connectable users
-> GET APPLICATION appname CONNECTABLE
<- APPLICATION appname CONNECTABLE [username[ username]*]
-
CONNECTING
- query on-going
connection process after the connection is established. Username is
removed from
CONNECTING
list.
-> GET APPLICATION appname CONNECTING
<- APPLICATION appname CONNECTING [username[ username]*]
-
STREAMS
- query open streams
(connections)
-> GET APPLICATION appname STREAMS
<- APPLICATION appname STREAMS [username:id[ username:id]*]
-
SENDING
- query if currently sending
any data. After the data is sent, the stream name is removed from
the
SENDING
list
-> GET APPLICATION appname RECIEVED
<- APPLICATION appname SENDING [username:id=bytes [username:id bytes]*]
-
Note:
In Skype 1.4x, the
number of bytes reported by the
SENDING
notification
following an
APPLICATION WRITE
is 2 bytes longer than that
which was written.
-> alter application exe write testtest20:1 w
<- ALTER APPLICATION exe WRITE testtest20:1
<- APPLICATION exe SENDING testtest20:1 3
-> alter application exe write testtest20:1 1234567890
<- ALTER APPLICATION exe WRITE testtest20:1
<- APPLICATION exe SENDING testtest20:1 12
-
RECEIVED
- query if there is data
waiting in received buffer. After the data is read from the stream,
the stream name is removed from the
RECEIVED
list.
-> GET APPLICATION appname RECEIVED
<- APPLICATION appname SENDING [username:id=bytes [username:id bytes]*]
-
incoming datagram notification
<- APPLICATION appname DATAGRAM user:id text
- Version
-
Protocol 5
-
Skype for Windows 1.4
GROUP
The
GROUP
object enables users to group
contacts. There are two types of
GROUP
; custom groups and
hardwired groups. The
GROUP
object has the following
properties:
-
TYPE: {CUSTOM
| HARDWIRED}
-
CUSTOM
groups are user-defined and
HARDWIRED
groups are "smart" groups defined by
Skype to manage groups. -
CUSTOM_GROUP_ID
- a persistent ID for custom groups which can be empty at the start
of group creation. -
DISPLAYNAME
- the display name of the group (read-write) -
NROFUSERS
- the number of contacts in this group (read-only) -
NROFUSERS_ONLINE
- the number of contacts online in this group (read-only) -
USERS
- the list of contacts in the
group (read-only)
Following is a description of all group types
defined by Skype:
HARDWIRE GROUPS
are described in the
following table.
|
Contact group type
|
Description
|
|
|
This group contains all users I know about,
|
|
|
This group contains all contacts in my
|
|
|
This group contains Skype contacts in my
|
|
|
This group contains SkypeOut contacts in my
|
|
|
This group contains Skype contacts in my
|
|
|
This group contains contacts in my contactlist
|
|
|
This group contains contacts I have conversed
|
|
|
This group contains contacts who are awating my
|
|
|
This group contains all contacts I have
|
|
|
This group contains all contacts I have
|
|
|
This group contains all contacts in my
|
|
|
This group type is reserved for user-defined
|
Objects
>
Reference
>
Contents
Managing object
properties
Three commands are available for retrieving and
modifing object properties and general parameters:
-
GET
-
general request command to retrieve object properties and general
parameters -
SET
- to
set object properties and modify general parameters -
ALTER
- to alter or perform an
action with an object
- General syntax
-
GET USER <username> property
|
CALL <id>
property
|
MESSAGE <id> property
|
CHAT
<id> property
|
CHATMESSAGE <id> property
|
VOICEMAIL <id> property
-
SET USER <username> property
<value>
|
CALL <id> property <value>
|
MESSAGE <id> property <value>
|
CHAT
<id> property <value>
|
CHATMESSAGE <id>
property <value>
|
VOICEMAIL <id> property
<value>
See the corresponding object information for
available properties and property values:
The commands for managing object properties are:
-
Use the
GET
USER
command
to retrieve information about a user. -
Use the
SET
USER
command
to modify information about a user. -
Use the
GET
CALL
command
to retrieve information about a call. -
Use the
GET
CHAT
command
to retrieve information about a chat. -
Use the
GET
CHATMESSAGE
command
to retrieve information about a
chatmessage. -
The
GET
MESSAGE
command
is deprecated and has been replaced by the
GET CHATMESSAGE
command. -
Commands for the
APPLICATION
object
are described in the
application object
information.
Object properties
>
Reference
>
Contents
GET USER
This command returns property values for a
specified user.
- Syntax
-
GET USER <username> property
- Response
-
USER <username> property <value>
- Parameters
-
<username>
- Skype username to retrieve property -
property
- property name.Availableproperties are:
HANDLE
,
FULLNAME
,
BIRTHDAY
,
SEX
,
LANGUAGE
,
COUNTRY
,
PROVINCE
,
CITY
,
PHONE_HOME
,
PHONE_OFFICE
,
PHONE_MOBILE
,
HOMEPAGE
,
ABOUT
,
HASCALLEQUIPMENT
,
BUDDYSTATUS
,
ISAUTHORIZED
,
ISBLOCKED
,
DISPLAYNAME
,
ONLINESTATUS
,
LASTONLINETIMESTAMP
,
CAN_LEAVE_VM
,
SPEEDDIAL
,
RECEIVEDAUTHREQUEST
(protocol 5). Refer to the
USER object
information for more detail.
- Version
- Protocol 1
- Errors
-
ERROR 7 GET: invalid WHAT
Object name missing or
misspelled -
ERROR 10 Invalid prop
ID and/or
property missing or misspelled. -
ERROR 8 invalid handle
USERNAME
missing or includes a not permitted character . Note: The
GET
USER <target> ONLINESTATUS
command returns the response
OFFLINE
unless the current user is authorized by the target
user to see his/her online status.
- Example
-> GET USER pamela FULLNAME
<- USER pamela FULLNAME Jane Doe
Object properties
>
Reference
>
Contents
SET USER
- Syntax
-
SET USER <target> ISAUTHORIZED TRUE|FALSE
-
allow/disable target to see current user's userstatus
SET
USER <target> ISBLOCKED TRUE|FALSE
- block/unblock target
user
SET USER <target> BUDDYSTATUS 1
- remove
target from contactlist
SET USER <target> BUDDYSTATUS 2
<message>
- add target into contactlist and ask
authorization with message
Object properties
>
Reference
>
Contents
GET CALL
This command returns property values for a
specified call.
- Syntax
-
GET CALL <id> property
- Response
-
CALL <id> property <value>
- Parameters
-
<id>
- call ID (numeric); -
property
- property name.Availableproperties are:
TIMESTAMP (UNIX timestamp)
,
PARTNER_HANDLE
,
PARTNER_DISPNAME
,
CONF_ID
,
TYPE
,
STATUS
,
FAILUREREASON (numeric)
,
SUBJECT (not used)
,
PSTN_NUMBER
,
DURATION
,
PSTN_STATUS
,
CONF_PARTICIPANT n (for non-host in conference only)
,
CONF_PARTICIPANTS_COUNT
. Refer to the
call object
information for more detail.
- Version
- Protocol 1
- Errors
-
ERROR 7 GET: invalid WHAT
Object name missing or
misspelled. -
ERROR 11 Invalid call id
ID
includes other than numeric characters. -
ERROR 12 Unknown call
Call with
specified ID does not exist in current user's call history. -
ERROR 13 Invalid prop
Property
name missing or misspelled. -
ERROR 71 Invalid conference participant
NO
Conference participant's number is not a number or is too
big
- Example
-> GET CALL 1594 TYPE
<- CALL 1594 TYPE OUTGOING_P2P
Object properties
>
Reference
>
Contents
GET CHAT
This command returns property values for a
specified chat.
- Syntax
-
GET CHAT <chat_id> property
- Response
-
CHAT <chat_id> property <value>
- Parameters
-
<chat_id>
- chat identifier; -
property
- property name.Availableproperties are:
NAME
,
TIMESTAMP
,
ADDER
,
STATUS
,
POSTERS
,
MEMBERS
,
TOPIC
,
CHATMESSAGES
,
ACTIVEMEMBERS
,
FRIENDLYNAME
.
See
CHAT object
description for detailed info.
- Version
- Protocol 3
- Errors
-
ERROR 7 GET: invalid WHAT
Object name missing or
misspelled. -
ERROR 105 invalid chat name
Errorin the
CHATNAME
parameter. -
ERROR 106 Invalid PROP
Property
name missing or misspelled.
- Example
-> GET CHAT #bitman/$jessy;eb06e65635359671 NAME
<- CHAT #bitman/$jessy;eb06e65635359671 NAME #bitman/$jessy;eb06e65635359671
Object properties
>
Reference
>
Contents
GET CHATMESSAGE
This command returns property values for a
specified chat message.
- Syntax
-
GET CHATMESSAGE <id> property
- Response
-
CHATMESSAGE <id> property <value>
- Parameters
-
<id>
- chat message ID; -
property
- property name.Availableproperties are:
CHATNAME
,
TIMESTAMP
,
FROM_HANDLE
,
FROM_DISPNAME
,
TYPE
,
USERS
,
LEAVEREASON
,
BODY
,
STATUS
. Refer to the
chatmessage object
information for more detail.
- Version
- Protocol 3
- Example
-> GET CHATMESSAGE 60 CHATNAME
<- CHATMESSAGE 60 CHATNAME #bitman/$jessy;eb06e65631239671
- Errors
-
ERROR 7 GET: invalid WHAT
Object name missing or
misspelled. -
ERROR 14 Invalid message id
Chat
message ID contains not permitted symbols (only numeric are
permitted) -
ERROR 15 Unknown message
Unknown
chat message ID -
ERROR 16 Invalid PROP
Property
name missing or misspelled
Objectproperties
>
Reference
>
Contents
GET MESSAGE
This command returns property values for a
specified message. This command is deprecated since protocol 3, and
was replaced by the
GET CHATMESSAGE
command.
- Syntax
-
GET MESSAGE <id> property
- Parameters
-
<id>
- chat message ID; -
property
- property name.Availableproperties are:
TIMESTAMP (UNIX timestamp)
,
PARTNER_HANDLE
,
PARTNER_DISPNAME
,
CONF_ID (not used)
,
TYPE
,
STATUS
,
FAILUREREASON (numeric)
,
BODY
.
Refer to the
message object
information for more detail.
- Version
-
Protocol 1,
deprecated in protocol 3 - Errors
-
ERROR 7 GET: invalid WHAT
Object name missing or
misspelled. -
ERROR 14 Invalid message id
ID
includes other than numeric characters. -
ERROR 15 Unknown message
Message
with specified ID does not exist in current user's message history. -
ERROR 16 Invalid prop
Property
name missing or misspelled.
- Example
-> GET MESSAGE 159 TYPE
<- MESSAGE 159 TYPE TEXT
GET APPLICATION
For information about the
GET APPLICATION
command, refer to the
application object
information.
Object properties
>
Reference
>
Contents
Managing general
parameters
Use
GET
and
SET
commands to
manage the following general variables:
GET SKYPEVERSION
- Syntax
-
GET SKYPEVERSION
- Response
-
SKYPEVERSION <version>
- Version
- Protocol 1
- Example
-> GET SKYPEVERSION
<- SKYPEVERSION 1.3.0.28
General parameters
>
Reference
>
Contents
GET CURRENT USER
This command gets the username for the currently
logged in user.
- Syntax
-
GET CURRENTUSERHANDLE
- Response
-
CURRENTUSERHANDLE <username>
- Version
- Protocol 1
General parameters
>
Reference
>
Contents
GET USERSTATUS
This command queries or modifies user visiblity
for the current user.
- Syntax
-
GET USERSTATUS
SET USERSTATUS <value>
- Response
-
USERSTATUS <value>
- Parameters
-
<value>
- new userstatus. Possible values:
-
UNKNOWN
-
ONLINE
- current user is online -
OFFLINE
- current user is offline -
SKYPEME
- current user is in "Skype Me" mode
(protocol 2). -
AWAY
- current user is away. -
NA
- current user is not available. -
DND
- current user is in "Do not disturb" mode. -
INVISIBLE
- current user is invisible to others. -
LOGGEDOUT
- current user is logged out. Clients are
detached.
- Version
- Protocol 1
- Errors
-
ERROR 28 Unknown userstatus
Status value is incorrect or
misspelled
- Example
-> SET USERSTATUS OFFLINE
<- USERSTATUS OFFLINE
<- USERSTATUS OFFLINE
-> SET USERSTATUS xxx
<- ERROR 28 Unknown userstatus
General parameters
>
Reference
>
Contents
GET PRIVILEGE
- Syntax
-
GET PRIVILEGE user_privilege
- Response
-
PRIVILEGE user_privilege <value>
- Parameters
-
user_privilege
- possible values: -
SKYPEOUT True or False
-
SKYPEIN True or False
-
VOICEMAIL True or False
- Errors
-
ERROR 40 Unknown privilege
Privilege name is missing or
misspelled
- Version
- Protocol 1
- Example
-> GET PRIVILEGE SKYPEOUT
<- PRIVILEGE SKYPEOUT TRUE
-> GET PRIVILEGE SKYPEIN
<- PRIVILEGE SKYPEIN FALSE
General parameters
>
Reference
>
Contents
GET PROFILE
This command queries the current user's profile
information.
- Syntax
-
GET PROFILE <profile_property>
-
SET PROFILE <profile_property>
<value>
- Response
-
PROFILE profile_property <value>
- Parameters
-
Possible values for each
profile_property
:
-
PSTN_BALANCE
- SkypeOut balance value (read only) -
PSTN_BALANCE_CURRENCY
- currency value (read only) -
FULLNAME
- text -
BIRTHDAY
- yyyymmdd, 0 is returned if not set; no partial
birthday allowed -
SEX - MALE | FEMALE | UNKNOWN
-
LANGUAGES
- [lang[ lang]*] -- lang is a two letter ISO code
(en, de, et) -
COUNTRY
- iso2 name -- iso2 is a two letter ISO code; name
- country name -
PROVINCE
- text -
CITY
- text -
PHONE_HOME
- text -
PHONE_OFFICE
- text -
PHONE_MOBILE
- text -
HOMEPAGE
- text -
ABOUT
- text -
MOOD_TEXT
- text -
TIMEZONE
- Returns a value for the
timezone and calculates offset from GMT as:
(ValueReturnedByTimezone - 24*60*60) / (60*60) = Hours (for example):
USER johndoe TIMEZONE 93600
(93600 - 24*60*60) / (60*60) = +2 (Estonia)
CALL_NOANSWER_TIMEOUT
Time out on call - See
Callforwarding
CALL_NOANSWER_ACTION REJECT|FORWARD|VOICEMAIL
- See
Callforwarding
CALL_FORWARD_RULES
- See
Callforwarding
- Version
-
Protocol 3
-
Skype for Windows
1.4:
FULLNAME, BIRTHDAY, SEX, LANGUAGES, COUNTRY, PROVINCE,
CITY, PHONE_HOME, PHONE_OFFICE, PHONE_MOBILE, HOMEPAGE, ABOUT
. -
Skype for Windows 2.0:
MOOD_TEXT
and
TIMEZONE
.
- Notes
- The current client allows you to set one language only.
- Example
-> GET PROFILE PSTN_BALANCE
<- PROFILE PSTN_BALANCE 5000
-> GET PROFILE PSTN_BALANCE_CURRENCY
<- PROFILE PSTN_BALANCE_CURRENCY EUR
Object properties
>
Reference
>
Contents
SET PROFILE MOOD
TEXT
The
SET PROFILE MOOD TEXT
command changes
the mood text for a user.
- Syntax
-> SET PROFILE MOOD_TEXT Life is great and then you...
- Response
<- PROFILE MOOD_TEXT Life is great and then you...
- Version
- Protocol 5
GET CONNSTATUS
(connection)
This command returns the current network
connection status.
- Syntax
-
GET CONNSTATUS
- Response
-
CONNSTATUS <value>
- Parameters
-
<value>
- possible values:
-
OFFLINE
-
CONNECTING
-
PAUSING
-
ONLINE
- Version
- Protocol 1
- Example
-> GET CONNSTATUS
<- CONNSTATUS ONLINE
General parameters
>
Reference
>
Contents
AUDIO IN
The
GET
command returns the current audio
input device for Skype.
The
SET
command assigns a new
audio input device for Skype.
- Syntax
-
GET AUDIO_IN
SET AUDIO_IN <device_name>
- Response
-
AUDIO_IN <device_name>
- Version
- Protocol 1
- Note
-
Setting a device with an empty name selects the Windows default
device. - Example
-> GET AUDIO_IN
<- AUDIO_IN SB Audigy 2 ZS Audio [DC00]
General parameters
>
Reference
>
Contents
AUDIO OUT
The
GET
command returns the current audio
output device for Skype.
The
SET
command assigns a new
audio output device for Skype.
- Syntax
-
GET AUDIO_OUT
SET AUDIO_OUT <device_name>
- Response
-
AUDIO_OUT <device_name>
- Version
- Protocol 1
- Note
-
Setting a device with an empty name selects the Windows default
device. - Example
-> GET AUDIO_OUT
<- AUDIO_OUT SB Audigy 2 ZS Audio [DC00]
General parameters
>
Reference
>
Contents
RINGER
The
GET
command returns the current
ringing device for Skype. The
SET
command assigns a new
ringing device for Skype.
- Syntax
-
GET RINGER
SET RINGER <device_name>
- Response
-
RINGER <device_name>
- Version
- Skype for Windows 1.3
- Note
-
Setting a device with an empty name selects the Windows default
device. - Example
-> GET RINGER
<- RINGER SB Audigy 2 ZS Audio [DC00]
General parameters
>
Reference
>
Contents
MUTE
This command gets or sets the mute status.
- Syntax
-
GET MUTE
SET MUTE ON|OFF
- Response
-
MUTE ON|OFF
- Version
- Protocol 1
- Notes
-
If there are currently no active calls (call status
INPROGRESS
),
MUTE
is always
OFF
and setting
MUTE ON
has no effect. - Example
-> GET MUTE
<- MUTE OFF
// set mute when no call is active - mute remains OFF
-> SET MUTE ON
<- MUTE OFF
General parameters
>
Reference
>
Contents
SET AVATAR
This command changes the avatar picture for the
user profile.
- Syntax
-
SET AVATAR <id> <filePath + fileName>[:idx]
- Response
-
AVATAR <id> <filePath + fileName>
- Parameters
-
id
- avatar id -
filePath
- avatar file directory. -
fileName:idx
- avatar file may
either be image or .skype file format. IDX refers to the content
number in .skype file formats (0,..)
- Version
-
Skype for Windows 1.3
-
.skype files are
supported in Skype for Windows 1.4 -
Protocol 5 supports changing avatars.
- Errors
-
ERROR 114 Invalid avatar
Avatar id is missing or invalid
-
ERROR 111 File not found
Avatar
file specified does not exist -
ERROR 9901 internal error
Wrong
type of file (for example an audio file or a document) is set to
avatar
- Example
-> SET AVATAR 1 C:Documents and SettingsAdministratorMy DocumentsMy Pictureskitten.jpg
<- AVATAR 1 C:Documents and SettingsAdministratorMy DocumentsMy Pictureskitten.jpg
General parameters
>
Reference
>
Contents
RINGTONE
The
GET
command returns the current
ringtone file for Skype.
The
SET
command assigns a new
ringtone for Skype.
- Syntax
-
GET RINGTONE <id>
-
SET RINGTONE <id> <filePath +
fileName>[:idx]
- Response
-
RINGTONE <id> <filePath + fileName>
- Parameters
-
id
- ringtone id. Currently <id> should always be set
to '1' -
1
-
Default ringtone -
1101
-
Default ringtone -
1102
-
Ringback tone -
1103
-
Busy tone -
1104
-
Dialing tone -
1105
-
Connecting sound -
1202
-
Resume sound -
1203
-
Hangup sound -
1204
-
Incoming message sound -
1205
-
Online alert sound -
filePath
- ringtone file directory. -
fileName:idx
- ringtone file may
either be .wav or .skype file format. IDX refers to the content
number in .skype file formats (0,..)
- Version
-
Skype for Windows 1.3
-
.skype files are
supported since Skype for Windows 1.4 -
Querying ringtone status is supported since
Skype for Windows 1.4
- Errors
-
ERROR 115 Invalid ringtone
Ringtone id is missing or
invalid -
ERROR 111 File not found
Ringtone
file specified does not exist
- Notes
-
If the Skype default ringtone is used, the
GET
command
returns its name with no filepath. -
.skype may be used instead of .wav files and can contain multiple
contents enumerated by integer IDs (idx).
- Example
-> GET RINGTONE 1
<- RINGTONE 1 call_in
-> SET RINGTONE 1 C:/WINDOWS/Media/tada.wav
<- RINGTONE 1 C:/WINDOWS/Media/tada.wav
General parameters
>
Reference
>
Contents
RINGTONE STATUS
This command queries if ringtones are enabled
- Syntax
-
GET RINGTONE <id> STATUS
- Response
-
RINGTONE <id> <ON|OFF>
- Parameters
- See above
General parameters
>
Reference
>
Contents
GET VIDEO IN
The
GET VIDEO IN
command returns the name
of the device to use for video calls.
- Syntax
-> GET VIDE0_IN
- Response
<- VIDEO_IN <devicename>
- Note
-
If no devicename is returned, Skype sets a default value with the
following command:
-> SET VIDEO_IN <devicename>
General parameters
>
Reference
>
Contents
SET PCSPEAKER
If no speakers are connected to a PC, it is
possible to hear incoming Skype calls only when wearing a headset.
Use the
SET PCSPEAKER
command to switch the PC speaker on or
off.
- Syntax
-> GET PCSPEAKER
-> SET PCSPEAKER {ON|OFF}
- Response
<- PCSPEAKER {ON|OFF}
General parameters
>
Reference
>
Contents
SET
AGC
and
SET AEC
Skype uses automatic gain control (AGC) to adjust
microphone level to the volume the user speaks at. Skype uses
automatic echo cancellation (AEC) to eliminate the echo that occurs
if a microphone "hears" the other user's voice on the
loudspeaker.
Important:
Disabling these
functions can impair call quality and is not recommended in standard
implementations. However, some audio devices have in-built AGC/AEC
mechanisms and, in these circumstances, it can be necessary to
deactivate AGC and AEC on Skype. If you disable AGC/AEC on Skype,
ensure that the client defaults to enabled if the audio device is
removed.
To query whether AGC and AEC are on:
- Syntax
-> GET AGC
-> GET AEC
- Response
<- AGC { ON | OFF }
<- AEC { ON | OFF }
To set AGC and AEC on and off:
- Syntax
-> SET AGC ON | OFF
-> SET AEC ON | OFF
- Response
<- AGC ON | OFF
<- AEC ON | OFF
- Error codes
ERROR 569 - GET AEC: target not allowed
ERROR 570 - SET AEC: invalid value
ERROR 571 - GET AGC: target not allowed
ERROR 572 - SET AGC: invalid value
- Version
- Protocol 5
General parameters
>
Reference
>
Contents
Notifications
Notifications are sent by Skype if an object
changes or if the value of a property is requested with a
GET
command. Also, if a property value is changed by a
SET
command, the change is confirmed with a notification. Notifications
occur in the same manner, whether the related change is initiatied by
the Skype UI or by an API client. There are two main types of
notification:
-
Object notifications
occur when an object is created (for example due
to an incoming call or chat), if an object changes, or if a property
is queried. -
Status notifications
are broadcast by Skype after an initial connection
is made or if a parameter changes. These notifications can be
queried at any time with the
GET
command.
Skype object notifications
Skype object notifications are:
Call notifications
Call notifications are sent on incoming calls or
when an active calls changes. Clients can monitor call events to
detect incoming calls and act on them (for example, to answer
automatically).
- Syntax
-
CALL <id> property <value>
- Parameters
-
Refer to the
call object
for available properties and property values.
Objects
>
Notifications
>
Reference
>
Contents
User notifications
User notifications are the most frequent
notifications and include last-seen timestamps and user property
information.
- Syntax
-
USER <id> property <value>
- Parameters
-
Refer to the
user object
for available properties and property values. - Note
-
User notifications are reported also for users who are not in the
contactlist which the client can ignore.
Objects
>
Notifications
>
Reference
>
Contents
Chat notifications
Chat notification is sent when a chat is created,
chat properties or members change, or a new message is posted into
chat. A new message also triggers a chatmessage notification.
- Syntax
-
CHAT <id> property <value>
- Parameters
-
Refer to the
chat object
for available properties and property values.
Objects
>
Notifications
>
Reference
>
Contents
Chatmessage notifications
Chatmessage notification is sent when a new
message arrives. The client can monitor these messages to display
received messages.
- Syntax
-
CHATMESSAGE <id> property <value>
MESSAGE
<id> property <value>
- Parameters
-
Refer to the
chatmessage object
for available properties and property values. - Notes
-
The
MESSAGE
command is deprecated in Protocol 3
Objects
>
Notifications
>
Reference
>
Contents
Voicemail notifications
Voicemail notification is sent when a new
voicemail is received or recorded.
- Syntax
-
VOICEMAIL <id> property <value>
- Parameters
-
Refer to the
voicemail object
for available properties and property values.
Objects
>
Notifications
>
Reference
>
Contents
Application notifications
Application notifications are sent when a new
application requests to connect, or when data is sent or received.
- Syntax
-
APPLICATION <appname> property <value>
- Parameters
-
Refer to the
Application object
for available properties and property values.
Objects
>
Notifications
>
Reference
>
Contents
Status notifications
Skype status notifications are:
Callhistory change notification
This notification occurs when call history changes
and needs to be reloaded. This change occurs when the call history or
a selection of it has been deleted.
- Syntax
-
CALLHISTORYCHANGED
Status
>
Notifications
>
Reference
>
Contents
Instant message history change
This notification occurs when instant message
history changes and needs to be reloaded. It occurs only when all IM
history is deleted.
- Syntax
-
IMHISTORYCHANGED
Status
>
Notifications
>
Reference
>
Contents
Contactlist change notification
This notification occurs if a user is added to or
deleted from contacts or has authorized the current user as a
contact.
- Syntax
-
USER <username> BUDDYSTATUS <status>
- Parameters
-
Refer to the
user object
for available status values. - Example
// User has been added to contacts, pending authorisation.
<- USER pamela BUDDYSTATUS 2
// User has authorized current user
<- USER pamela BUDDYSTATUS 3
// User has been deleted from contacts.
<- USER pamela BUDDYSTATUS 1
Status
>
Notifications
>
Reference
>
Contents
User status notification
- Syntax
-
USERSTATUS status
- Parameters
-
status
- value for user status. Possible values:
-
UNKNOWN
- no status information for current user. -
ONLINE
- current user is online. -
OFFLINE
- current user is offline. -
SKYPEME
- current user is in "Skype Me" mode
(Protocol 2). -
AWAY
- current user is away. -
NA
- current user is not available. -
DND
- current user is in "Do not disturb" mode. -
INVISIBLE
- current user is invisible to others. -
LOGGEDOUT
- current user is logged out. Clients are
detached.
Status
>
Notifications
>
Reference
>
Contents
Connection status
- Syntax
-
CONNSTATUS status
- Parameters
-
status
- value for connection status. Possible values:
-
OFFLINE
-
CONNECTING
-
PAUSING
-
ONLINE
-
LOGGEDOUT
- current user is logged out.
Status
>
Notifications
>
Reference
>
Contents
Current user handle
- Syntax
-
CURRENTUSERHANDLE <username>
- Example
CURRENTUSERHANDLE banana
Status
>
Notifications
>
Reference
>
Contents
Contact list focus nofication
This notification occurs when contactlist focus
changes:
- Syntax
-
CONTACTS FOCUSED username
- when contact gains focus -
CONTACTS FOCUSED
- when loses focus
Status
>
Notifications
>
Reference
>
Contents
Error codes
ERROR CODE [DESC]
Skype sends an error response when it encounters
an issue such as incorrect commands or internal inconsistencies. The
error code is a number that uniquely identifies the error condition
and the
DESC
is an optional brief description of the issue.
Currently the following error codes are defined:
|
Code
|
Description
|
Possible reasons
|
|
1
|
General syntax error
|
Command missing (e.g. " " sent as
|
|
2
|
Unknown command
|
Command spelled incorrect (e.g. "GRT"
|
|
3
|
Search: unknown WHAT
|
Search target is missing or misspelled
|
|
4
|
Empty target not allowed
|
&nspb;
|
|
5
|
Search CALLS: invalid target
|
An unpermitted character (e.g. "!",
|
|
6
|
SEARCH MISSEDCALLS: target not allowed
|
e.g. "SEARCH MISSEDCALLS echo123"
|
|
7
|
GET: invalid WHAT
|
Object/property name missing or misspelled
|
|
8
|
Invalid user handle
|
USERNAME missing or includes a not permitted
|
|
9
|
Unknown user
|
|
|
10
|
Invalid PROP
|
Property name and/or ID missing or misspelled
|
|
11
|
Invalid call id
|
Call ID missing or misspelled (must be a
|
|
12
|
Unknown call
|
Nonexistant call ID used
|
|
13
|
Invalid PROP
|
Returned to command GET CALL id
|
|
14
|
Invalid message id
|
GET - Message ID missing or misspelled (must
|
|
15
|
Unknown message
|
Nonexistant message ID used in GET command
|
|
16
|
Invalid PROP
|
Returned to command GET MESSAGE id
|
|
17
|
(Not in use)
|
|
|
18
|
SET: invalid WHAT
|
Property name missing or misspelled
|
|
19
|
Invalid call id
|
Call ID missing or misspelled (must be a
|
|
20
|
Unknown call
|
Nonexistant call ID used
|
|
21
|
Unknown/disallowed call prop
|
SET CALL value incorrect or misspelled (e.g.
|
|
22
|
Cannot hold this call at the moment
|
Trying to hold a call that is not in progress.
|
|
23
|
Cannot resume this call at the moment
|
Trying to resume/answer a call that is not in
|
|
24
|
Cannot hangup inactive call
|
Trying to hang up a call that is not in
|
|
25
|
Unknown WHAT
|
Property name missing or misspelled (e.g. "SET
|
|
26
|
Invalid user handle
|
Target username missing or includes not
|
|
27
|
Invalid version number
|
Invalid protocol number (e.g. "PROTOCOL
|
|
28
|
Unknown userstatus
|
Unknown or misspelled value for user status
|
|
29
|
SEARCH what: target not allowed
|
Target is not permitted; e.g. "SEARCH
|
|
30
|
Invalid message id
|
SET - Message ID missing or misspelled (must
|
|
31
|
Unknown message id
|
Nonexistant message ID used in SET command
|
|
32
|
Invalid WHAT
|
Property missing or misspelled
|
|
33
|
invalid parameter
|
Unknown or misspelled value for mute (e.g.
|
|
34
|
invalid user handle
|
Target username/number missing (e.g. "CALL
|
|
35
|
Not connected
|
|
|
36
|
Not online
|
|
|
37
|
Not connected
|
|
|
38
|
Not online
|
|
|
39
|
user blocked
|
Destination user is blocked by caller. Also
|
|
40
|
Unknown privilege
|
Privilege is either misspelled or does not
|
|
41
|
Call not active
|
Trying to send DTMF, when call is not active.
|
|
42
|
Invalid DTMF code
|
Invalid DTMF code is sent. Valid symbols for
|
|
43
|
cannot send empty message
|
Empty message is tried to sent, e.g. "MESSAGE
|
|
50
|
cannot set device
|
An error occurred when changing audio device
|
|
51
|
invalid parameter
|
Parameter to READY command is not YES or NO
|
|
52
|
invalid parameter
|
Parameter to HOOK command is not ON or OFF
|
|
53
|
invalid value
|
Parameter to SET AUTOAWAY is not ON or OFF
|
|
66
|
Not connected
|
Skype is not connected i.e. user status is
|
|
67
|
Target not allowed with SEARCH FRIENDS
|
SEARCH FRIENDS had a parameter
|
|
68
|
Access denied
|
|
|
69
|
Invalid open what
|
OPEN command had missing or misspelled TARGET
|
|
70
|
Invalid handle
|
OPEN IM parameter USERNAME is missing or
|
|
71
|
Invalid conference participant NO
|
Conference participant's number is either too
|
|
72
|
Cannot create conference
|
|
|
73
|
too many participants
|
Conference is initiated to more than 4 people.
|
|
74
|
Invalid key
|
Key name in BTN_PRESSED or BTN_RELEASED
|
|
91
|
call error
|
Cannot call an emergency number
|
|
92
|
call error
|
The called number is not a valid PSTN number
|
|
93
|
call error
|
Invalid Skype Name
|
|
94
|
call error
|
Cannot call yourself
|
|
95
|
Internal error
|
Destination user is blocked by caller right
|
|
96
|
Internal error
|
An outgoing call exists in
|
|
97
|
Internal error
|
Internal error
|
|
98
|
Internal error
|
Internal error
|
|
99
|
Internal error
|
Internal error
|
|
100
|
Internal error
|
Internal error
|
|
101
|
Internal error
|
A call to the destination user is already
|
|
103
|
Cannot hold
|
Internal error
|
|
104
|
Cannot resume
|
Internal error
|
|
105
|
Invalid chat name
|
Chat name missing or misspelled
|
|
106
|
Invalid PROP
|
Property name missing or misspelled for CHAT
|
|
107
|
Target not allowed with CHATS
|
No parameters allowed to SEARCH CHATS
|
|
108
|
User not contact
|
TRANSFER can only be initiated to contacts
|
|
109
|
directory doesn't exist
|
Directory given as a parameter to TRANSFER
|
|
110
|
No voicemail capability
|
User given as a parameter to VOICEMAIL command
|
|
111
|
File not found
|
File given as argument to SET AVATAR or SET
|
|
112
|
Too many targets
|
Number of target users for OPEN FILETRANSFER
|
|
113
|
Close: invalid WHAT
|
Invalid argument to CLOSE command
|
|
114
|
Invalid avatar
|
GET or SET AVATAR avatar index invalid
|
|
115
|
Invalid ringtone
|
GET or SET RINGTONE ringtone index invalid
|
|
500
|
CHAT: Invalid chat name given
|
|
|
501
|
CHAT: No chat found for given chat
|
|
|
502
|
CHAT: No action name given
|
|
|
503
|
CHAT: Invalid or unknown action
|
|
|
504
|
CHAT: action failed
|
|
|
505
|
CHAT: LEAVE does not take arguments
|
|
|
506
|
CHAT: ADDMEMBERS: invalid/missing user
|
|
|
507
|
CHAT: CREATE: invalid/missing user handle(s)
|
|
|
508
|
CHAT: CREATE: opening a dialog to the given
|
|
|
509
|
No chat name given
|
|
|
510
|
Invalid/uknown chat name given
|
|
|
511
|
Sending a message to chat failes
|
|
|
512
|
Invalid voicemail id
|
|
|
513
|
Invalid voicemail object
|
|
|
514
|
No voicemail property given
|
|
|
515
|
Assigning speeddial property failed
|
|
|
516
|
Invalid value given to ISAUTHORIZED/ISBLOCKED
|
|
|
517
|
Changing ISAUTHORIZED/ISBLOCKED failed
|
|
|
518
|
Invalid status given for BUDDYSTATUS
|
|
|
519
|
Updating BUDDYSTATUS failed
|
|
|
520
|
CLEAR needs a target
|
|
|
521
|
Invalid/unknown CLEAR target
|
|
|
522
|
CLEAR CHATHISTORY takes no arguments
|
|
|
523
|
CLEAR VOICEMAILHISTORY takes no arguments
|
|
|
524
|
CLEAR CALLHISTORY: missing target argument
|
|
|
525
|
CLEAR CALLHISTORY: invalid handle argument
|
|
|
526
|
ALTER: no object type given
|
|
|
527
|
ALTER: unknown object type given
|
|
|
528
|
VOICEMAIL: No proper voicemail ID given
|
|
|
529
|
VOICEMAIL: Invalid voicemail ID given
|
|
|
530
|
VOICEMAIL: No action given
|
|
|
531
|
VOICEMAIL: Action failed
|
|
|
532
|
VOICEMAIL: Unknown action
|
|
|
534
|
SEARCH GREETING: invalid handle
|
|
|
535
|
SEARCH GREETING: unable to get greeting
|
|
|
536
|
CREATE: no object type given
|
|
|
537
|
CREATE : Unknown object type given.
|
|
|
538
|
DELETE : no object type given.
|
|
|
539
|
DELETE : unknown object type given.
|
|
|
540
|
CREATE APPLICATION : missing of invalid name.
|
|
|
541
|
APPLICATION : Operation Failed.
|
|
|
542
|
DELETE APPLICATION : missing or invalid
|
|
|
543
|
GET APPLICATION : missing or invalid
|
|
|
544
|
GET APPLICATION : missing or invalid property
|
|
|
545
|
ALTER APPLICATION : missing or invalid action.
|
|
|
546
|
ALTER APPLICATION : Missing or invalid action
|
|
|
547
|
ALTER APPLICATION CONNECT: Invalid user handle
|
|
|
548
|
ALTER APPLICATION DISCONNECT: Invalid stream
|
|
|
549
|
ALTER APPLICATION WRITE : Missing or invalid
|
|
|
550
|
ALTER APPLICATION READ : Missing or invalid
|
|
|
551
|
ALTER APPLICATION DATAGRAM : Missing or
|
|
|
552
|
SET PROFILE : invalid property profile given
|
|
|
553
|
SET PROFILE CALL_SEND_TO_VM : no voicemail
|
|
|
555
|
CALL: No proper call ID given
|
|
|
556
|
CALL: Invalid call ID given"
|
|
|
557
|
CALL: No action given
|
|
|
558
|
CALL: Missing or invalid arguments
|
|
|
559
|
CALL: Action failed
|
|
|
560
|
CALL: Unknown action
|
|
|
561
|
SEARCH GROUPS: invalid target"
|
|
|
562
|
SEARCH GROUPS: Invalid group id
|
|
|
563
|
SEARCH GROUPS: Invalid group object
|
|
|
564
|
SEARCH GROUPS: Invalid group property given
|
|
|
569
|
GET AEC: target not allowed"
|
|
|
570
|
SET AEC: invalid value"
|
|
|
571
|
GET AGC: target not allowed"
|
|
|
572
|
SET AGC: invalid value"
|
|
|
9901
|
Internal error
|
Errors
>
Notifications
>
Reference
>
Contents
Skype URI handler
Although not part of the Skype public API, Skype
1.4 includes a set of useful commands which can be initiated using
the skype URI handler.
- General syntax
SKYPE_URI = "skype:" [targets] ["?" query ] ["#" fragment ]
targets = 1* (target / ";" )
target = identity / PSTN
identity = skypename / alias
skypename = 1*(ALPHA / DIGIT / "." / "," )
skypenames = 1*( skypename / ";")
alias = ... ; see ["TechGroup/DataFormats"]
; unicode chars are in UTF-8 and % encoded; see RFC3987 uchar mapping
PSTN = "+" (DIGIT / ALPHA ) *(DIGIT / ALPHA / "-" ) ; supports +800-FLOWERS
query = action [ *( "?" term "=" conditon ) ]
term = 1*ALPHA
condition = 1*unserved ; to be clarified
fragment = 1*unserved ; to be clarified
- Skype for Windows 1.4 version handles the following
skype: ; focus / open skype UI
skype:[targets] ; take default double-click action on contact
skype:[targets]?call ; call to target(s): can be skypename, alias or PSTN
skype:[skypenames]?chat ; start chat/multichat with skypename(s)
skype:[skypename]?voicemail ; leave voicemail to skypename
skype:[skypename]?add ; add skypename to contactlist; show authorization dialog
skype:[skypenames]?sendfile ; open sendfile dialog to skypenames
skype:[skypename]?userinfo ; show info (profile) for [username]
skype:?chat&id=[id][#time] ; open existing multichat with [id];
; time: YYYY-MM-DDThh:mm:ssTZ / YYYY-MM-DDZhh:mm:ss
- Examples
Notice that there is no "//" in skype:
URI -
skype://echo123 does
not
work.
URI handler
>
Reference
>
Contents
Release Notes
This section contains all release notes for
earlier versions of Skype:
Refer to the Developer Notes for 2.0 for details
of changes made in release 2.0.
Skype 1.4 Release Notes
Date: 2005-09-16
Changes and fixes:
-
Support for
application to application messaging -
Set profile
properties -
Support for call
forwarding -
Extended support
to open client windows -
New user object
properties (mood text, alias) -
Extended support
for ringtones -
Support for Skype
URI handler commands -
Support for contact focused notifications
Release notes
>
Reference
>
Contents
Skype 1.3.0.42 release
notes
Date: 2005-06-11
Changes and fixes:
added: Protocol 5
-
Support for
voicemails:
VOICEMAIL, OPEN VOICEMAIL, ALTER VOICEMAIL, SEARCH
VOICEMAILS
-
Support for chat
handling:
CHAT CREATE, OPEN CHAT, ALTER CHAT, SEARCH *CHATS
-
Support for
authorizations:
SEARCH USERSWAITINGMYAUTHORIZATION, SET USER,
ISAUTHORIZED, ISBLOCKED, BUDDYSTATUS
-
Support for
deleting history:
CLEAR CHATHISTORY, VOICEMAILHISTORY,
CALLHISTORY
-
Set ringing
device:
SET/GET RINGER
-
Extended DTMF
support:
SET CALL DTMF
-
Initiate
filetransfer:
OPEN FILETRANSFER
-
Assign speeddial:
USER SPEEDDIAL
-
Change ringtones:
GET/SET RINGTONE
-
Change avatar:
SET
AVATAR
-
Minimize Skype
window:
MINIMIZE
-
bugfix: conference call bugs resolved
Release notes
>
Reference
>
Contents
Skype 1.2.0.11 release
notes
Date: 2005-03-04
Changes and fixes:
-
added: Protocol 4
-
Support for
conferencing: start a conference, add people to conference and
being able to get list of conference call participants and
notifications about these -
Possible to check
SkypeOut balance -
Possible to call
speeddial numbers -
Notifications
about changing audiodevices -
Notification about
deleting IM history -
Changed language
and country to return ISO list instead of countrynames - new
behaviour: from protocol 4 language and country values are
prefixed by ISO codes, for example
'GET USER echo123 COUNTRY' => 'USER
echo123 COUNTRY ee Estonia'
-
Notification about
shutting down Skype -
Support for
SkypeIn -
Registry key to
disable one second timeout for debugging -
Possibility to add
userhandle to
OPEN ADDAFRIEND
-
Support for
command-id (
#1 SET xxx
) -
CALL
FAILUREREASON 1
- documentation error, changed to say "Misc
error" -
change: if
CHATMESSAGE
property is missing, command
'SET
CHATMESSAGE id'
gives the same error for both existing and
nonexisting id -
change:
PSTN_STATUS
gives error string returned from gateway -
change:
HASCALLEQUIPMENT
always returns
TRUE
-
change: Up/down
via phone api autoexpand contactlist groups -
bugfix:
"AUDIO
IN"
and
"AUDIO OUT"
commands do nor
read double byte driver names correctly -
bugfix:
BTN_PRESSED E
fails with error 71 invalid key -
bugfix: Muting
microphone in UI not reflected in API -
bugfix: Conference
to more than 4 participants causes "Range check" errors -
bugfix:
IMHISTORYCHANGED
doesn't work -
bugfix:
SET
MUTE ON
returns always
MUTE OFF
-
bugfix: Cannot
call SkypeOut contacts using speeddial -
bugfix: No
response to empty
CALL
(should return ERROR 34 invalid user
handles -
bugfix: Skype
access control does not deny access to a device -
bugfix: No notification if the user changes
audio device
Release notes
>
Reference
>
Contents
Skype 1.1.0.61 release
notes
Date: 2005-01-12
Changes and fixes:
-
added: Protocol 3
-
change: API - now
allows one ongoing search per client only. Attempting to issue new
search before receiving results of a previous one results in error
72. -
change:
CHAT
and
CHATMESSAGE
properties -
bugfix: API showed
previous user's calls and messages -
bugfix: Fixed
confusing syntax if protocol 3 is used -
bugfix:
SEARCH
MESSAGES
does not return
CHATMESSAGES
value anymore if
protocol 2 is used -
bugfix: API
displayed only first word of message or fullname -
bugfix: In access
control list only one program's permission was remembered -
bugfix: Multichat
message IDs were not returned -
bugfix: Problems
with connecting for older applications -
bugfix: Fixed API
exceptions if Skype is used on two Windows accounts simultaneously -
bugfix: On
Windows98/ME some dll files were shown to use Skype instead of the
respective application -
bugfix: Sometimes API didn't return
'BUDDYSTATUS 1'
messages
Release notes
>
Reference
>
Contents
Skype 1.0.0.94 release
notes
Date: 2004-10-21
Changes and fixes
Release of Skype public API.
Return to top of section
>
Return to contents
how do you quit your subscription?
I keep trying to cancel my subscription and close my account but it won’t let me. The instructions say go to “Manage Account” and select cancel but it doesn’t offer a “Manage Accont ” feature when I sign in. Starting to think I was scammed and ripped off for $10.
I’ve had the same problem for some time. I’m finally canceling my debit card and getting a new number because of this. What a headache! I am never using skype again, and I’m telling everyone else to do the same. There are other options out there.
I paid for 12months in Jan and got cancelled in July, why? No one to talk to!!