Introduction
Icareus Playout platform uses a custom protocol to exchange information with 3rd party management systems as well as with Icareus Playout Management Console. The main uses for the protocol are:
- to retrieve information of the status of the server
- to control and manage the server
The Icareus Playout Java API is a java library that "wraps" this protocol to give an abstraction layer for programmers. The Protocol can naturally be used directly as well.
The protocol is described in the following chapters and examples are given how to use it.
Description
TCP connection (SSL) should be established with Icareus Server to perform any communications.
Several Playout modules are responsible for processing Playout Protocol commands. The below table specifies TCP ports for each module. These ports should be used to connect to a particular module for command execution.

Port
Module
2001
playout-scheduler
5000
eit-update
5555
playout-admin
Commands are plain text strings transmitted as a sequence of bytes representing UTF-8 encoding.
The command structure is as follows:
COMMAND_NAME<\r\n>
HeaderParamName1: HeaderParamValue1<\r\n>
HeaderParamName2: HeaderParamValue2<\r\n>
HeaderParamNameN: HeaderParamValueN<\r\n>
Content-Length: value<\r\n>
<\r\n>
BODY<\r\n>
<\r\n>
The response structure is as follows:
STATUS_CODE STATUS_MESSAGE<\r\n>
HeaderParamName1: HeaderParamValue1<\r\n>
HeaderParamName2: HeaderParamValue2<\r\n>
HeaderParamNameN: HeaderParamValueN<\r\n>
Content-Length: value<\r\n>
<\r\n>
BODY<\r\n>
<\r\n>
Status codes description:
Status code
Description
200
OK
220
Service is ready
400
The request could not be understood by the server due to malformed syntax
401
Client authentication failed
402
The requested feature is not supported on the server.
403
Request was syntactically correct, but contained invalid data
404
The requested resource was not found on the server
408
The client did not produce a request within the time that the server was prepared to wait
409
The request could not be completed due to a conflict with the current state of the resource
410
Clip processing error
453
Client requested more bandwidth than is available
500
The server encountered an unexpected condition which prevented it from fulfilling the request
501
The requested feature is not implemented on the server
The first message Icareus Server sends back to a client is the welcome message.
The welcome message example:
220 Playout playout-admin
Version: 4.4.0.4
This is a successful reply from playout-admin module of version 4.4.0.4.

Here is a Java example of retriving server information:
javax.net.ssl.SSLContext sslContext = javax.net.ssl.SSLContext.getInstance("SSL");
// class PMCTrustManager implements javax.net.ssl.X509TrustManager
sslContext.init(null, new javax.net.ssl.TrustManager[]{new PMCTrustManager()}, null);
javax.net.ssl.SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
// host is the address of the Playout server, 5555 is the playout-admin module port
java.net.Socket socket = sslSocketFactory.createSocket(host, 5555);
java.io.InputStream inStream = socket.getInputStream();
java.io.OutputStream outStream = socket.getOutputStream();
outStream.write(("GET_SERVER_INFO\r\n\r\n").getBytes());
outStream.flush();
java.io.ByteArrayOutputStream receive = new java.io.ByteArrayOutputStream();
int i;
while ((i = inStream.read()) != -1) receive.write(i);
String str = new String(receive.toByteArray(), "UTF-8");
System.out.println("Response: " + str);
Status of Icareus Playout
Playout-admin module is responsible for processing this command.
Command:
GET_SERVER_INFO
Response example:
200 Sending server info
License-Features: 1,3,5,16
Dongle-Id: 264020675
Expiration-Date: 2012-12-12 00:00:00
Licence-Version: 4.4
Service: playout-admin,1,1,4.4.0.2
Service: playout-av-input,0,0,4.4.0.2
Service: playout-dsmcc-dc-input,0,0,4.4.0.2
Service: playout-dsmcc-input,0,0,4.4.0.2
Service: playout-dvbh-esg,0,0,4.4.0.2
Service: playout-eit,1,1,4.4.0.2
Service: playout-eit-update,1,1,4.4.0.2
Service: playout-flute-streamer,0,0,4.4.0.2
Service: playout-ip-input,0,0,4.4.0.2
Service: playout-ip-streamer,0,0,4.4.0.2
Service: playout-media-storage,0,0,4.4.0.2
Service: playout-meta-admin,1,1,4.4.0.2
Service: playout-mpeg-record,0,0,4.4.0.2
Service: playout-muxer,1,1,4.4.0.2
Service: playout-scheduler,1,1,4.4.0.2
Service: playout-sipsi,1,1,4.4.0.2
Service: playout-ts-input,0,0,4.4.0.2
Service: playout-vdcp,0,0,4.4.0.2
Service: playout-esgen-player,0,0,4.4.0.2
Service: playout-esgen-middle,0,0,4.4.0.2
Is-Installation: 0
Response parameters description:
Parameter
Description
License-Features
Playout License Features
Dongle-Id
dongle identification key installed on the server
Expiration-Date
Server license expiration date
Licence-Version
Server license version
Service
service status
Parameter 1 - service name
Parameter 2 - 1 if the service is running, 0 otherwise
Parameter 3 - 1 if the service is enabled on system boot, 0 otherwise
Parameter 4 - service version
Is-Installation
1 if server installation procedure is in progress, 0 otherwise.