Skip to content
/ .. / .. /
Voice Call Compound Steps





Voice Call Compound Steps

Voice Call Compound Steps are parameterized Steps that perform the multiple actions of a voice call in the background. This includes:

  • Determining lengths of time, such as the call or when the callee answers the phone.

  • Assigning the dialed format to the call.

  • Using call forwarding.

Call parameters and their values may be specified as Step Details, which are nested Steps beneath the Compound Step.

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * callee does not answer
      * ringing duration is 30 seconds
      * caller ends the call

    And expect the call MYCALL to start ringing

    Then verify !A.isConnected()
    Then verify !B.isConnected()

In the example above, the Compound Step is And A starts a call to B as MYCALL:. The nested items beneath the Compound Step, indicated with a *, are the Step Details. Compound Steps contain a set of default values, which means if no Step Details are specified, intaQt assigns a default value. For example, if the detect incoming call Step Detail was omitted from the example above, a default value of 30 seconds would be applied.

Default values may be configured, as described in Configure Compound Step Default Parameters.

Note:

  • All actions that refer to a Voice Call Compound Step are referenced by an assigned variable, for example, MYCALL in And A starts a call to B as MYCALL:.

  • Within Step Details, the phone making the call is referred to as the caller and the phone receiving the call is referred to as the callee.

Compound Step Requirements and Restrictions

Address the Phones

A Voice Call Compound Step must include a Step or Compound Steps that assigns phones to the test case:

Expectation Steps

Some Step Details require additional Expectation Steps to confirm that the phone enters the expected state. These Steps confirm, for example, start ringing, connect, disconnect and does not detect an incoming call. All Step Details that require an Expectation Step are marked with a Note.

Incompatible Step Details

Certain Step Details are incompatible with each other. If Incompatible Step Details are used, an exception error will be printed to the log.

Compound Steps
Start the Call
Start Voice Call Without Step Details
Monitor Speech Channels
Detect Incoming Call
Abandon the Call
Call is Ended by Non-intaQt Entity
Reject the Call
Network Rejects the Call
Call Duration
Call Duration is Prolonged Until Interrupted
Call Discconnects
End the Call
Caller Connects
Callee Connects
Callee Does Not Answer
Dialed Format
Expected Phone Number Formats and Characteristics
Callee Expects the Call in a Specified Format
Callee Expects the Call Based on a Number Characteristic
Callee Ignores the Number Format
Ringing Duration
Callee Does Not Detect Call
Callee Does Not Detect an Incoming Call - With Call Forwarding No Answer
Call Forwarding Step Details
Call Forwarding Unconditional
Call Forwarding Not Reachable
Call Forwarding Busy with Active Call
Call Forwarding Busy with Rejected Call
Call Forwarding No Answer
External Call Relaying
Test Case Example

Start a Call - With Step Details

The starts a call Compound Step initiates a voice call from the caller to the callee, and assigns the call a name. The assigned name stores the Compound Step execution details, allowing the Compound Step to be referenced by its unique identifier for the duration of the call.

Important! This Step must have a colon (:) appended when one or more Step Details are present. A variation of the Voice Call Compound Step without a colon, Start Voice Call Call Without Step Details, may be used if no Step Details are specified.

Syntax

1
<caller Identifier> starts a call to <callee Identifier> as <callName Identifier>:

Parameters

  • caller - The name assigned to the dialing phone, which must be an intaQt-controlled phone

  • callee - The name assigned to the phone being called by the caller

    • The name represents either:
      • An intaQt-controlled phone
      • An arbitrary expression that evaluates to a string
        • This expression tells intaQt to interpret the string as a phone number
  • callName - The name assigned to the call

Call to Predefined Phone Example

1
2
3
4
5
6
7
8
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds

In the example above, the receiving party evaluates to a predefined phone identifier.

Call to Phone Defined by a String Expression Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Feature: MyCall
  Scenario: Compound Call

    Given a phone as A
      * of type Android

    And define XY as "43"

    And A starts a call to "+" + XY + "69912345678" as MYCALL:
      * detect incoming call within 10 seconds

In the example above, the callee is specified by an arbitrary string expression and interpreted as a phone number.

Note: If the callee is not intaQt-controlled, all checks on the callee side, for example, verify and expect states, must be skipped. The Relayed Call section describes additional information about handling a callee that is not controlled by intaQt.

Start Voice Call Call - Without Step Details

The Voice Call Compound Step may be used without Step Details as part of a Voice Call. In this case, the colon (:) must be omitted. intaQt will assign default values for the call.

Syntax

1
<caller Identifier> starts a call to <callee Identifier> as <callName Identifier>

Parameters

  • caller - The name assigned to the dialing phone, which must be an intaQt-controlled phone

  • callee - The name assigned to the phone being called by the caller

    • The name represents either:
      • An intaQt-controlled phone
      • An arbitrary expression that evaluates to a string
        • This expression tells intaQt to interpret the string as a phone number
  • callName - The name assigned to the call

Example

1
2
3
4
5
6
7
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL

Monitor Speech Channels

The Step Detail is responsible for starting and stopping the recording of the speech channels and the playback of the audio references. To assess speech channels quality using simple steps with the intaQt AudioService, refer to Speech Channel Monitoring.

When this Step Detail is used, intaQt will:

  • Start audio recording on both phones after the call is established.

  • Start playback of a predetermined audio file that contains beeping sounds on both phones.

  • Stop audio recording on denoted phones after the call has ended.

  • Stop playback of the beeping sounds for both denoted phones.

Syntax

1
monitor the speech channels

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Given an Android phone as A
Given an Android phone as B

And A starts a call to B as MY_CALL:
  * monitor the speech channels

And expect the call MY_CALL to start ringing
And expect the call MY_CALL to connect
And expect the call MY_CALL to disconnect

And evaluate speech channel monitoring for call MY_CALL

Detect Incoming Call

This Step Detail specifies how long to wait to detect a call before timing out. When the Step Detail is omitted, a default value of 30 seconds will be used for the detection timeout. If no call is detected within the time out, the Voice Call Compound Step will fail.

The Expect the Call to Start Ringing Step should be used with this Step Detail.

Syntax

1
  * detect incoming call within <timeout Number> <timeUnit TimeUnit>

Parameters

  • timeout - The number of timeUnits to wait for the callee to detect a call before timing out

  • timeUnit - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MY_CALL:
     * detect incoming call within 7 seconds

    And expect the call MY_CALL to start ringing

Abandon the Call

This Step Detail abandons the call before the callee can connect, but after the specified Ringing Duration has elapsed.

Syntax

1
* caller abandons the call after ringing duration elapsed

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * ringing duration is 10 seconds
      * caller abandons the call after ringing duration elapsed

    And wait for 30 seconds

Call is Ended by a Non-intaQt Entity

This Step Detail is used when a non-intaQt operated entity ends an ongoing call. Some example scenarios are:

  • The call is ended by a non-intaQt operated phone.

  • The call is ended by other non-intaQt operated entities, such as interactive voice response or an automated answering system.

  • The call is terminated by the network, for instance, the caller's balance becomes too low during the call.

The Expect the Call to Disconnect Step should be used with this Step Detail.

Syntax

1
* call is terminated within <timeout Number> <timeUnits TimeUnit>

Parameters

  • timeout - The specified number of timeUnits for the call duration

  • timeUnits - Must be one of millisecond, milliseconds, second, seconds, minute, minutes, hour or hours

Non-intaQt-Entity Ends the Call Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Feature: MyCall
  Scenario: Compound Call

    Given a phone as A:
      * of type Android

    And A starts a call to "+43123456789" as MY_CALL:
      * call is terminated within 10 seconds

    And expect the call MY_CALL to disconnect

Network Terminates an Ongoing Call Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

     And A starts a call to B as MY_CALL:
       * call is terminated within 10 seconds

     And expect the call MY_CALL to disconnect

Reject the Call

In this Step Detail, the callee rejects the call after a specified ringing duration has elapsed.

The Expect the Call to be Rejected Step should be used with this Step Detail.

Syntax

1
* callee rejects the call

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
  * detect incoming call within 20 seconds
  * ringing duration is 8 seconds
  * callee rejects the call
And expect the call MY_CALL to be rejected

Network Rejects the Call

In this Step Detail, the call is rejected by the network. The callee does not ring, meaning no connection will be established. For example, when the caller has a low balance and cannot initiate a call, the call will be rejected by the network.

The Expect the Call to be Rejected Step should be used with this Step Detail.

Important!

  • Both phones must be intaQt-controlled and a timeout must be specified.

  • Depending on the provider, a network rejection may be followed by an announcement and then a hangup. In such a case, the timeout must be long enough so that any announcements can finish playing. If not, the Compound Step will fail.

Syntax

1
  * network rejects the call within <timeout Number> <timeUnit TimeUnit>

Parameters

  • timeout - The number of timeUnits to wait for the network to reject the call

  • timeUnit - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * network rejects the call within 20 seconds

    And expect the call MYCALL to be rejected

Call Duration

This Step Detail specifies the call duration. When the Step Detail is omitted, a default value for the call duration is a random number between 2 and 20 seconds.

The Expect the Call to Disconnect Step should be used with this Step Detail.

Syntax

1
  * call duration is <timeout Number> <timeUnits timeUnits>

Parameters

  • timeout - The specified number of timeUnits for the call duration

  • timeUnits - Must be one of millisecond, milliseconds, second, seconds, minute, minutes, hour or hours

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * call duration is 2 minutes

    And expect the call MYCALL to connect
    And expect the call MYCALL to disconnect

Call Duration is Prolonged Until Interrupted

This Step Detail keeps the call active until it is interrupted.

Syntax

1
* call duration is prolonged until interrupted

Call Disconnects

This Step Detail modifies the disconnect timeout. In other words, the amount of time that is required for the phones to be released after the call has been terminated. When the Step Detail is omitted, a default value for the call disconnect is 10 seconds.

Syntax

1
* call disconnects within <timeout Number> <timeUnit TimeUnit>

Parameters

  • timeout - The number of timeUnits to wait for the party to disconnect before timing out

  • timeUnit - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Disconnect Timeout in Seconds Example

1
2
And A starts a call to B as EXAMPLE_CALL:
      * call disconnects within 7 seconds

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as EXAMPLE_CALL:
      * call disconnects within 765 milliseconds

    And expect the call MYCALL to connect
    And expect the call MYCALL to disconnect

End the Call

This Step Detail defines which party ends the call. The default value is the caller.

Syntax

1
  * <endingParty Identifier> ends the call

Parameter

  • endingParty - The party who ends the call

Example

1
  * caller ends the call

Connection

Caller Connects

This Step Detail specifies the timespan in which the caller must connect. If it is omitted, the default value is 5 seconds.

The Expect the Call to Connect Step should be used with this Step Detail.

Syntax

1
* caller connects within <timeout Number> <timeUnit TimeUnit>

Parameters

  • timeout - The number of timeUnits to wait for the caller to connect before timing out

  • timeUnit - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * caller ends the call
      * caller connects within 10 seconds
      * callee connects within 10 seconds
      * caller dials nat format
      * callee expects signaled number in any format
      * call duration is prolonged until interrupted
      * ringing duration is 8 seconds

    And expect the call MY_CALL to connect

Callee Connects

This Step Detail specifies the timespan in which the callee must connect. If it is omitted, intaQt will not check if the callee has connected.

The Expect the Call to Connect Step should be used with this Step Detail.

Syntax

1
* callee connects within <timeout Number> <timeUnit TimeUnit>

Parameters

  • timeout - The number of timeUnits to wait for the callee to connect

  • timeUnit - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

1
2
3
4
5
6
7
8
9
Feature: MyCall
  Scenario: Compound Call

    And A starts a call to B as MY_CALL:
       * detect incoming call within 7 seconds
       * ringing duration is 5 seconds
       * callee connects within 8 seconds

    And expect the call MY_CALL to connect

Callee Does Not Answer

In this Step Detail, the callee does not answer and the caller connects to voicemail. The callee's mailbox should be configured prior to the test execution in order for the Step to pass. The timeout for when the ringing stops and the call is forwarded to voicemail can be specified as follows:

Syntax

1
* callee does not answer

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * callee does not answer
      * ringing duration is 30 seconds
      * caller ends the call

    And expect the call MYCALL to start ringing

    Then verify !A.isConnected()
    Then verify !B.isConnected()

In the example above, the call will be forwarded to voicemail after the 30 seconds ringing duration.

Call Format

Dialed Format

This Step Detail defines the number format that the caller uses. The default value is int.

Syntax

1
* caller dials <formatId Format> format

Parameter

  • formatId - One of int, int00, or nat

Example

1
2
3
4
5
6
7
8
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * caller dials int00 format

Note: nat is equivalent to the .local format.

Expected Phone Number Formats and Characteristics

These Step Details specify the format or characteristics a phone number should have when received by the callee, such as how the phone number would appear on the callee's display.

This may be one of:

  • The dialed number format - The default value is any, which means that the format is not being checked.

  • Any other characteristic that can describe the phone number. For example, expecting the phone number to appear as "Restricted Number".

Callee Expects the Call in a Specified Format

This Step Detail specifies that the callee expects the signaled number to be received in a certain format.

Syntax

1
* callee expects signaled number in <formatId Format> format

Parameters

  • formatId - One of int, int00, nat or any
    • nat is equivalent to the .local format
    • The default is any

Signaled Number from Context Objects Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Feature: MyCall
 Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * caller ends the call
      * caller connects within 5 seconds
      * callee connects within 5 seconds
      * caller dials nat format
      * call duration is 3 seconds
      * ringing duration is 3 seconds
      * callee expects signaled number as signaledFormatPart1 + signaledFormatPart2

In the example above, the signaled number is comprised of two Context Objects.

Context Object Example

1
2
3
4
ContextObjects = {
     signaledFormatPart1 : "+436991"
     signaledFormatPart2 : "234567"
}

Callee Expects the Call Based on a Number Characteristic

This Step Detail specifies that the callee expects the call according to any defined characteristic.

Syntax

1
* callee expects signaled number as <numberId Any>

Parameter

  • numberId - The expected caller's number
    • It represents either an intaQt-controlled phone or an arbitrary expression that evaluates to a string
    • This tells intaQt to interpret the string as a phone number

Signaled Number with "any" Format Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * caller ends the call
      * caller connects within 5 seconds
      * callee connects within 5 seconds
      * caller dials nat format
      * call duration is 3 seconds
      * ringing duration is 3 seconds
      * callee expects signaled number in any format

Callee Ignores the Number Format

This Step Detail specifies that the callee ignores caller number format when awaiting the incoming call detecting.

Syntax

1
* callee ignores signaled number

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * caller ends the call
      * caller connects within 5 seconds
      * callee connects within 5 seconds
      * caller dials nat format
      * call duration is 3 seconds
      * ringing duration is 3 seconds
      * callee ignores signaled number

Note: This Step Detail is incompatible with the following Step Details: * callee expects signaled number in <formatId Format> format * callee does not detect an incoming call within <time Number> seconds * callee expects signaled number as <numberId Any> * network rejects the call within <time Number> seconds

Ringing Duration

This Step Detail defines the ringing duration before the callee picks up the call. The default value is a random number between 2 and 6 seconds. An exception to this default value is if the callee does not answer Step Detail is used in the Voice Call Compound Step. In this case, the default value will be set to 30 seconds so that the timeout is long enough to trigger the no answer functionality.

Syntax

1
  * ringing duration is <timeout Number> <timeUnit TimeUnit>

Parameters

  • timeout - The number of timeUnits in the ringing duration

  • timeUnit - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

1
* ringing duration is 5 seconds

Callee Does Not Detect Call

This Step Detail specifies that the callee does not detect any incoming calls.

The Expect the Call to Not to Be Established Step should be used with this Step Detail.

Note: This Step Detail is only compatible with the following two Step Details:

Syntax

1
  * callee does not detect an incoming call within <timeout Number> <timeUnit TimeUnit>

Parameters

  • timeout - The number of timeUnits within which the callee does not receive an incoming call

  • timeUnit - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

1
* callee does not detect an incoming call within 10 seconds

If the does not detect Step Detail includes a Call Forwarding Step Detail, both the relay and the target (B and C in the example below) are expected to not receive an incoming call.

Example

1
2
3
4
5
6
7
8
9
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
      * call forwarding not reachable to C
      * callee does not detect an incoming call within 10 seconds

Callee Does Not Detect an Incoming Call - With Call Forwarding No Answer

There is one exception to the callee does not detect an incoming call Step: If the call forwarding no answer Step Detail is used…, intaQt will expect the relay to detect an incoming call from the caller, ring for an amount of time and not answer the call. This results in the call being forwarded to the target. Otherwise, the target is expected not to detect an incoming call.

Example

1
2
3
4
5
6
7
8
9
Feature: MyCall
  Scenario: Compound Call

    Given phones as A and B:
      * of type Android

    And A starts a call to B as MYCALL:
       * call forwarding no answer to C
       * callee does not detect an incoming call within 10 seconds

In order for the does not detect Step Detail above to be successful, B should detect an incoming call (because of the call forwarding type) and C should not detect an incoming call.

Call Forwarding

Call Forwarding scenarios always include three phones: the caller, the relay (the phone being called) and the target, who receives the forwarded call from the relay.

Four Call Forwarding Step Details are available:

  • Call Forwarding Unconditional, where every call is forwarded and the relay (Phone B) does not ring.

  • Call Forwarding Not Reachable, where the call is forwarded if the relay (Phone B) cannot be reached.

  • Call Forwarding Busy with or without an active call:

    • In Call Forwarding Busy with an active call, the call is forwarded if the relay is busy with another call.
    • In Call Forwarding Busy without an active call, the relay rejects the call and it is forwarded to the target.
  • Call Forwarding No Answer, where the relay is busy or rejects, where the call is forwarded to the target after the relay does not answer the call.

Note: The Ensure Settings With Call Forwarding Compound Step is required when using call forwarding Step Details. This procedure sets the Call Forwarding.

Call Forwarding Unconditional

Call Forwarding Unconditional specifies that every call will be forwarded.

  • The relay does not ring.

Syntax

1
* call forwarding unconditional to <forwardedParty Identifier>

Parameter

  • forwardedParty - The name assigned to the target party that receives the forwarded call
    • The target must be an intaQt-controlled phone

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Feature: forwardEx1
  Scenario: forwardEx1

    Given phones as A, B and C:
      * of type Android

    And ensure settings on phone B:
      * with call forwarding unconditional to C.number

    And wait for 15 seconds

    And A starts a call to B as MYCALL:
      * detect incoming call within 20 seconds
      * caller dials nat format
      * callee expects signaled number in any format
      * ringing duration is 8 seconds
      * call forwarding unconditional to C

    And expect the call MYCALL to start ringing
    And expect the call MYCALL to connect
    And expect the call MYCALL to disconnect

    And ensure settings on phone B:
      * without call forwarding

Call Forwarding Not Reachable

Call Forwarding Not Reachable specifies that if the relay cannot be reached, the call is forwarded.

  • The relay does not ring.

Syntax

1
* call forwarding not reachable to <forwardedParty Identifier>

Parameter

  • forwardedParty - The name assigned to the target party that receives the forwarded call
    • The target must be an intaQt-controlled phone

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Feature: forwardEx2
  Scenario: forwardEx2

    Given phones as A, B and C:
      * of type Android

    And ensure settings on phone B:
      * with call forwarding not reachable to C.number

    And wait for 15 seconds

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * caller dials nat format
      * callee expects signaled number in any format
      * ringing duration is 8 seconds
      * call forwarding not reachable to C

    And expect the call MYCALL to start ringing
    And expect the call MYCALL to connect
    And expect the call MYCALL to disconnect

    And ensure settings on phone B:
      * without call forwarding

Call Forwarding Busy with Active Call

Call Forwarding Busy with Active Call specifies that the call is forwarded when the relay is busy with another call. The default timeout is 90 seconds.

  • The relay does not ring.

Syntax

1
2
3
4
5
6
  // Without timeout

* call forwarding busy with active call to <forwardedParty Identifier>
  // With timeout
  * call forwarding busy with active call to <forwardedParty Identifier>
     within <timeout Number> <timeUnit TimeUnit>

Parameters

  • forwardedParty - The name assigned to the party which receives the forwarded call

    • The receiving party must be an intaQt-controlled phone
  • timeout (optional) - The number of timeUnits within the call should be forwarded

  • timeUnit (optional) - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Feature: forwardEx3
  Scenario: forwardEx3

    Given phones as A, B and C:
      * of type Android

    And ensure settings on phone B:
      * with call forwarding busy to C.number

    And wait for 15 seconds

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * caller dials nat format
      * callee expects signaled number in any format
      * ringing duration is 8 seconds
      * call forwarding busy with active call to C within 35 seconds

    And expect the call MYCALL to start ringing
    And expect the call MYCALL to connect
    And expect the call MYCALL to disconnect

    And ensure settings on phone B:
      * without call forwarding

Call Forwarding Busy with Rejected Call

Call Forward Busy with Rejected Call specifies that the relay waits for the incoming call and rejects it after the specified ringing duration. The relay then disconnects within the specified timeout. Next, the target waits for the incoming call. The default timeout is 90 seconds.

Syntax

1
2
3
4
5
6
// Without timeout

* call forwarding busy with rejected call to <forwardedParty Identifier>
// With timeout

* call forwarding busy with rejected call to <forwardedParty Identifier> within <timeout Number> <timeUnit TimeUnit>

Parameters

  • forwardedParty - The name assigned to the party which receives the forwarded call

    • The receiving party must be an intaQt-controlled phone
  • timeout (optional) - The number of timeUnits within the call should be forwarded

  • timeUnit (optional) - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
Feature: forwardEx4
  Scenario: forwardEx4

    Given phones as A, B and C:
      * of type Android

    And ensure settings on phone B:
      * with call forwarding busy to C.number

    And wait for 15 seconds

    And A starts a call to B as MYCALL:
      * call forwarding busy with rejected call to C within 35 seconds
      * ringing duration is 10 seconds
      * call duration is 12 seconds
      * detect incoming call within 25 seconds

    And within 90 seconds, expect the call MYCALL to connect
    And within 15 seconds, expect the call MYCALL to disconnect

Call Forwarding No Answer

Call Forwarding No Answer specifies that the relay rings, but the call is not answered. After the relay disconnects, the call is forwarded to the target. The default timeout is 90 seconds.

Syntax

1
2
3
4
5
6
  // Without timeout

* call forwarding no answer to <forwardedParty Identifier>
  // With optional timeout
  * call forwarding no answer to <forwardedParty Identifier> within
     <timeout Number> <timeUnit TimeUnit>

Parameters

  • forwardedParty - The name assigned to the party which receives the forwarded call

    • The receiving party must be an intaQt-controlled phone
  • timeout - The number of timeUnits within the call should be forwarded

  • timeUnit - Must be one of millisecond, milliseconds, second, seconds, minute or minutes

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Feature: forwardEx5
  Scenario: forwardEx5

    Given phones as A, B and C:
      * of type Android

    And ensure settings on phone B:
      * with call forwarding no answer to C.number

    And wait for 15 seconds

    And A starts a call to B as MYCALL:
      * call forwarding no answer to C within 75 seconds
      * ringing duration is 10 seconds
      * call duration is 12 seconds
      * detect incoming call within 25 seconds

    And expect the call MYCALL to start ringing
    And expect the call MYCALL to connect
    And expect the call MYCALL to disconnect

    And ensure settings on phone B:
      * without call forwarding

In the example above, relay phone B should detect an incoming call within 25 seconds. After detecting the incoming call on B, B should disconnect within 75 seconds. After B disconnects, target phone, C should detect an incoming call within 25 seconds. If B does not ring or does not disconnect within the timeout, the test fails.

External Call Relaying

If the party receiving the call is not controlled by intaQt, the call can be relayed to an intaQt-controlled callee. For example, when defining the callee, an arbitrary string expression may be used to represent a call receiving party, as described in the Start a Call Step Detail.

Syntax

1
* call is relayed to <relayedParty Identifier>

Parameter

  • relayedParty - The name assigned to the phone, which must be an intaQt-controlled phone

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Feature: RelayCall
  Scenario: RelayCallFromExternal

    Given a phone as A:
      * of type Android

    And a phone as B:
      * where number == "+4369912345678"

    And define pre as "43"

    And A starts a call to "+" + pre + "66012345678" as MYCALL:
      * call duration is 20 seconds
      * call is relayed to B

    And expect the call MYCALL to connect

In the example above, A dials +4366012345678 and the call is relayed to the intaQt-controlled phone B. B is treated as the callee, including all checks.

Note: The relayed Step Detail cannot be combined with Call Forwarding Step Details. Additionally, callee-related Step Details have no effect on the call when the callee is specified by a phone number.

Compound Step Test Case Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
Feature: callCompoundStep
  Scenario: callCompoundStepScenario
    Given a phone as A:
      * of type Android
      * where operator == "3 AT"
      * with profile Vienna
    And a phone as B:
      * of type Android

    And A starts a call to B as MYCALL:
      * detect incoming call within 10 seconds
      * call duration is 7 seconds
      * caller ends the call
      * caller connects within 5 seconds
      * callee connects within 5 seconds
      * caller dials nat format
      * callee expects signaled number in any format
      * ringing duration is 8 seconds

     And expect the call MYCALL to start ringing
     And expect the call MYCALL to connect
     And expect the call MYCALL to disconnect