//Source file: mm.idl //Date: 8 October 2004 //Mobility Interfaces and Data Types for ETSI ES 203 915-06 V1.1.1, DES/TISPAN-01005-06-OSA, Parlay 5.0 #ifndef __MM_DEFINED #define __MM_DEFINED #include "osa.idl" module org { module csapi { module mm { enum TpLocationPriority { P_M_NORMAL, P_M_HIGH }; enum TpLocationResponseIndicator { P_M_NO_DELAY, P_M_LOW_DELAY, P_M_DELAY_TOLERANT, P_M_USE_TIMER_VALUE }; struct TpLocationResponseTime { TpLocationResponseIndicator ResponseTime; TpInt32 TimerValue; }; enum TpLocationTriggerCriteria { P_UL_ENTERING_AREA, P_UL_LEAVING_AREA }; struct TpLocationTrigger { TpFloat Longitude; TpFloat Latitude; TpFloat AreaSemiMajor; TpFloat AreaSemiMinor; TpInt32 AngleOfSemiMajor; TpLocationTriggerCriteria Criterion; TpDuration ReportingInterval; }; typedef sequence TpLocationTriggerSet; enum TpLocationType { P_M_CURRENT, P_M_CURRENT_OR_LAST_KNOWN, P_M_INITIAL }; struct TpLocationRequest { TpFloat RequestedAccuracy; TpLocationResponseTime RequestedResponseTime; TpBoolean AltitudeRequested; TpLocationType Type; TpLocationPriority Priority; TpString RequestedLocationMethod; }; enum TpLocationUncertaintyShape { P_M_SHAPE_NONE, P_M_SHAPE_CIRCLE, P_M_SHAPE_CIRCLE_SECTOR, P_M_SHAPE_CIRCLE_ARC_STRIPE, P_M_SHAPE_ELLIPSE, P_M_SHAPE_ELLIPSE_SECTOR, P_M_SHAPE_ELLIPSE_ARC_STRIPE }; struct TpGeographicalPosition { TpFloat Longitude; TpFloat Latitude; TpLocationUncertaintyShape TypeOfUncertaintyShape; TpFloat UncertaintyInnerSemiMajor; TpFloat UncertaintyOuterSemiMajor; TpFloat UncertaintyInnerSemiMinor; TpFloat UncertaintyOuterSemiMinor; TpInt32 AngleOfSemiMajor; TpInt32 SegmentStartAngle; TpInt32 SegmentEndAngle; }; enum TpMobilityDiagnostic { P_M_NO_INFORMATION, P_M_APPL_NOT_IN_PRIV_EXCEPT_LST, P_M_CALL_TO_USER_NOT_SETUP, P_M_PRIVACY_OVERRIDE_NOT_APPLIC, P_M_DISALL_BY_LOCAL_REGULAT_REQ, P_M_CONGESTION, P_M_INSUFFICIENT_RESOURCES, P_M_INSUFFICIENT_MEAS_DATA, P_M_INCONSISTENT_MEAS_DATA, P_M_LOC_PROC_NOT_COMPLETED, P_M_LOC_PROC_NOT_SUPP_BY_USER, P_M_QOS_NOT_ATTAINABLE }; enum TpMobilityError { P_M_OK, P_M_SYSTEM_FAILURE, P_M_UNAUTHORIZED_NETWORK, P_M_UNAUTHORIZED_APPLICATION, P_M_UNKNOWN_SUBSCRIBER, P_M_ABSENT_SUBSCRIBER, P_M_POSITION_METHOD_FAILURE }; enum TpMobilityStopScope { P_M_ALL_IN_ASSIGNMENT, P_M_SPECIFIED_USERS }; struct TpMobilityStopAssignmentData { TpAssignmentID AssignmentId; TpMobilityStopScope StopScope; TpAddressSet Users; }; enum TpTerminalType { P_M_FIXED, P_M_MOBILE, P_M_IP }; struct TpUlExtendedData { TpGeographicalPosition GeographicalPosition; TpTerminalType TerminalType; TpBoolean AltitudePresent; TpFloat Altitude; TpFloat UncertaintyAltitude; TpBoolean TimestampPresent; TpDateAndTime Timestamp; TpString UsedLocationMethod; }; typedef sequence TpUlExtendedDataSet; struct TpUserLocation { TpAddress UserID; TpMobilityError StatusCode; TpGeographicalPosition GeographicalPosition; }; struct TpUserLocationExtended { TpAddress UserID; TpMobilityError StatusCode; TpUlExtendedDataSet Locations; }; typedef sequence TpUserLocationExtendedSet; typedef sequence TpUserLocationSet; typedef TpString TpLocationCellIDOrLAI; struct TpLocationTriggerCamel { TpBoolean UpdateInsideVlr; TpBoolean UpdateOutsideVlr; }; struct TpUserLocationCamel { TpAddress UserID; TpMobilityError StatusCode; TpBoolean GeographicalPositionPresent; TpGeographicalPosition GeographicalPosition; TpBoolean TimestampPresent; TpDateAndTime Timestamp; TpBoolean VlrNumberPresent; TpAddress VlrNumber; TpBoolean LocationNumberPresent; TpAddress LocationNumber; TpBoolean CellIdOrLaiPresent; TpLocationCellIDOrLAI CellIdOrLai; }; typedef sequence TpUserLocationCamelSet; typedef TpString TpIMEI; typedef TpString TpNaESRD; typedef TpString TpNaESRK; struct TpUserLocationEmergencyRequest { TpBoolean UserAddressPresent; TpAddress UserAddress; TpBoolean NaEsrdPresent; TpNaESRD NaEsrd; TpBoolean NaEsrkPresent; TpNaESRK NaEsrk; TpBoolean ImeiPresent; TpIMEI Imei; TpLocationRequest LocationReq; }; enum TpUserLocationEmergencyTrigger { P_ULE_CALL_ORIGINATION, P_ULE_CALL_RELEASE, P_ULE_LOCATION_REQUEST }; struct TpUserLocationEmergency { TpMobilityError StatusCode; TpBoolean UserIdPresent; TpAddress UserId; TpBoolean NaEsrdPresent; TpNaESRD NaEsrd; TpBoolean NaEsrkPresent; TpNaESRK NaEsrk; TpBoolean ImeiPresent; TpIMEI Imei; TpUserLocationEmergencyTrigger TriggeringEvent; TpBoolean GeographicalPositionPresent; TpGeographicalPosition GeographicalPosition; TpBoolean AltitudePresent; TpFloat Altitude; TpFloat UncertaintyAltitude; TpBoolean TimestampPresent; TpDateAndTime Timestamp; TpString UsedLocationMethod; }; enum TpUserStatusIndicator { P_US_REACHABLE, P_US_NOT_REACHABLE, P_US_BUSY }; struct TpUserStatus { TpAddress UserID; TpMobilityError StatusCode; TpUserStatusIndicator Status; TpTerminalType TerminalType; }; typedef sequence TpUserStatusSet; exception P_REQUESTED_ACCURACY_CANNOT_BE_DELIVERED { TpString ExtraInformation; }; exception P_REQUESTED_RESPONSE_TIME_CANNOT_BE_DELIVERED { TpString ExtraInformation; }; exception P_INVALID_REPORTING_INTERVAL { TpString ExtraInformation; }; exception P_TRIGGER_CONDITIONS_NOT_SUBSCRIBED { TpString ExtraInformation; }; struct TpTriggeredStatusRequest { TpAddressSet Users; TpAssignmentID AssignmentID; }; typedef sequence TpTriggeredStatusRequestSet; struct TpTriggeredStatusRequestSetEntry { TpTriggeredStatusRequestSet Requests; TpBoolean Final; }; struct TpPeriodicLocationRequest { TpAddressSet Users; TpLocationRequest Request; TpDuration ReportingInterval; TpAssignmentID AssignmentID; }; typedef sequence TpPeriodicLocationRequestSet; struct TpPeriodicLocationRequestSetEntry { TpPeriodicLocationRequestSet Requests; TpBoolean Final; }; struct TpTriggeredLocationRequest { TpAddressSet Users; TpLocationRequest Request; TpAssignmentID AssignmentID; }; typedef sequence TpTriggeredLocationRequestSet; struct TpTriggeredLocationRequestSetEntry { TpTriggeredLocationRequestSet Requests; TpBoolean Final; }; struct TpUserStatusIndicatorExtended { TpUserStatusIndicator UserStatusIndicator; TpBoolean PDPContextActive; }; enum TpAuthStatusIndicator { P_AUTHENTICATED_FOR_NETWORK_ONLY, P_AUTHENTICATED_FOR_NETWORK_AND_IP_SERVICES, P_NOT_AUTHENTICATED }; struct TpUserInfo { TpString UserName; TpString Password; }; enum TpAccessTechnology { P_MOBILE_ACCESS_PS, P_MOBILE_ACCESS_CS, P_FIXED_ACCESS }; enum TpRoamingStatus { P_UNKNOWN_ROAMING_STATUS, P_HOME_USER, P_NATIONAL_ROAMING, P_INTERNATIONAL_ROAMING, P_OPERATOR_ROAMING }; struct TpNetworkStatusIndicator { TpString CountryCode; TpString MobileNetworkCode; TpAccessTechnology AccessTechnology; TpRoamingStatus RoamingStatus; }; struct TpUserStatusExtended { TpString UserID; TpMobilityError StatusCode; TpUserStatusIndicatorExtended Status; TpTerminalType TerminalType; TpAuthStatusIndicator AuthenticationStatus; TpNetworkStatusIndicator NetworkStatus; TpString UserIPAddress; TpString UserMSISDN; TpUserInfo UserInfo; TpString UserConnectionID; TpString AccessPointName; }; typedef sequence TpUserStatusExtendedSet; typedef TpInt32 TpBindingNotificationCriteriaType; const TpInt32 P_UB_NEW = 1; const TpInt32 P_UB_REMOVE = 2; const TpInt32 P_UB_UPDATE = 4; struct TpBindingNotificationCriteria { TpBindingNotificationCriteriaType NotificationCriteriaType; TpAddressSet ContactAddressSet; }; typedef sequence TpBindingNotificationCriteriaSet; enum TpBindingEntryType { P_UB_UNDEFINED, P_UB_EXPIRES, P_UB_CONTACT_ADDRESS, P_UB_PREFERENCE }; union TpBindingEntry switch(TpBindingEntryType) { case P_UB_EXPIRES: TpInt32 UBExpires; case P_UB_CONTACT_ADDRESS: TpAddress UBContactAddress; case P_UB_PREFERENCE: TpFloat UBPreference; default: short Dummy; }; typedef sequence TpBindingEntrySet; typedef sequence TpBindingSet; module ul { interface IpAppUserLocation : IpInterface { void locationReportRes ( in TpAssignmentID assignmentId, in TpUserLocationSet locations ); void locationReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); void extendedLocationReportRes ( in TpAssignmentID assignmentId, in TpUserLocationExtendedSet locations ); void extendedLocationReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); void periodicLocationReport ( in TpAssignmentID assignmentId, in TpUserLocationExtendedSet locations ); void periodicLocationReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); }; interface IpUserLocation : IpService { TpAssignmentID locationReportReq ( in IpAppUserLocation appLocation, in TpAddressSet users ) raises (TpCommonExceptions,P_APPLICATION_NOT_ACTIVATED,P_INFORMATION_NOT_AVAILABLE,P_INVALID_INTERFACE_TYPE); TpAssignmentID extendedLocationReportReq ( in IpAppUserLocation appLocation, in TpAddressSet users, in TpLocationRequest request ) raises (TpCommonExceptions,P_APPLICATION_NOT_ACTIVATED,P_REQUESTED_ACCURACY_CANNOT_BE_DELIVERED,P_REQUESTED_RESPONSE_TIME_CANNOT_BE_DELIVERED,P_INFORMATION_NOT_AVAILABLE,P_INVALID_INTERFACE_TYPE); TpAssignmentID periodicLocationReportingStartReq ( in IpAppUserLocation appLocation, in TpAddressSet users, in TpLocationRequest request, in TpDuration reportingInterval ) raises (TpCommonExceptions,P_INVALID_REPORTING_INTERVAL,P_REQUESTED_ACCURACY_CANNOT_BE_DELIVERED,P_REQUESTED_RESPONSE_TIME_CANNOT_BE_DELIVERED,P_APPLICATION_NOT_ACTIVATED,P_INFORMATION_NOT_AVAILABLE,P_INVALID_INTERFACE_TYPE); void periodicLocationReportingStop ( in TpMobilityStopAssignmentData stopRequest ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); TpPeriodicLocationRequestSetEntry getNextPeriodicLocationRequest ( in TpBoolean reset ) raises (TpCommonExceptions); }; interface IpAppTriggeredUserLocation : IpAppUserLocation { void triggeredLocationReport ( in TpAssignmentID assignmentId, in TpUserLocationExtended location, in TpLocationTriggerCriteria criterion ); void triggeredLocationReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); }; interface IpTriggeredUserLocation : IpUserLocation { TpAssignmentID triggeredLocationReportingStartReq ( in IpAppTriggeredUserLocation appLocation, in TpAddressSet users, in TpLocationRequest request, in TpLocationTriggerSet triggers ) raises (TpCommonExceptions,P_REQUESTED_ACCURACY_CANNOT_BE_DELIVERED,P_REQUESTED_RESPONSE_TIME_CANNOT_BE_DELIVERED,P_TRIGGER_CONDITIONS_NOT_SUBSCRIBED,P_UNKNOWN_SUBSCRIBER,P_APPLICATION_NOT_ACTIVATED,P_INFORMATION_NOT_AVAILABLE,P_INVALID_INTERFACE_TYPE); void triggeredLocationReportingStop ( in TpMobilityStopAssignmentData stopRequest ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); TpTriggeredLocationRequestSetEntry getNextTriggeredLocationRequest ( in TpBoolean reset ) raises (TpCommonExceptions); }; }; module ulc { interface IpAppUserLocationCamel : IpInterface { void locationReportRes ( in TpAssignmentID assignmentId, in TpUserLocationCamelSet locations ); void locationReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); void periodicLocationReport ( in TpAssignmentID assignmentId, in TpUserLocationCamelSet locations ); void periodicLocationReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); void triggeredLocationReport ( in TpAssignmentID assignmentId, in TpUserLocationCamel location, in TpLocationTriggerCamel criterion ); void triggeredLocationReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); }; interface IpUserLocationCamel : IpService { TpAssignmentID locationReportReq ( in IpAppUserLocationCamel appLocationCamel, in TpAddressSet users ) raises (TpCommonExceptions,P_UNKNOWN_SUBSCRIBER,P_APPLICATION_NOT_ACTIVATED,P_INFORMATION_NOT_AVAILABLE,P_INVALID_INTERFACE_TYPE); TpAssignmentID periodicLocationReportingStartReq ( in IpAppUserLocationCamel appLocationCamel, in TpAddressSet users, in TpDuration reportingInterval ) raises (TpCommonExceptions,P_INVALID_REPORTING_INTERVAL,P_UNKNOWN_SUBSCRIBER,P_APPLICATION_NOT_ACTIVATED,P_INFORMATION_NOT_AVAILABLE,P_INVALID_INTERFACE_TYPE); void periodicLocationReportingStop ( in TpMobilityStopAssignmentData stopRequest ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); TpAssignmentID triggeredLocationReportingStartReq ( in IpAppUserLocationCamel appLocationCamel, in TpAddressSet users, in TpLocationTriggerCamel trigger ) raises (TpCommonExceptions,P_UNKNOWN_SUBSCRIBER,P_APPLICATION_NOT_ACTIVATED,P_INFORMATION_NOT_AVAILABLE,P_INVALID_INTERFACE_TYPE); void triggeredLocationReportingStop ( in TpMobilityStopAssignmentData stopRequest ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); TpPeriodicLocationRequestSetEntry getNextPeriodicLocationRequest ( in TpBoolean reset ) raises (TpCommonExceptions); TpTriggeredLocationRequestSetEntry getNextTriggeredLocationRequest ( in TpBoolean reset ) raises (TpCommonExceptions); }; }; module ule { interface IpAppUserLocationEmergency : IpInterface { void emergencyLocationReport ( in TpAssignmentID assignmentId, in TpUserLocationEmergency location ); void emergencyLocationReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); }; interface IpUserLocationEmergency : IpService { TpAssignmentID emergencyLocationReportReq ( in IpAppUserLocationEmergency appEmergencyLocation, in TpUserLocationEmergencyRequest request ) raises (TpCommonExceptions,P_UNKNOWN_SUBSCRIBER,P_INFORMATION_NOT_AVAILABLE,P_APPLICATION_NOT_ACTIVATED,P_INVALID_INTERFACE_TYPE); TpAssignmentID subscribeEmergencyLocationReports ( in IpAppUserLocationEmergency appEmergencyLocation ) raises (TpCommonExceptions,P_INVALID_INTERFACE_TYPE); void unSubscribeEmergencyLocationReports ( in TpAssignmentID assignmentId ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); }; }; module us { interface IpAppUserStatus : IpInterface { void statusReportRes ( in TpAssignmentID assignmentId, in TpUserStatusSet status ); void statusReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); void triggeredStatusReport ( in TpAssignmentID assignmentId, in TpUserStatus status ); void triggeredStatusReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); void extendedStatusReportRes ( in TpAssignmentID assignmentId, in TpUserStatusExtendedSet status ); void extendedStatusReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); void extTriggeredStatusReport ( in TpAssignmentID assignmentId, in TpUserStatusExtended status ); void extTriggeredStatusReportErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); }; interface IpUserStatus : IpService { TpAssignmentID statusReportReq ( in IpAppUserStatus appStatus, in TpAddressSet users ) raises (TpCommonExceptions,P_UNKNOWN_SUBSCRIBER,P_INFORMATION_NOT_AVAILABLE,P_APPLICATION_NOT_ACTIVATED,P_INVALID_INTERFACE_TYPE); TpAssignmentID triggeredStatusReportingStartReq ( in IpAppUserStatus appStatus, in TpAddressSet users ) raises (TpCommonExceptions,P_UNKNOWN_SUBSCRIBER,P_INFORMATION_NOT_AVAILABLE,P_APPLICATION_NOT_ACTIVATED,P_INVALID_INTERFACE_TYPE); void triggeredStatusReportingStop ( in TpMobilityStopAssignmentData stopRequest ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); TpTriggeredStatusRequestSetEntry getNextTriggeredStatusRequest ( in TpBoolean reset ) raises (TpCommonExceptions); TpAssignmentID extendedStatusReportReq ( in IpAppUserStatus appStatus, in TpAddressSet users ) raises (TpCommonExceptions,P_UNKNOWN_SUBSCRIBER,P_INFORMATION_NOT_AVAILABLE,P_APPLICATION_NOT_ACTIVATED,P_INVALID_INTERFACE_TYPE); TpAssignmentID extTriggeredStatusReportingStartReq ( in IpAppUserStatus appStatus, in TpAddressSet users ) raises (TpCommonExceptions,P_UNKNOWN_SUBSCRIBER,P_INFORMATION_NOT_AVAILABLE,P_APPLICATION_NOT_ACTIVATED,P_INVALID_INTERFACE_TYPE); void extTriggeredStatusReportingStop ( in TpMobilityStopAssignmentData stopRequest ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); }; }; module ub { interface IpAppUserBinding : IpInterface { TpBindingSet triggeredBindingRequestNotification ( in TpAssignmentID assignmentId, in TpAddress address, in TpBindingSet contactInformation ); void triggeredBindingRequestNotificationStartErr ( in TpAssignmentID assignmentId, in TpMobilityError cause, in TpMobilityDiagnostic diagnostic ); }; interface IpUserBinding : IpService { TpAssignmentID triggeredBindingRequestNotificationStartReq ( in IpAppUserBinding appStatus, in TpAddressSet users, in TpBindingNotificationCriteriaSet criteria ) raises (TpCommonExceptions,P_UNKNOWN_SUBSCRIBER,P_INFORMATION_NOT_AVAILABLE,P_APPLICATION_NOT_ACTIVATED,P_INVALID_INTERFACE_TYPE); void triggeredBindingRequestNotificationStop ( in TpAssignmentID assignmentId ) raises (TpCommonExceptions,P_INVALID_ASSIGNMENT_ID); }; }; }; }; }; #endif