Commit cb0c0e8d authored by mogos's avatar mogos
Browse files

* added MnoEvent

* renamed ConfigParameters to ModemConfiguration
* reorganised groups
parent f19b5f7a
Loading
Loading
Loading
Loading
+421 −334
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ module LibItsECall_TypesAndValues {
        encode (decoded) "ECallMessageUnion";
    };
    
    group simulator {
    group modem {

        type integer PositiveInteger (1 .. infinity);
        
@@ -63,7 +63,7 @@ module LibItsECall_TypesAndValues {
        }

        /**
        * @desc    Simulator config parameters
         * @desc    Modem configuration parameters
         * @member  mode                 P,I: Simulate IVS or PSAP (default: PSAP)
         * @member  t3Timer              I:   Value of T3 timer
         * @member  t4Timer              P:   Value of T4 timer
@@ -86,7 +86,7 @@ module LibItsECall_TypesAndValues {
         *                               I:   Calculate and transmit a wrong CRC value
         * @member  ignoreSendSignal     P:   Setting this to true will cause the modem to not send START signal upon reception of SEND
         */
        type record ConfigParameters {
        type record ModemConfiguration {
            SimulatorModeType mode optional,
            TimerDurationType t3Timer optional,
            TimerDurationType t4Timer optional,
@@ -146,13 +146,6 @@ module LibItsECall_TypesAndValues {
             * @member  inbandSendSignalReceived
             * @member  inbandNackSent
             * @member  inbandNackReceived
            * @member  callCanceled
            * @member  callIncoming
            * @member  callOutgoing
            * @member  callEstablished
            * @member  callRejected
            * @member  callHangUp
            * @member  callAborted
             * @member  callVoiceConnectionEstablished
             * @member  inbandStartSignalReceived
             * @member  timerExpired
@@ -168,13 +161,6 @@ module LibItsECall_TypesAndValues {
                InbandSendSignalReceivedEvent       inbandSendSignalReceived,
                InbandNackSentEvent                 inbandNackSent,
                InbandNackReceivedEvent             inbandNackReceived,
                CallCanceledEvent                   callCanceled,
                CallIncomingEvent                   callIncoming,
                CallOutgoingEvent                   callOutgoing,
                CallEstablishedEvent                callEstablished,
                CallRejectedEvent                   callRejected,
                CallHangUpEvent                     callHangUp,
                CallAbortedEvent                    callAborted,
                CallVoiceConnectionEstablishedEvent callVoiceConnectionEstablished,
                InbandStartSignalReceivedEvent      inbandStartSignalReceived,
                TimerExpiredEvent                   timerExpired
@@ -190,7 +176,7 @@ module LibItsECall_TypesAndValues {
            type record ConfigChangedEvent {
                integer worker,
                charstring time,
                ConfigParameters parameters
                ModemConfiguration parameters
            } with {
                variant "event;config_changed";
                variant (worker) "worker";
@@ -372,147 +358,6 @@ module LibItsECall_TypesAndValues {
                variant (count) "count";
            }
            
            /**
            * @desc   Generated when an incoming call is cancelled by the remote end before it was accepted or rejected
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member callRef       INTERNAL/EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallCanceledEvent {
                integer worker,
                charstring time,
                CallRefType callRef
            } with {
                variant "event;call_cancelled";
                variant (worker) "worker";
                variant (time) "time";
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Informs about an incoming call
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member from_         Caller ID
            * @member to_           Calling ID
            * @member callRef       INTERNAL/EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallIncomingEvent {
                integer worker,
                charstring time,
                TelephoneNumber from_,
                TelephoneNumber to_,
                CallRefType callRef
            } with {
                variant "event;call_incoming";
                variant (worker) "worker";
                variant (time) "time";
                variant (from_) "from";
                variant (to_) "to";
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Informs about an outgoing call request
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member from_         Caller ID   
            * @member to_           Calling ID
            * @member callRef       INTERNAL/EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallOutgoingEvent {
                integer worker,
                charstring time,
                TelephoneNumber from_,
                TelephoneNumber to_,
                CallRefType callRef
            } with {
                variant "event;call_outgoing";
                variant (worker) "worker";
                variant (time) "time";
                variant (from_) "from";
                variant (to_) "to";
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Generated when a call is established and thus data exchange is possible
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member callRef       INTERNAL/EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallEstablishedEvent {
                integer worker,
                charstring time,
                CallRefType callRef
            } with {
                variant "event;call_established";
                variant (worker) "worker";
                variant (time) "time";
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Generated when a call was rejected
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member callRef       INTERNAL/EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallRejectedEvent {
                integer worker,
                charstring time,
                CallRefType callRef
            } with {
                variant "event;call_rejected";
                variant (worker) "worker";
                variant (time) "time";
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Informs about the end of a call
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member callRef       Indicates who hung up (INTERNAL/EXTERNAL)
            * @remark mode: PSAP, IVS
            */
            type record CallHangUpEvent {
                integer worker,
                charstring time,
                CallRefType callRef 
            } with {
                variant "event;call_hang_up";
                variant (worker) "worker";
                variant (time) "time";
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Generated when a call ends and neither call_hang_up nor call_cancelled nor call_rejected are applicable
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member callRef       INTERNAL/EXTERNAL
            * @member reason        A hint to why the call was aborted
            * @remark mode: PSAP, IVS
            */
            type record CallAbortedEvent {
                integer worker,
                charstring time,
                CallRefType callRef,
                charstring reason
            } with {
                variant "event;call_aborted";
                variant (worker) "worker";
                variant (time) "time";
                variant (callRef) "call-ref";
                variant (reason) "reason";
            }
            
            /**
             * @desc   Generated whenever bidirectional voice communication is possible
             * @member worker        Worker process that generated this event
@@ -582,7 +427,7 @@ module LibItsECall_TypesAndValues {
             */
            type record SetConfigCmd {
                integer worker,
                ConfigParameters parameters
                ModemConfiguration parameters
            } with {
                variant "set_config";
                variant (worker) "worker";
@@ -696,6 +541,178 @@ module LibItsECall_TypesAndValues {
        encode "SimulatorInterface";
    }

    group mno {
        /**
         * @desc    MNO configuration parameters
         */
        type record MnoConfiguration {
        }

        /**
         * @desc    Top-level aggregation type for MNO Events
         * @member  callCanceled
         * @member  callIncoming
         * @member  callOutgoing
         * @member  callEstablished
         * @member  callRejected
         * @member  callHangUp
         * @member  callAborted
         */
        type union MnoEvent {
            CallCanceledEvent                   callCanceled,
            CallIncomingEvent                   callIncoming,
            CallOutgoingEvent                   callOutgoing,
            CallEstablishedEvent                callEstablished,
            CallRejectedEvent                   callRejected,
            CallHangUpEvent                     callHangUp,
            CallAbortedEvent                    callAborted
        }

        /**
         * @desc   Generated when an incoming call is cancelled by the remote end before it was accepted or rejected
         * @member worker        Worker process that generated this event
         * @member time          Event timestamp
         * @member callRef       INTERNAL/EXTERNAL
         * @remark mode: PSAP, IVS
         */
        type record CallCanceledEvent {
            integer worker,
            charstring time,
            CallRefType callRef
        } with {
            variant "event;call_cancelled";
            variant (worker) "worker";
            variant (time) "time";
            variant (callRef) "call-ref";
        }
            
        /**
         * @desc   Informs about an incoming call
         * @member worker        Worker process that generated this event
         * @member time          Event timestamp
         * @member from_         Caller ID
         * @member to_           Calling ID
         * @member callRef       INTERNAL/EXTERNAL
         * @remark mode: PSAP, IVS
         */
        type record CallIncomingEvent {
            integer worker,
            charstring time,
            TelephoneNumber from_,
            TelephoneNumber to_,
            CallRefType callRef
        } with {
            variant "event;call_incoming";
            variant (worker) "worker";
            variant (time) "time";
            variant (from_) "from";
            variant (to_) "to";
            variant (callRef) "call-ref";
        }
            
        /**
         * @desc   Informs about an outgoing call request
         * @member worker        Worker process that generated this event
         * @member time          Event timestamp
         * @member from_         Caller ID
         * @member to_           Calling ID
         * @member callRef       INTERNAL/EXTERNAL
         * @remark mode: PSAP, IVS
         */
        type record CallOutgoingEvent {
            integer worker,
            charstring time,
            TelephoneNumber from_,
            TelephoneNumber to_,
            CallRefType callRef
        } with {
            variant "event;call_outgoing";
            variant (worker) "worker";
            variant (time) "time";
            variant (from_) "from";
            variant (to_) "to";
            variant (callRef) "call-ref";
        }
            
        /**
         * @desc   Generated when a call is established and thus data exchange is possible
         * @member worker        Worker process that generated this event
         * @member time          Event timestamp
         * @member callRef       INTERNAL/EXTERNAL
         * @remark mode: PSAP, IVS
         */
        type record CallEstablishedEvent {
            integer worker,
            charstring time,
            CallRefType callRef
        } with {
            variant "event;call_established";
            variant (worker) "worker";
            variant (time) "time";
            variant (callRef) "call-ref";
        }
            
        /**
         * @desc   Generated when a call was rejected
         * @member worker        Worker process that generated this event
         * @member time          Event timestamp
         * @member callRef       INTERNAL/EXTERNAL
         * @remark mode: PSAP, IVS
         */
        type record CallRejectedEvent {
            integer worker,
            charstring time,
            CallRefType callRef
        } with {
            variant "event;call_rejected";
            variant (worker) "worker";
            variant (time) "time";
            variant (callRef) "call-ref";
        }
            
        /**
         * @desc   Informs about the end of a call
         * @member worker        Worker process that generated this event
         * @member time          Event timestamp
         * @member callRef       Indicates who hung up (INTERNAL/EXTERNAL)
         * @remark mode: PSAP, IVS
         */
        type record CallHangUpEvent {
            integer worker,
            charstring time,
            CallRefType callRef
        } with {
            variant "event;call_hang_up";
            variant (worker) "worker";
            variant (time) "time";
            variant (callRef) "call-ref";
        }
            
        /**
         * @desc   Generated when a call ends and neither call_hang_up nor call_cancelled nor call_rejected are applicable
         * @member worker        Worker process that generated this event
         * @member time          Event timestamp
         * @member callRef       INTERNAL/EXTERNAL
         * @member reason        A hint to why the call was aborted
         * @remark mode: PSAP, IVS
         */
        type record CallAbortedEvent {
            integer worker,
            charstring time,
            CallRefType callRef,
            charstring reason
        } with {
            variant "event;call_aborted";
            variant (worker) "worker";
            variant (time) "time";
            variant (callRef) "call-ref";
            variant (reason) "reason";
        }
    }
    with {
        encode "SimulatorInterface";
    }

    group misc {
    
        /**
@@ -703,11 +720,29 @@ module LibItsECall_TypesAndValues {
         * @member  failure  Shall be selected if expected feedback is not received
         * @member  event    Shall be selected expected feedback is received and shall contain the received event
         */
        type union FeedbackResult {
        type union ExpectResult {
            boolean failure,
            Event event
            Event event,
            MnoEvent mnoEvent
        }

        /**
         * @desc eCall intiation trigger types
         */
        type enumerated ECallTrigger {
            AUTOMATIC,
            MANUAL,
            ANY
        }

        /**
         * @desc eCall kind
         */
        type enumerated ECallKind {
            TEST,
            EMERGENCY,
            ANY
        }
    } // end misc
    
    group constants {
@@ -719,5 +754,57 @@ module LibItsECall_TypesAndValues {
         * @desc intial value for msd messageIdentifier
         */
        const integer c_initialMessageIdentifier := 1;
        
        /**
         * @desc MSD version
         */
        const integer c_msdVersion := 1;
    } // end constants
    
    group configuration {
        /**
         * @desc Default IVS simulator configuration
         */
        const ModemConfiguration c_defaultIVSSimulatorConfiguration := {
            mode := IVS,
            t3Timer := 2.0,
            t5Timer := 2.0,
            t6Timer := 5.0,
            t7Timer := 20.0,
            //eCallMessage := f_expandMsdValue(PX_ECALL_MESSAGE),
            inbandState := OFF,
            inbandControl := AUTO,
            inbandDirection := PULL,
            internalSubscriber := "",
            ignoreAlClearDown := false,
            simulateCrcError := false
        }

        /**
         * @desc Default PSAP simulator configuration
         */
        const ModemConfiguration c_defaultPsapSimulatorConfiguration := {
            mode := PSAP,
            t4Timer := 2.0,
            t6Timer := 5.0,
            t8Timer := 20.0,
            sendNecDisabler := false,
            numberOfAlAcks := 4,
            numberOfLlAcks := 4,
            automaticAlAck := true,
            alAckValue := 0,
            inbandState := OFF,
            inbandControl := AUTO,
            inbandDirection := PULL,
            internalSubscriber := "",
            simulateCrcError := false,
            ignoreSendSignal := false
        }
        
        /**
         * @desc Default MNO configuration
         */
        const MnoConfiguration c_defaultMnoConfiguration := {
        }
    } // end configurationTemplates
}