//Source file: gms.idl //Date: 11 October 2004 //Generic Messaging Interfaces and Data Types for ETSI ES 203 915-09 V1.1.1, DES/TISPAN-01005-09-OSA, Parlay 5.0 #ifndef __GMS_DEFINED #define __GMS_DEFINED #include "osa.idl" module org { module csapi { module gms { interface IpAppMessagingManager ; interface IpMailbox ; interface IpMailboxFolder ; enum TpMessagingFault { P_MESSAGING_FAULT_UNDEFINED }; enum TpMessagingEventName { P_EVENT_GMS_NAME_UNDEFINED, P_EVENT_GMS_NEW_MESSAGE_ARRIVED }; enum TpMessageStatus { P_MESSAGING_MESSAGE_STATUS_READ_MESSAGE, P_MESSAGING_MESSAGE_STATUS_UNREAD_MESSAGE, P_MESSAGING_MESSAGE_STATUS_FORWARDED_MESSAGE, P_MESSAGING_MESSAGE_STATUS_REPLIED_TO_MESSAGE, P_MESSAGING_MESSAGE_STATUS_SAVED_OR_UNSENT_MESSAGE, P_MESSAGING_MESSAGE_STATUS_NOTIFICATION_THAT_A_MESSAGE_WAS_DELIVERED, P_MESSAGING_MESSAGE_STATUS_NOTIFICATION_THAT_A_MESSAGE_WAS_READ, P_MESSAGING_MESSAGE_STATUS_NOTIFICATION_THAT_A_MESSAGE_WAS_NOT_DELIVERED, P_MESSAGING_MESSAGE_STATUS_NOTIFICATION_THAT_A_MESSAGE_WAS_NOT_READ }; enum TpMessagePriority { P_MESSAGING_MESSAGE_PRIORITY_UNDEFINED, P_MESSAGING_MESSAGE_PRIORITY_HIGH, P_MESSAGING_MESSAGE_PRIORITY_LOW }; enum TpMessageInfoPropertyName { P_MESSAGING_MESSAGE_UNDEFINED, P_MESSAGING_MESSAGE_ID, P_MESSAGING_MESSAGE_SUBJECT, P_MESSAGING_MESSAGE_DATE_SENT, P_MESSAGING_MESSAGE_DATE_RECEIVED, P_MESSAGING_MESSAGE_DATE_CHANGED, P_MESSAGING_MESSAGE_SENT_FROM, P_MESSAGING_MESSAGE_SENT_TO, P_MESSAGING_MESSAGE_CC_TO, P_MESSAGING_MESSAGE_BCC_TO, P_MESSAGING_MESSAGE_SIZE, P_MESSAGING_MESSAGE_PRIORITY, P_MESSAGING_MESSAGE_FORMAT, P_MESSAGING_MESSAGE_FOLDER, P_MESSAGING_MESSAGE_STATUS }; enum TpMessageFormat { P_MESSAGING_MESSAGE_FORMAT_UNDEFINED, P_MESSAGING_MESSAGE_FORMAT_TEXT, P_MESSAGING_MESSAGE_FORMAT_BINARY, P_MESSAGING_MESSAGE_FORMAT_UUENCODED, P_MESSAGING_MESSAGE_FORMAT_MIME, P_MESSAGING_MESSAGE_FORMAT_WAVE, P_MESSAGING_MESSAGE_FORMAT_AU }; union TpMessageInfoProperty switch(TpMessageInfoPropertyName) { case P_MESSAGING_MESSAGE_ID: TpString MessagingMessageID; case P_MESSAGING_MESSAGE_SUBJECT: TpString MessagingMessageSubject; case P_MESSAGING_MESSAGE_DATE_SENT: TpDateAndTime MessagingMessageDateSent; case P_MESSAGING_MESSAGE_DATE_RECEIVED: TpDateAndTime MessagingMessageDateReceived; case P_MESSAGING_MESSAGE_DATE_CHANGED: TpDateAndTime MessagingMessageDateChanged; case P_MESSAGING_MESSAGE_SENT_FROM: TpAddress MessagingMessageSentFrom; case P_MESSAGING_MESSAGE_SENT_TO: TpAddress MessagingMessageSentTo; case P_MESSAGING_MESSAGE_CC_TO: TpAddress MessagingMessageCCTo; case P_MESSAGING_MESSAGE_BCC_TO: TpAddress MessagingMessageBCCTo; case P_MESSAGING_MESSAGE_SIZE: TpInt32 MessagingMessageSize; case P_MESSAGING_MESSAGE_PRIORITY: TpMessagePriority MessagingMessagePriority; case P_MESSAGING_MESSAGE_FORMAT: TpMessageFormat MessagingMessageFormat; case P_MESSAGING_MESSAGE_FOLDER: TpString MessagingMessageFolder; case P_MESSAGING_MESSAGE_STATUS: TpMessageStatus MessagingMessageStatus; default: short Dummy; }; typedef sequence TpMessageInfoPropertySet; enum TpMailboxInfoPropertyName { P_MESSAGING_MAILBOX_UNDEFINED, P_MESSAGING_MAILBOX_ID, P_MESSAGING_MAILBOX_OWNER, P_MESSAGING_MAILBOX_FOLDER, P_MESSAGING_MAILBOX_DATE_CREATED, P_MESSAGING_MAILBOX_DATE_CHANGED }; union TpMailboxInfoProperty switch(TpMailboxInfoPropertyName) { case P_MESSAGING_MAILBOX_ID: TpAddress MessagingMailboxID; case P_MESSAGING_MAILBOX_OWNER: TpString MessagingMailboxOwner; case P_MESSAGING_MAILBOX_FOLDER: TpString MessagingMailboxFolder; case P_MESSAGING_MAILBOX_DATE_CREATED: TpDateAndTime MessagingMailboxDateCreated; case P_MESSAGING_MAILBOX_DATE_CHANGED: TpDateAndTime MessagingMailboxDateChanged; default: short Dummy; }; typedef sequence TpMailboxInfoPropertySet; struct TpGMSNewMessageArrivedInfo { TpAddress MailboxID; TpString FolderID; TpString MessageID; TpInt32 NumberOfProperties; }; union TpMessagingEventInfo switch(TpMessagingEventName) { case P_EVENT_GMS_NAME_UNDEFINED: TpString EventNameUndefined; case P_EVENT_GMS_NEW_MESSAGE_ARRIVED: TpGMSNewMessageArrivedInfo EventGMSNewMessageArrived; }; struct TpGMSNewMessageArrivedCriteria { TpAddress MailboxID; TpString AuthenticationInfo; }; union TpMessagingEventCriteria switch(TpMessagingEventName) { case P_EVENT_GMS_NEW_MESSAGE_ARRIVED: TpGMSNewMessageArrivedCriteria EventGMSNewMessageArrived; default: short Dummy; }; enum TpFolderInfoPropertyName { P_MESSAGING_FOLDER_UNDEFINED, P_MESSAGING_FOLDER_ID, P_MESSAGING_FOLDER_MESSAGE, P_MESSAGING_FOLDER_SUBFOLDER, P_MESSAGING_FOLDER_DATE_CREATED, P_MESSAGING_FOLDER_DATE_CHANGED }; union TpFolderInfoProperty switch(TpFolderInfoPropertyName) { case P_MESSAGING_FOLDER_ID: TpString MessagingFolderID; case P_MESSAGING_FOLDER_MESSAGE: TpString MessagingFolderMessage; case P_MESSAGING_FOLDER_SUBFOLDER: TpString MessagingFolderSubfolder; case P_MESSAGING_FOLDER_DATE_CREATED: TpDateAndTime MessagingFolderDateCreated; case P_MESSAGING_FOLDER_DATE_CHANGED: TpDateAndTime MessagingFolderDateChanged; default: short Dummy; }; typedef sequence TpFolderInfoPropertySet; exception P_GMS_INVALID_FOLDER_ID { TpString ExtraInformation; }; exception P_GMS_INSUFFICIENT_PRIVILEGE { TpString ExtraInformation; }; exception P_GMS_INVALID_AUTHENTICATION_INFORMATION { TpString ExtraInformation; }; exception P_GMS_INVALID_MAILBOX { TpString ExtraInformation; }; exception P_GMS_INVALID_MESSAGE_ID { TpString ExtraInformation; }; exception P_GMS_LOCKING_LOCKED_MAILBOX { TpString ExtraInformation; }; exception P_GMS_MESSAGE_NOT_REMOVED { TpString ExtraInformation; }; exception P_GMS_NUMBER_NOT_POSITIVE { TpString ExtraInformation; }; exception P_GMS_UNLOCKING_UNLOCKED_MAILBOX { TpString ExtraInformation; }; exception P_GMS_MAILBOX_LOCKED { TpString ExtraInformation; }; exception P_GMS_CANNOT_UNLOCK_MAILBOX { TpString ExtraInformation; }; exception P_GMS_PROPERTY_NOT_SET { TpString ExtraInformation; }; exception P_GMS_FOLDER_IS_OPEN { TpString ExtraInformation; }; exception P_GMS_MAILBOX_OPEN { TpString ExtraInformation; }; typedef TpLongString TpMessage; struct TpMailboxIdentifier { IpMailbox Mailbox; TpSessionID SessionID; }; struct TpMailboxFolderIdentifier { IpMailboxFolder MailboxFolder; TpSessionID SessionID; }; interface IpMessagingManager : IpService { TpMailboxIdentifier openMailbox ( in TpAddress mailboxID, in TpString authenticationInfo ) raises (TpCommonExceptions,P_GMS_INVALID_MAILBOX,P_GMS_INVALID_AUTHENTICATION_INFORMATION); TpAssignmentID enableMessagingNotification ( in IpAppMessagingManager appInterface, in TpMessagingEventCriteria eventCriteria ) raises (TpCommonExceptions,P_INVALID_CRITERIA); void disableMessagingNotification ( in TpAssignmentID assignmentID ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); }; interface IpAppMessagingManager : IpInterface { void mailboxTerminated ( in IpMailbox mailbox, in TpSessionID mailboxSessionID ); void mailboxFaultDetected ( in IpMailbox mailbox, in TpSessionID mailboxSessionID, in TpMessagingFault fault ); void messagingEventNotify ( in IpMessagingManager messagingManager, in TpMessagingEventInfo eventInfo, in TpAssignmentID assignmentID ); void messagingNotificationTerminated (); }; interface IpMailbox : IpService { void close ( in TpSessionID mailboxSessionID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID); void lock ( in TpSessionID mailboxSessionID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_LOCKING_LOCKED_MAILBOX); void unlock ( in TpSessionID mailboxSessionID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_UNLOCKING_UNLOCKED_MAILBOX,P_GMS_CANNOT_UNLOCK_MAILBOX); TpInt32 getInfoAmount ( in TpSessionID mailboxSessionID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID); TpMailboxInfoPropertySet getInfoProperties ( in TpSessionID mailboxSessionID, in TpInt32 firstProperty, in TpInt32 numberOfProperties ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_NUMBER_NOT_POSITIVE); void setInfoProperties ( in TpSessionID mailboxSessionID, in TpInt32 firstProperty, in TpMailboxInfoPropertySet mailboxInfoProperties ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_PROPERTY_NOT_SET,P_GMS_MAILBOX_LOCKED); TpMailboxFolderIdentifier openFolder ( in TpSessionID mailboxSessionID, in TpString folderID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_FOLDER_IS_OPEN,P_GMS_INVALID_FOLDER_ID,P_GMS_MAILBOX_LOCKED); void createFolder ( in TpSessionID mailboxSessionID, in TpString folderID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_INVALID_FOLDER_ID,P_GMS_MAILBOX_LOCKED); void remove ( in TpAddress mailboxID, in TpString authenticationInfo ) raises (TpCommonExceptions,P_GMS_INSUFFICIENT_PRIVILEGE,P_GMS_INVALID_MAILBOX,P_GMS_MAILBOX_LOCKED,P_GMS_MAILBOX_OPEN,P_GMS_INVALID_AUTHENTICATION_INFORMATION); }; interface IpMessage : IpService { TpInt32 getInfoAmount ( in TpSessionID folderSessionID, in TpString messageID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_INVALID_MESSAGE_ID); TpMessageInfoPropertySet getInfoProperties ( in TpSessionID folderSessionID, in TpString messageID, in TpInt32 firstProperty, in TpInt32 numberOfProperties ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_NUMBER_NOT_POSITIVE,P_GMS_INVALID_MESSAGE_ID); void setInfoProperties ( in TpSessionID folderSessionID, in TpString messageID, in TpInt32 firstProperty, in TpMessageInfoPropertySet messageInfoProperties ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_INVALID_MESSAGE_ID,P_GMS_PROPERTY_NOT_SET); void remove ( in TpSessionID folderSessionID, in TpString messageID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_INSUFFICIENT_PRIVILEGE,P_GMS_MESSAGE_NOT_REMOVED,P_GMS_INVALID_MESSAGE_ID); TpMessage getContent ( in TpSessionID folderSessionID, in TpString messageID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_INVALID_MESSAGE_ID); }; interface IpMailboxFolder : IpService { TpInt32 getInfoAmount ( in TpSessionID folderSessionID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID); TpFolderInfoPropertySet getInfoProperties ( in TpSessionID folderSessionID, in TpInt32 firstProperty, in TpInt32 numberOfProperties ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_NUMBER_NOT_POSITIVE); void setInfoProperties ( in TpSessionID folderSessionID, in TpInt32 firstProperty, in TpFolderInfoPropertySet folderInfoProperties ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_PROPERTY_NOT_SET); void putMessage ( in TpSessionID folderSessionID, in TpMessage message, in TpMessageInfoPropertySet messageInfoProperties ) raises (TpCommonExceptions,P_INVALID_SESSION_ID); IpMessage getMessage ( in TpSessionID folderSessionID, in TpString messageID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_INVALID_MESSAGE_ID); void close ( in TpSessionID mailboxSessionID, in TpSessionID folderSessionID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID); void remove ( in TpSessionID mailboxSessionID, in TpString folderID ) raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_GMS_INSUFFICIENT_PRIVILEGE,P_GMS_INVALID_FOLDER_ID,P_GMS_FOLDER_IS_OPEN); }; }; }; }; #endif