321 lines
7.9 KiB
Text
321 lines
7.9 KiB
Text
//Source file: mmccs.idl
|
|
//Date: 7 October 2004
|
|
//Multi Media Call Control for ETSI ES 203 915-04-4 V1.1.1, DES/TISPAN-01005-04-4-OSA, Parlay 5.0
|
|
|
|
#ifndef __MMCCS_DEFINED
|
|
#define __MMCCS_DEFINED
|
|
|
|
|
|
#include "osa.idl"
|
|
#include "mpcc_interfaces.idl"
|
|
#include "common_cc_data.idl"
|
|
#include "mpcc_data.idl"
|
|
|
|
module org {
|
|
|
|
module csapi {
|
|
|
|
module cc {
|
|
|
|
module mmccs {
|
|
|
|
interface IpMultiMediaCall;
|
|
interface IpAppMultiMediaCall;
|
|
interface IpMultiMediaCallLeg;
|
|
interface IpAppMultiMediaCallLeg;
|
|
interface IpMultiMediaStream;
|
|
|
|
enum TpMediaStreamDirection {
|
|
|
|
P_SEND_ONLY,
|
|
P_RECEIVE_ONLY,
|
|
P_SEND_RECEIVE
|
|
};
|
|
|
|
|
|
typedef TpInt32 TpAudioCapabilitiesType;
|
|
|
|
|
|
const TpInt32 P_G711_64K = 1;
|
|
|
|
const TpInt32 P_G711_56K = 2;
|
|
|
|
const TpInt32 P_G722_64K = 4;
|
|
|
|
const TpInt32 P_G722_56K = 8;
|
|
|
|
const TpInt32 P_G722_48K = 16;
|
|
|
|
const TpInt32 P_G7231 = 32;
|
|
|
|
const TpInt32 P_G728 = 64;
|
|
|
|
const TpInt32 P_G729 = 128;
|
|
|
|
const TpInt32 P_G729_ANNEX_A = 256;
|
|
|
|
const TpInt32 P_IS11172_3 = 512;
|
|
|
|
const TpInt32 P_IS13818_3 = 1024;
|
|
|
|
const TpInt32 P_G729_ANNEXB = 2048;
|
|
|
|
const TpInt32 P_G729_ANNEX_A_AND_B = 4096;
|
|
|
|
const TpInt32 P_G7231_ANNEX_C = 8192;
|
|
|
|
const TpInt32 P_GSM_FULLRATE = 16384;
|
|
|
|
const TpInt32 P_GSM_HALFRATE = 32768;
|
|
|
|
const TpInt32 P_GSM_ENHANCED = 65536;
|
|
|
|
typedef TpInt32 TpVideoCapabilitiesType;
|
|
|
|
|
|
const TpInt32 P_H261 = 1;
|
|
|
|
const TpInt32 P_H262 = 2;
|
|
|
|
const TpInt32 P_H263 = 4;
|
|
|
|
const TpInt32 P_IS11172_2 = 8;
|
|
|
|
typedef TpInt32 TpDataCapabilities;
|
|
|
|
|
|
enum TpMediaStreamEventType {
|
|
|
|
P_MEDIA_STREAM_ADDED,
|
|
P_MEDIA_STREAM_SUBTRACTED,
|
|
P_MEDIA_STREAM_QOS_CLASS_CHANGED
|
|
};
|
|
|
|
|
|
struct TpCallSuperviseVolume {
|
|
TpInt32 VolumeQuantity;
|
|
TpInt32 VolumeUnit;
|
|
};
|
|
|
|
|
|
enum TpMediaStreamDataTypeRequestType {
|
|
|
|
P_AUDIO_CAPABILITIES,
|
|
P_VIDEO_CAPABILITIES,
|
|
P_DATA_CAPABILITIES
|
|
};
|
|
|
|
|
|
union TpMediaStreamDataTypeRequest switch(TpMediaStreamDataTypeRequestType) {
|
|
case P_AUDIO_CAPABILITIES: TpAudioCapabilitiesType Audio;
|
|
case P_VIDEO_CAPABILITIES: TpVideoCapabilitiesType Video;
|
|
case P_DATA_CAPABILITIES: TpDataCapabilities Data;
|
|
};
|
|
|
|
|
|
struct TpMediaStreamRequest {
|
|
TpMediaStreamDirection Direction;
|
|
TpMediaStreamDataTypeRequest DataTypeRequest;
|
|
TpCallMonitorMode MediaMonitorMode;
|
|
TpMediaStreamEventType EventType;
|
|
};
|
|
|
|
|
|
typedef sequence <TpMediaStreamRequest> TpMediaStreamRequestSet;
|
|
|
|
|
|
typedef TpMediaStreamDataTypeRequest TpMediaStreamDataType;
|
|
|
|
|
|
struct TpMediaStream {
|
|
TpMediaStreamDirection Direction;
|
|
TpMediaStreamDataType DataType;
|
|
TpSessionID ChannelSessionID;
|
|
IpMultiMediaStream MediaStream;
|
|
};
|
|
|
|
|
|
typedef sequence <TpMediaStream> TpMediaStreamSet;
|
|
|
|
|
|
struct TpNotificationMediaRequest {
|
|
TpCallNotificationScope MediaNotificationScope;
|
|
TpMediaStreamRequestSet MediaStreamsRequested;
|
|
};
|
|
|
|
|
|
struct TpMediaNotificationRequested {
|
|
TpNotificationMediaRequest AppNotificationMediaRequest;
|
|
TpInt32 AssignmentID;
|
|
};
|
|
|
|
|
|
typedef sequence <TpMediaNotificationRequested> TpMediaNotificationRequestedSet;
|
|
|
|
|
|
const TpInt32 P_UMTS_AMR_NB = 131072;
|
|
|
|
const TpInt32 P_UMTS_AMR_WB = 262144;
|
|
|
|
const TpInt32 P_IS14496_2 = 16;
|
|
|
|
|
|
struct TpMultiMediaCallIdentifier {
|
|
IpMultiMediaCall MMCallReference;
|
|
TpSessionID MMCallSessionID;
|
|
};
|
|
|
|
|
|
struct TpMultiMediaCallLegIdentifier {
|
|
IpMultiMediaCallLeg MMCallLegReference;
|
|
TpSessionID MMCallLegSessionID;
|
|
};
|
|
|
|
|
|
typedef sequence <TpMultiMediaCallIdentifier> TpMultiMediaCallIdentifierSet;
|
|
|
|
|
|
enum TpAppMultiMediaCallBackRefType {
|
|
|
|
P_APP_CALLBACK_UNDEFINED,
|
|
P_APP_MULTIMEDIA_CALL_CALLBACK,
|
|
P_APP_CALL_LEG_CALLBACK,
|
|
P_APP_CALL_AND_CALL_LEG_CALLBACK
|
|
};
|
|
|
|
|
|
typedef sequence <IpAppMultiMediaCallLeg> TpAppMultiMediaCallLegRefSet;
|
|
|
|
|
|
struct TpAppMultiMediaCallLegCallBack {
|
|
IpAppMultiMediaCall AppMultiMediaCall;
|
|
TpAppMultiMediaCallLegRefSet AppCallLegSet;
|
|
};
|
|
|
|
|
|
union TpAppMultiMediaCallBack switch(TpAppMultiMediaCallBackRefType) {
|
|
case P_APP_MULTIMEDIA_CALL_CALLBACK: IpAppMultiMediaCall AppMultiMediaCall;
|
|
case P_APP_CALL_LEG_CALLBACK: IpAppMultiMediaCallLeg AppMultiMediaCallLeg;
|
|
case P_APP_CALL_AND_CALL_LEG_CALLBACK: TpAppMultiMediaCallLegCallBack AppMultiMediaCallAndCallLeg;
|
|
default: short Dummy;
|
|
};
|
|
|
|
|
|
typedef sequence <TpMultiMediaCallLegIdentifier> TpMultiMediaCallLegIdentifierSet;
|
|
|
|
|
|
|
|
|
|
interface IpAppMultiMediaCall : mpccs::IpAppMultiPartyCall {
|
|
void superviseVolumeRes (
|
|
in TpSessionID callSessionID,
|
|
in TpCallSuperviseReport report,
|
|
in TpCallSuperviseVolume usedVolume,
|
|
in TpDataSessionQosClass qualityOfService
|
|
);
|
|
|
|
void superviseVolumeErr (
|
|
in TpSessionID callSessionID,
|
|
in TpCallError errorIndication
|
|
);
|
|
|
|
};
|
|
|
|
|
|
interface IpAppMultiMediaCallLeg : mpccs::IpAppCallLeg {
|
|
void mediaStreamMonitorRes (
|
|
in TpSessionID callLegSessionID,
|
|
in TpMediaStreamSet streams,
|
|
in TpMediaStreamEventType type
|
|
);
|
|
|
|
};
|
|
|
|
|
|
interface IpMultiMediaStream : IpService {
|
|
void subtract (
|
|
in TpSessionID mediaStreamSessionID
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
};
|
|
|
|
|
|
interface IpMultiMediaCallLeg : mpccs::IpCallLeg {
|
|
void mediaStreamAllow (
|
|
in TpSessionID callLegSessionID,
|
|
in TpSessionIDSet mediaStreamList
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
void mediaStreamMonitorReq (
|
|
in TpSessionID callLegSessionID,
|
|
in TpMediaStreamRequestSet mediaStreamEventCriteria
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_CRITERIA,P_INVALID_EVENT_TYPE);
|
|
|
|
TpMediaStreamSet getMediaStreams (
|
|
in TpSessionID callLegSessionID
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
};
|
|
|
|
|
|
interface IpMultiMediaCall : mpccs::IpMultiPartyCall {
|
|
void superviseVolumeReq (
|
|
in TpSessionID callSessionID,
|
|
in TpCallSuperviseVolume volume,
|
|
in TpCallSuperviseTreatment treatment
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
};
|
|
|
|
|
|
interface IpAppMultiMediaCallControlManager : mpccs::IpAppMultiPartyCallControlManager {
|
|
TpAppMultiMediaCallBack reportMediaNotification (
|
|
in TpMultiMediaCallIdentifier callReference,
|
|
in TpMultiMediaCallLegIdentifierSet callLegReferenceSet,
|
|
in TpMediaStreamSet mediaStreams,
|
|
in TpMediaStreamEventType type,
|
|
in TpDataSessionQosClass qualityOfService,
|
|
in TpAssignmentID assignmentID
|
|
);
|
|
|
|
};
|
|
|
|
|
|
interface IpMultiMediaCallControlManager : mpccs::IpMultiPartyCallControlManager {
|
|
TpAssignmentID createMediaNotification (
|
|
in IpAppMultiMediaCallControlManager appInterface,
|
|
in TpNotificationMediaRequest notificationMediaRequest
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_CRITERIA,P_INVALID_INTERFACE_TYPE,P_INVALID_EVENT_TYPE);
|
|
|
|
void destroyMediaNotification (
|
|
in TpAssignmentID assignmentID
|
|
)
|
|
raises (TpCommonExceptions);
|
|
|
|
void changeMediaNotification (
|
|
in TpAssignmentID assignmentID,
|
|
in TpNotificationMediaRequest notificationMediaRequest
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID,P_INVALID_CRITERIA,P_INVALID_EVENT_TYPE);
|
|
|
|
TpMediaNotificationRequestedSet getMediaNotification ()
|
|
raises (TpCommonExceptions);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
#endif
|