52.28.10 M2F Dial Answer Snippet
This snippet conducts a sequence of voice calls, alternately mobile-terminated (MT) and mobile-originated (MO), between a TEMS Investigation data-collecting device and a CallGenerator.
At the top level this snippet consists of a sequence activity which encloses the voice call sequence structure. The sequence activity differs from a regular
"Sequence" in that it imposes various constraints on its contents, as dictated by the requirements of the sequence of voice calls.
Prerequisites
Note:The device must display the home screen when answering incoming calls; otherwise the DTMF signaling will not work.
|
Also make sure that the proximity sensor in the device is not triggered (for example, by someone tapping the screen or by dangling cables) during execution of the voice call sequence, since this will lock the device screen and inhibit the DTMF signaling.
Sequence Order Call
The snippet starts with a
"Dial" activity making a Sequence Order (SO) call to the CallGenerator. The function of the SO call is to order MT calls from the CallGenerator and to inform it about the requested call sequence structure as embodied in the rest of the snippet. These parameters are sent by DTMF signaling and include:
Device phone number. Note: This must be defined for the device in the Navigator: Equipment tab > Information subtab > Phone Number field. See section ""Information" Subtab". A plus sign cannot be sent via DTMF; a leading "+" will be automatically converted to the international call prefix "00". If a different international call prefix is required where the CallGenerator resides, it must be given explicitly in the device's Phone Number field.
Number of MT calls
Number of MO calls
Duration of voice quality measurements
Interval between voice calls
Voice quality is measured during the SO call itself.
The SO call can optionally be shorter than the subsequent MO and MT calls. The minimum duration of the SO call is 60 seconds.
Outer While Loop
The SO call hang-up is followed by an outer while loop which contains two further while loops inside it: one for MT calls and one for MO calls.
MT Call Loop
The device picks up each MT call by means of the
"Answer""Answer" activity, then runs a
"Voice Quality""Voice Quality" activity, which also determines the duration of the call.
MO Call Loop
The device places each MO call by means of the
"Dial" activity and measures voice quality just as for MT calls.
Termination of Call Sequence
When the snippet terminates, for example when the script is stopped, a Sequence Cancel call is placed to the CallGenerator so that it stops calling. Unlike the Sequence Order (SO) call, the Sequence Cancel call requires no configuration of any kind and is not visible in the user interface.
Note:Do not manually abort the Sequence Cancel call; if you do, the device will keep receiving calls from the CallGenerator.
|
Constraints on Syntax and Configuration
It is strongly recommended that you stick to the M2F Dial Answer snippet in setting up voice call sequences, since the setup is somewhat complex and the framework provided takes care of all necessary validation. The following constraints apply:
The Dial activities must (obviously) have the same recipient phone number, namely, that of the CallGenerator.
All Voice Quality activities must have identical parameter setups.
The SO call must come first, then the MT loop, and finally the MO loop. The MT loop is mandatory; the MO loop, on the other hand, is optional and can be omitted.
The MT and MO call loops must take the same total amount of time. Specifically, MT Voice Quality Duration + MT Wait Duration + 10 s (estimated time taken by Answer activity) must be equal to MO Voice Quality Duration + MO Wait Duration.
The preconfigured snippet is of course set up in such a way as to satisfy these requirements. The default Wait time is set shorter for MT than for MO in order to ensure that the device is ready to answer the MT call when it arrives. Since the time taken by Dial, Answer, Hang Up, and the DTMF signaling will vary from one call to another, the timing is continuously adjusted during execution so that the call parties stay in sync.
What you may want to do in terms of modification, however, is to add activities for device control and logfile recording to the snippet. Besides the activity types found in the predefined snippet, the following further activities are allowed within the M2F Dial Answer activity:
"Activate", "Deactivate"
"Start Recording", "Stop Recording"
Failure Cases
If the SO call fails, it is retried practically indefinitely (On Failure > Retries is set to 10000).
If an expected MT call from the CallGenerator does not arrive, the snippet keeps running until the Answer activity has timed out three times, and then terminates. If the script has the snippet enclosed within a further while loop, the snippet will start over with a new SO call.
If the snippet terminates because of some error condition, a Sequence Cancel call is made to the CallGenerator to inhibit MT calls.