You are here: CSP API Reference > 1 EXS & SwitchKit API Messages > Play File Start 0x011B
SwitchKit Name
Type
EXS API and SwitchKit API message
Description
NOTE: This message applies to the DSP Series 2 card only.
Use this message to start playing a file.
You can either specify the channel and the DSP Series 2 card, or let the Matrix Controller choose the DSP card by leaving the DSP slot set to 0xFF. The Matrix Controller reports back which DSP Series 2 card has been selected.
If you are accessing files from an external server, you must send the Generic Card Configure message (0x0122) to set the Vocabulary Index File before you send this message, because you must identify a file’s ID and location before you can play it. Internal recordings are an exception to this rule. Internal recordings can be played without having their IDs in the Vocabulary Index File.
The Play File Start message may use File IDs from 0x00 to 0xFFFFFFFE. 0xFFFFFFFF is reserved by Excel for internal use, except when using media streaming over RTP, when the range is up to 0x0100000.
When recording a conference or playing a file to a conference, use the Conference AIB instead of the Channel AIB.
Sent by
Host Application
Related API Messages
Play File Modify, Play File Stop
SwitchKit Code
C Structure
typedef struct {
UBYTE AddrInfo[30];
UBYTE FileCount;
UBYTE DataType;
UBYTE TLVCount;
UBYTE Data[220];
} XL_PlayFileStart;
C Structure Response
typedef struct {
unsigned short Status;
UBYTE reserved[13];
UBYTE AddrInfo[251];
} XL_PlayFileStartAck;
C++ Class
class XLC_PlayFileStart : public XLC_OutboundMessage {
public:
const UBYTE *getAddrInfo() const;
UBYTE *getAddrInfo();
void setAddrInfo(UBYTE *x);
UBYTE getChannelSlot() const;
void setChannelSlot(UBYTE x);
XBYTE getConferenceID() const;
void setConferenceID(XBYTE x);
XBYTE getParentConferenceID() const;
void setParentConferenceID(XBYTE x);
XBYTE getChildConferenceID() const;
void setChildConferenceID(XBYTE x);
XBYTE getSpan() const ;
void setSpan(XBYTE x) ;
UBYTE getChannel() const;
void setChannel(UBYTE x);
UBYTE getFileCount() const ;
void setFileCount(UBYTE x) {;
UBYTE getDataType() const ;
void setDataType(UBYTE x) ;
UBYTE getTLVCount() const ;
void setTLVCount(UBYTE x) ;
const UBYTE *getData() const ;
UBYTE *getData() ;
void setData(UBYTE *x) ;
};
C++ Class Response
class XLC_PlayFileStartAck : public XLC_OutboundMessage {
public:
unsigned short getStatus() const
void setStatus(unsigned short x)
const UBYTE *getAddrInfo() const;
UBYTE *getAddrInfo();
void setAddrInfo(UBYTE *x);
UBYTE getChannelSlot() const;
void setChannelSlot(UBYTE x);
XBYTE getConferenceID() const;
void setConferenceID(XBYTE x);
XBYTE getParentConferenceID() const;
void setParentConferenceID(XBYTE x);
XBYTE getChildConferenceID() const;
void setChildConferenceID(XBYTE x);
UBYTE getConferenceSlot() const ;
void setConferenceSlot(UBYTE x);
XBYTE getSpan() const ;
void setSpan(XBYTE x) ;
UBYTE getChannel() const;
void setChannel(UBYTE x);
;
Hex API Message Format
MESSAGE (White) |
RESPONSE (Gray) |
||
Byte |
Field Description |
Byte |
Field Description |
0 |
Frame (0xFE) |
0 |
Frame (0xFE) |
1, 2 |
Length (0x00NN) |
1, 2 |
Length (0x00NN) |
3, 4 |
Message Type (0x011B) |
3, 4 |
Message Type (0x011B) |
5 |
Reserved (0x00) |
5 |
Reserved (0x00) |
6 |
Sequence Number |
6 |
Same Sequence Number |
7 |
Logical Node ID |
7 |
Logical Node ID |
: |
AIB Address Method 0x00 - Individual AEs |
||
Number of AEs to follow |
|||
AEs Use one of the following:
and, if playing file to a conference,
Note: If the slot is set to 0xFF, the Matrix Controller chooses the slot. |
8, 9 |
0x0001 Invalid TLV Data Software can't find the TLV Data Buffer. This can also 0x0003 Invalid number of TLVs There are no TLVs in the message. 0x0004 Invalid TLV Length The TLV length is different from what is expected. 0x0006 Invalid TLV Unknown TLV 0x000D Mandatory TLVs missing One or more mandatory TLVs are missing
Also see Common Response Status Values in the API Reference |
|
10-14 |
AIB (same as message) |
||
15 |
Checksum |
||
: |
Number of files |
||
: |
Data Type 0x00 TLVs |
||
: |
Number of TLVs to Follow |
||
: |
TLVs
Mandatory: For a single file:
If the File ID is 0x00100000 or higher, you must also send:
For multiple files: You must send one TLV for each file, and all File IDs must be lower than 0x00100000.
Optional
Media Streaming over RTP Mandatory TLVs 0x0687 - Enable RTP for Play/Record File 0x29FF Media Local End Point Information 0x2A00 Media Remote End Point Information 0x2A01 Media Per Stream Information 0x2A02 Media Per Codec Information 0x2A0E Media Connection Address
NOTE: if using RTP, the File ID must be below 0x00100000, so the File Format and File Location TLVs are not required.
|
||
: |
Checksum |