Commit 79913e03 authored by berge's avatar berge
Browse files

Added T3Doc to LibItsECall_TypesAndValues

parent ab1c5558
Loading
Loading
Loading
Loading
+340 −74
Original line number Diff line number Diff line
@@ -19,21 +19,13 @@ module LibItsECall_TypesAndValues {
        encode "MSDEncode";
    };
 
    type union FeedbackResult {
        boolean failure,
        Event event
    }
 
    type record of charstring CharstringRecord;
    
    type record of WorkerConf WorkerConfArray;
    
    type record WorkerConf {
        integer id,
        TelephoneNumber phoneNumber,
        TelephoneNumber internalSubscriber
    }
    
    /**
    * @desc    Top-level eCall message indication
    * @member  decoded  Fully decoded eCall message if applicable
    * @member  encoded  Encoded version of the message
    */
    type union ECallMessageUnion {
        ECallMessage decoded,
        octetstring encoded
@@ -41,19 +33,59 @@ module LibItsECall_TypesAndValues {
        encode (decoded) "ECallMessageUnion";
    };
    
    group simulator {

        type integer PositiveInteger (1 .. infinity);
        
        type enumerated SimulatorModeType {PSAP, IVS};
        type float TimerDurationType (0.0 .. 20.0);
        type integer AckNumberType (0 .. 20);
    type enumerated ModemStateType {OFF, HALF, FULL, UNDEFINED}
    type enumerated ModemControlType {AUTO, MANUAL}
    type enumerated ModemDirectionType {PUSH, PULL}
    type enumerated CallRefType {INTERNAL, EXTERNAL }
        type enumerated ModemStateType {OFF, HALF, FULL, UNDEFINED};
        type enumerated ModemControlType {AUTO, MANUAL};
        type enumerated ModemDirectionType {PUSH, PULL};
        type enumerated CallRefType {INTERNAL, EXTERNAL};
        type charstring TelephoneNumber;
        type integer AckValueType (0 .. 15);
    type enumerated ClearDownType {NETWORK, APPLICATION}
        type enumerated ClearDownType {NETWORK, APPLICATION};

        type record of WorkerConf WorkerConfArray;
    
        /**
        * @desc    Data structure for simulator's worker
        * @member  id                  id or the worker
        * @member  phoneNumber         associated phone number
        * @member  internalSubscriber  internal suscriber
        */
        type record WorkerConf {
            integer id,
            TelephoneNumber phoneNumber,
            TelephoneNumber internalSubscriber
        }

        /**
        * @desc    Simulator config 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
        * @member  t5Timer              I:   Value of T5 timer
        * @member  t6Timer              P,I: Value of T6 timer
        * @member  t7Timer              I:   Value of T7 timer
        * @member  t8Timer              P:   Value of T8 timer
        * @member  sendNecDisabler      P:   If true, a 2100 Hz tone will be sent for 2 seconds upon detecting the SEND message from the IVS to disable network echo cancellers (default: false)
        * @member  numberOfAlAcks       P:   (default: 4)
        * @member  numberOfLlAcks       P:   (default: 4)
        * @member  eCallMessage         I:
        * @member  automaticAlAck       P:   (default: true)
        * @member  alAckValue           P:   Used if automatic_al_ack is true (default :0)
        * @member  inbandState          P,I: Only useful if inband_control is MANUAL
        * @member  inbandControl        P,I: (default: AUTO)
        * @member  inbandDirection      P,I: (default: PUSH)
        * @member  internalSubscriber   P,I: Gets called when inband_state FULL->HALF or FULL -> OFF AND call is not yet established
        * @member  ignoreAlClearDown    I:   Whether a received ALACK with clear-down flag shall be ignored (default: false)
        * @member  simulateCrcError     P:   Pretend that received MSD has CRC error
        *                               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 {
            SimulatorModeType mode optional,
            TimerDurationType t3Timer optional,
@@ -99,10 +131,32 @@ module LibItsECall_TypesAndValues {
            encode (eCallMessage) "ECallMessageUnion";
        }

    group simulator {
        
        group events {

            /**
            * @desc    Top-level aggregation type for Events
            * @member  configChanged
            * @member  inbandMsdReceived
            * @member  inbandLlAckSent
            * @member  inbandLlAckReceived
            * @member  inbandAlAckSent
            * @member  inbandAlAckReceived
            * @member  inbandStateChanged
            * @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
            */
            type union Event {
                ConfigChangedEvent                  configChanged,
                InbandMsdReceivedEvent              inbandMsdReceived,
@@ -126,6 +180,13 @@ module LibItsECall_TypesAndValues {
                TimerExpiredEvent                   timerExpired
            }
            
            /**
            * @desc   Generated whenever one or more configuration options changed
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member parameters    Configuration parameters
            * @remark mode: PSAP, IVS
            */
            type record ConfigChangedEvent {
                integer worker,
                charstring time,
@@ -136,6 +197,13 @@ module LibItsECall_TypesAndValues {
                variant (time) "time";
            }
              
            /**
            * @desc   Indicates the successful reception of an MSD
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member eCallMessage  Received raw message
            * @remark mode: PSAP
            */
            type record InbandMsdReceivedEvent {
                integer worker,
                charstring time,
@@ -148,6 +216,13 @@ module LibItsECall_TypesAndValues {
                encode (eCallMessage) "ECallMessageUnion";
            }
              
            /**
            * @desc   Generated when sending a LL-ACK indicating successful reception of an MSD to the IVS
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member count
            * @remark mode: PSAP
            */
            type record InbandLlAckSentEvent {
                integer worker,
                charstring time,
@@ -159,6 +234,14 @@ module LibItsECall_TypesAndValues {
                variant (count) "count";
            }
            
            /**
            * @desc   Generated when receiving a LL-ACK indicating successful reception of an MSD to the IVS
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member count
            * @member reliable
            * @remark mode: IVS
            */
            type record InbandLlAckReceivedEvent {
                integer worker,
                charstring time,
@@ -172,6 +255,14 @@ module LibItsECall_TypesAndValues {
                variant (reliable) "reliable";
            }
              
            /**
            * @desc   Generated when sending an AL-ACK indicating the format of the MSD is ok
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member count
            * @member val
            * @remark mode: PSAP
            */
            type record InbandAlAckSentEvent {
                integer worker,
                charstring time,
@@ -185,6 +276,15 @@ module LibItsECall_TypesAndValues {
                variant (val) "value";
            }
            
            /**
            * @desc   Generated when receiving an AL-ACK indicating the format of the MSD is ok
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member count
            * @member val
            * @member reliable
            * @remark mode: IVS
            */
            type record InbandAlAckReceivedEvent {
                integer worker,
                charstring time,
@@ -200,6 +300,14 @@ module LibItsECall_TypesAndValues {
                variant (reliable) "reliable";
            }
            
            /**
            * @desc   Generated whenever the state of the in-band modem changes
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member fromState     Previous state (OFF, HALF, FULL)
            * @member toState       Current state (OFF, HALF, FULL)
            * @remark mode: PSAP, IVS
            */
            type record InbandStateChangedEvent {
                integer worker,
                charstring time,
@@ -213,6 +321,12 @@ module LibItsECall_TypesAndValues {
                variant (toState) "to-state";
            }
            
            /**
            * @desc   Indicates the reception of a SEND signal
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @remark mode: PSAP
            */
            type record InbandSendSignalReceivedEvent {
                integer worker,
                charstring time
@@ -222,6 +336,13 @@ module LibItsECall_TypesAndValues {
                variant (time) "time";
            }
            
            /**
            * @desc   Generated when sending a NACK indicating that the MSD was not yet received
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member count
            * @remark mode: PSAP
            */
            type record InbandNackSentEvent {
                integer worker,
                charstring time,
@@ -233,6 +354,13 @@ module LibItsECall_TypesAndValues {
                variant (count) "count";
            }
            
            /**
            * @desc   Generated when receiving a NACK indicating that the MSD was not yet received
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member count
            * @remark mode: IVS
            */
            type record InbandNackReceivedEvent {
                integer worker,
                charstring time,
@@ -244,6 +372,13 @@ 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,
@@ -255,6 +390,15 @@ module LibItsECall_TypesAndValues {
                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,
@@ -270,6 +414,15 @@ module LibItsECall_TypesAndValues {
                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,
@@ -285,6 +438,13 @@ module LibItsECall_TypesAndValues {
                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,
@@ -296,6 +456,13 @@ module LibItsECall_TypesAndValues {
                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,
@@ -307,6 +474,13 @@ module LibItsECall_TypesAndValues {
                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,
@@ -318,6 +492,14 @@ module LibItsECall_TypesAndValues {
                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,
@@ -331,6 +513,12 @@ module LibItsECall_TypesAndValues {
                variant (reason) "reason";
            }
            
            /**
            * @desc   Generated whenever bidirectional voice communication is possible
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @remark mode: PSAP, IVS
            */
            type record CallVoiceConnectionEstablishedEvent {
                integer worker,
                charstring time
@@ -340,6 +528,14 @@ module LibItsECall_TypesAndValues {
                variant (time) "time";
            }
            
            /**
            * @desc   Indicates the reception of a START signal
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member count
            * @member reliable
            * @remark mode: IVS
            */
            type record InbandStartSignalReceivedEvent {
                integer worker,
                charstring time,
@@ -353,6 +549,14 @@ module LibItsECall_TypesAndValues {
                variant (reliable) "reliable";
            }
            
            /**
            * @desc   Generated when a timer expires
            * @member worker        Worker process that generated this event
            * @member time          Event timestamp
            * @member name          The name of the timer
            * @member val           The value of the timer in seconds
            * @remark mode: PSAP, IVS
            */
            type record TimerExpiredEvent {
                integer worker,
                charstring time,
@@ -370,6 +574,12 @@ module LibItsECall_TypesAndValues {
            
        group commands {
            
            /**
            * @desc   Change configuration options
            * @member worker        Target worker process
            * @member parameters    Configuration parameters
            * @remark mode: PSAP, IVS
            */
            type record SetConfigCmd {
                integer worker,
                ConfigParameters parameters
@@ -378,6 +588,12 @@ module LibItsECall_TypesAndValues {
                variant (worker) "worker";
            }
            
            /**
            * @desc   Accept an incoming call
            * @member worker        Target worker process
            * @member callRef       EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallAcceptCmd {
                integer worker,
                CallRefType callRef
@@ -387,6 +603,11 @@ module LibItsECall_TypesAndValues {
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   End a call in progress. Always ends both the external call and the internal call
            * @member worker        Target worker process
            * @remark mode: PSAP, IVS
            */
            type record CallHangUpCmd {
                integer worker
            } with {
@@ -394,6 +615,12 @@ module LibItsECall_TypesAndValues {
                variant (worker) "worker";
            }
            
            /**
            * @desc   Reject an incoming call with the busy signal
            * @member worker        Target worker process
            * @member callRef       EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallRejectBusyCmd {
                integer worker,
                CallRefType callRef
@@ -403,6 +630,13 @@ module LibItsECall_TypesAndValues {
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Create an outgoing external call request
            * @member worker        Target worker process
            * @member to_           Call destination
            * @member callRef       EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallCreateCmd {
                integer worker,
                charstring to_,
@@ -414,6 +648,12 @@ module LibItsECall_TypesAndValues {
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Cancel an outgoing external call request
            * @member worker        Target worker process
            * @member callRef       EXTERNAL
            * @remark mode: PSAP, IVS
            */
            type record CallCancelCmd {
                integer worker,
                CallRefType callRef
@@ -423,12 +663,23 @@ module LibItsECall_TypesAndValues {
                variant (callRef) "call-ref";
            }
            
            /**
            * @desc   Request retransmission of an MSD. Only works if there is no MSD transmission already in progress
            * @member worker        Target worker process
            * @remark mode: PSAP
            */
            type record InbandRequestMsdCmd {
                integer worker
            } with {
                variant "inband_request_msd"
            }
              
            /**
            * @desc   Send an application layer acknowledgment
            * @member worker        Target worker process
            * @member val           Acknowledgement value
            * @remark mode: PSAP
            */
            type record InbandSendAlAckCmd {
                integer worker,
                AckValueType val
@@ -445,8 +696,23 @@ module LibItsECall_TypesAndValues {
        encode "SimulatorInterface";
    }

    group misc {
    
        /**
        * @desc    Return type for f_expectFeedback function.
        * @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 {
            boolean failure,
            Event event
        }

    } // end misc
    
    group constants {
        const AckValueType c_positiveAlAck := 0;
        const AckValueType c_clearDownAlAck := 2;
        const float c_now := 0.0;
    
    } // end constants
}