-- IDL module extracted from ITU-T Q Suppl. 28 (12/1999)

// File SPFEEAccessCommonTypes.idl #ifndef spfeeaccesscommontypes_idl #define spfeeaccesscommontypes_idl #include "SPFEECommonTypes.idl" module SPFEEAccessCommonTypes { // User Info // The following Login-Password combination may be used // for non-CORBA Security-compliant systems, which still // relies on a traditional, login name & password combination. // It is mainly provided for compability reasons for the legacy // systems, and is not expected to be used with the CORBA compliant // part at the same time. // legacy authentication typedef SPFEECommonTypes::Istring t_UserPassword; struct t_UserInfo { SPFEECommonTypes::t_UserId userId; SPFEECommonTypes::t_UserName name; SPFEECommonTypes::t_UserProperties userProperties; }; // Access Session typedef sequence <octet, 16> t_AccessSessionSecretId; // 128b array generated by Retailer(should be self checking) // (is big enough to hold the GUID favored by DCE & DCOM) // (Globally Unique IDentifier) typedef unsigned long t_AccessSessionId; enum t_WhichAccessSession { CurrentAccessSession, SpecifiedAccessSessions, AllAccessSessions }; typedef sequence<t_AccessSessionId> t_AccessSessionIdList; // Implementation Note: // Orbix does not allow the creator of a union to set the // discriminator (switch tag). If true, this union requires // dummy cases for the other enums of t_WhichAccessSession. union t_SpecifiedAccessSession switch (t_WhichAccessSession) { case SpecifiedAccessSessions: t_AccessSessionIdList asIdList; case CurrentAccessSession: octet dummy1; case AllAccessSessions: octet dummy2; // dummy var's values should not be processed }; typedef SPFEECommonTypes::t_PropertyList t_AccessSessionProperties; struct t_AccessSessionInfo { t_AccessSessionId id; SPFEECommonTypes::t_UserCtxtName ctxtName; t_AccessSessionProperties properties; }; typedef sequence<t_AccessSessionInfo> t_AccessSessionList; // Terminal Info typedef string t_TerminalId; typedef sequence<string> t_NAPId; typedef sequence<t_NAPId> t_NAPIdList; typedef string t_NAPType; typedef SPFEECommonTypes::t_PropertyList t_TerminalProperties; // t_TerminalProperties properties: // // defined Property names: // name: "TERMINAL INFO" // value: t_TerminalInfo // name: "APPLICATION INFO LIST" // value: t_ApplicationInfoList // Applications on the terminal // No other names defined at present // t_TermType // DESCRIPTION: // List of terminal types. // COMMENTS: // - This list can be expanded. enum t_TerminalType { PersonalComputer, WorkStation, TVset, Videotelephone, Cellularphone, PBX, VideoServer, VideoBridge, Telephone, G4Fax }; // t_TermInfo // DESCRIPTION: // This structure contains information related to a specific terminal // COMMENTS: // To be defined further. struct t_TerminalInfo { t_TerminalType terminalType; string operatingSystem; // includes the version SPFEECommonTypes::t_PropertyList networkCards; SPFEECommonTypes::t_PropertyList devices; unsigned short maxConnections; unsigned short memorySize; unsigned short diskCapacity; }; // Provider Agent Context struct t_TerminalConfig { t_TerminalId terminalId; t_TerminalType terminalType; t_NAPId napId; t_NAPType napType; t_TerminalProperties properties; }; // Service Types // typedef unsigned long t_ServiceId; typedef sequence<t_ServiceId> t_ServiceIdList; typedef SPFEECommonTypes::Istring t_UserServiceName; typedef SPFEECommonTypes::t_PropertyList t_ServiceProperties; struct t_ServiceInfo { t_ServiceId id; t_UserServiceName name; t_ServiceProperties properties; }; typedef sequence<t_ServiceInfo> t_ServiceList; // Session State // State of the session as seen from the users point of view enum t_UserSessionState { UserUnknownSessionState, // Session State is not known UserActiveSession, UserSuspendedSession, // Session has been suspended UserSuspendedParticipation, // User has suspendedParticipation // but is continuing in his absence. // (may have been quit subsequently) UserInvited, // User has been invited to join UserNotParticipating // User is not in the session }; // Session Info typedef SPFEECommonTypes::Istring t_SessionPurpose; struct t_SessionOrigin { SPFEECommonTypes::t_UserId userId; // user creating the session SPFEECommonTypes::t_SessionId sessionId; // id (unique to originating user) }; struct t_SessionInfo { SPFEECommonTypes::t_SessionId id; // my session id, // unique to UA. (scope by UA). t_SessionPurpose purpose; SPFEECommonTypes::t_ParticipantSecretId secretId; SPFEECommonTypes::t_PartyId myPartyId; t_UserSessionState state; SPFEECommonTypes::t_InterfaceList itfs; SPFEECommonTypes::t_SessionModelList sessionModels; SPFEECommonTypes::t_SessionProperties properties; }; // for listing active/suspended sessions typedef sequence<t_SessionInfo> t_SessionList; // Invitations and Announcements. typedef unsigned long t_InvitationId; typedef SPFEECommonTypes::Istring t_InvitationReason; struct t_InvitationOrigin { SPFEECommonTypes::t_UserId userId; // user creating the invitation SPFEECommonTypes::t_SessionId sessionId; // so they which session they invited you from, if you contact them }; struct t_SessionInvitation { t_InvitationId id; SPFEECommonTypes::t_UserId inviteeId; // id of invited user, so you can check // the invitation was for you. t_SessionPurpose purpose; t_ServiceInfo serviceInfo; t_InvitationReason reason; t_InvitationOrigin origin; SPFEECommonTypes::t_PropertyList invProperties; }; typedef sequence<t_SessionInvitation> t_InvitationList; typedef unsigned long t_AnnouncementId; // Start Service Properties and Application Info. typedef SPFEECommonTypes::Istring t_AppName; typedef SPFEECommonTypes::Istring t_AppVersion; typedef SPFEECommonTypes::Istring t_AppSerialNum; typedef SPFEECommonTypes::Istring t_AppLicenceNum; struct t_ApplicationInfo { t_AppName name; t_AppVersion version; t_AppSerialNum serialNum; t_AppLicenceNum licenceNum; SPFEECommonTypes::t_PropertyList properties; SPFEECommonTypes::t_InterfaceList itfs; SPFEECommonTypes::t_SessionModelList sessionModels; }; // t_StartServiceUAProperties properties: // properties to be interpreted by the User Agent, when starting a service // // defined Property names: // None defined at present typedef SPFEECommonTypes::t_PropertyList t_StartServiceUAProperties; // t_StartServiceSSProperties properties: // properties to be interpreted by the Service Session, when starting a service // // defined Property names: // None defined at present typedef SPFEECommonTypes::t_PropertyList t_StartServiceSSProperties; // Exceptions enum t_AccessErrorCode { UnknownAccessError, InvalidAccessSessionSecretId, AccessDenied, SecurityContextNotSatisfied }; exception e_AccessError { t_AccessErrorCode errorCode; }; enum t_UserPropertiesErrorCode { InvalidUserPropertyName, InvalidUserPropertyValue }; exception e_UserPropertiesError { t_UserPropertiesErrorCode errorCode; SPFEECommonTypes::t_UserProperty userProperty; }; enum t_SpecifiedAccessSessionErrorCode { UnknownSpecifiedAccessSessionError, InvalidWhichAccessSession, InvalidAccessSessionId }; exception e_SpecifiedAccessSessionError { t_SpecifiedAccessSessionErrorCode errorCode; t_AccessSessionId id; // Invalid AccessSessionId }; enum t_InvitationErrorCode { InvalidInvitationId }; exception e_InvitationError { t_InvitationErrorCode errorCode; }; }; #endif