Call Transfer Compound Step¶
The Call Transfer Compound Step is similar to the Voice Call Compound Step, and enables the use of Step Details specific to a transferred call. All actions that refer to the Call Transfer Compound Step are referenced by an assigned variable, for example, CALL_TRANSFER
in And A calls B and B transfers the call to C as CALL_TRANSFER:
.
Call ransfer compound Steps must be preceded by Steps or compound Steps that address phones and assign them to the test case. For more information, refer to:
Start a Call Transfer ¶
This step starts the Call Transfer in the background. For the rest of the step, the call is referred to by its assigned name.
This step must have a colon (:
) appended.
Syntax
1 2 3 | And <callingParty Identifier> calls <calledParty Identifier> and <transferringParty Identifier> transfers the call to <targetParty Identifier> as <callTransferName Identifier>: |
Parameters
-
callingParty - The party that establishes the initial call
-
calledParty - The party that receives the initial call
-
transferringParty - The party that holds the initial call, places the second call and transfers it
-
targetParty - The party that receives the second call
-
callTransferName - The name assigned to the Call Transfer
Note:
-
When the transfer is performed by a phone of type
Mobile
, then thetransferringParty
must be the same as thecalledParty
. -
When the transfer is performed by a phone of type
VoIP
, then thetransferringParty
can either be thecalledParty
or thecallingParty
.
Example
1 2 3 4 5 | // B is an Android device (Mobile) And A calls B and B transfers the call to C as CALL_TRANSFER: // A is a SNOM (VoIP phone) And A calls B and A transfers the call to C as CALL_TRANSFER: |
Talking Duration ¶
This Step Detail specifies the talking duration between two parties. If omitted, a random default value between 2
and 5
seconds will be assigned.
If this Step Detail is used for a combination of parties that do not participate in a call together, the compound step fails with an error.
Syntax
1 | * <party Identifier> and <otherParty Identifier> talk for <timeout Number> seconds |
Parameters
-
party - One of the parties participating in the Call Transfer
-
otherParty - The other party participating in the Call Transfer
-
timeout - The talking duration between the two denoted parties
- Default is set to a random value between
2
and5
seconds
- Default is set to a random value between
Note: The order of the parties does not denote the direction of the Call Transfer.
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds * C and A talk for 11 seconds * B and C talk for 12 seconds |
Ringing Duration ¶
This Step Detail specifies the ringing duration for the called party of the initial call. If omitted, a random default value between 2
and 5
seconds will be assigned.
If this Step Detail is used for any other participating party or an unknown party, the compound step fails with an error.
Syntax
1 | * <calledParty Identifier> rings for <timeout Number> seconds |
Parameters
-
calledParty - The party that receives the initial call
-
timeout - The ringing duration of the initial call, before the called party answers the incoming call
- Default is set to a random value between
2
and5
seconds
- Default is set to a random value between
Example
1 2 | And A calls B and B transfers the call to C as CALL_TRANSFER: * B rings for 7 seconds |
Transfer Duration ¶
This Step Detail specifies the time needed for the transferring party to complete the Call Transfer. If omitted, a random default value between 15
and 20
seconds will be assigned. A minimum timeout of 15
seconds is suggested in order for the procedure to have enough time to complete successfully.
If this Step Detail is used for any other participating party or an unknown party, the compound step fails with an error.
Syntax
1 | * <transferringParty Identifier> takes <timeout Number> seconds to transfer the call |
Parameters
-
transferringParty - The party that holds the initial call, starts the second call and transfers it
-
timeout - The duration needed for the Call Transfer call to be completed
- Default is set to a random value between
15
and20
seconds
- Default is set to a random value between
Example
1 2 | And A calls B and B transfers the call to C as CALL_TRANSFER: * B takes 8 seconds to transfer the call |
Call Ending Party ¶
This Step Detail specifies the party that will end the transferred call. If omitted, by default the caller
will end the transferred call.
If this Step Detail is used for the transferring party or an unknown party, the compound step fails with an error.
Syntax
1 | * <party Identifier> ends the call |
Parameter
- party - The party that ends the transferred call
- Default is set to the
caller
- Default is set to the
Example
1 2 | And A calls B and B transfers the call to C as CALL_TRANSFER: * C ends the call |
Dialing Format ¶
This Step Detail specifies the dialing format for the specified call. If omitted, by default the caller
will dial in the international format.
If this Step Detail is used for a combination of parties that do not participate in a call instantiation together, the Compound Step fails with an error.
Syntax
1 2 | * <callingParty Identifier> calls <calledParty Identifier> using <formatType String> format |
Parameters
-
callingParty - The party that initiates the call
-
calledParty - the party that receives the call
-
formatType - The dialing format
- Default is set to
int
- May be one of
int
,int00
, ornat
- Default is set to
Example
1 2 3 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A calls B using int format * B calls C using int00 format |
Detect Dialing Format ¶
This Step Detail specifies the detecting dialing format for the specified call. If omitted, any
will be used by default.
If this Step Detail is used for a party that does not receive a call, the compound step fails with an error.
Syntax
1 | * <calledParty Identifier> detects an incoming call in <formatType String> format |
Parameters
-
calledParty - the party that receives the call
-
formatType - the dialing format
- Default is set to
any
- May be one of
int
,int00
,nat
orany
- Default is set to
Example
1 2 3 | And A calls B and B transfers the call to C as CALL_TRANSFER: * B detects an incoming call in nat format * C detects an incoming call in any format |
Speech Channel Monitoring ¶
This Step Detail enables the monitoring of the speech channels of all the calls that are established from this compound step. For the evaluation of the speech channels, the Evaluate the Speech Channels step must be invoked.
Syntax
1 | * monitor the speech channels |
Example
1 2 3 4 5 6 | And A calls B and B transfers the call to C as CALL_TRANSFER: * monitor the speech channels And evaluate speech channel monitoring for A and B And evaluate speech channel monitoring for B and C And evaluate speech channel monitoring for A and C |
Expect the Call Transfer to Finish ¶
The following step expects the entire Call Transfer procedure to finish.
Syntax
1 2 | And within <timeout Number> seconds, expect the call transfer <callTransferName Identifier> to succeed |
Parameters
-
timeout - The time period in which the entire Call Transfer procedure must finish
-
callTransferName - The Call Transfer name
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 90 seconds, expect the call transfer CALL_TRANSFER to succeed |
Additional Call Transfer Expectation Steps ¶
Using the Call Transfer compound step results in the establishment of three calls:
-
The initial call (The calling party to the called party)
-
The intermediate call (The transferring party to the target party)
-
The transferred call (The result of the Call Transfer)
Accessing the status of these individual calls can be achieved by using the .
operator on the Call Transfer name
and appending the unique identifier corresponding to the participating parties of the call, with the following format:
Syntax
1 | <callTransferName>.<phoneId>to<otherPhoneId> |
These expect
Steps test whether the Call Transfer has entered the specified state within a given timeout. Using one of these Steps Blocks the test case execution until the given state is reached. If the call state is not reached within the timeout, the step fails.
Initial Call Expectation Steps ¶
These Steps access the status of the initial call, which involves all activities between the calling party and the called party.
Initial Call: Expect the Call to Start Ringing ¶
Syntax
1 2 3 | And within <number Number> seconds, expect the call <callTransferName Identifier>.<phoneId Identifier>to<otherPhoneId Identifier> to start ringing |
-
number - The number of seconds within which the initial call is expected to start ringing
-
callTransferName - The name assigned to the Call Transfer
-
phoneId - The calling party
-
otherPhoneId - The party that receives the initial call
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 30 seconds, expect the call CALL_TRANSFER.AtoB to start ringing |
Initial Call: Expect the Call to Be Connected ¶
Syntax
1 2 3 | And within <number Number> seconds, expect the call <callTransferName Identifier>.<phoneId Identifier>to<otherPhoneId Identifier> to connect |
-
number - The number of seconds within which the initial call is expected to connect
-
callTransferName - The name assigned to the Call Transfer
-
phoneId - The calling party
-
otherPhoneId - The party that receives the initial call
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 30 seconds, expect the call CALL_TRANSFER.AtoB to connect |
Initial Call: Expect the Call to Be Held ¶
Syntax
1 2 3 | And within <number Number> seconds, expect the call <callTransferName Identifier>.<phoneId Identifier>to<otherPhoneId Identifier> to be held |
Parameters
-
number - The number of seconds within which the initial call is expected to be held
-
callTransferName - The name assigned to the Call Transfer
-
phoneId - The calling party
-
otherPhoneId - The party that receives the initial call
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 30 seconds, expect the call CALL_TRANSFER.AtoB to be held |
Intermediate Call Expectation Steps ¶
These Steps access the status of the intermediate call, which involves all activities between the transferring party and the target party.
Intermediate Call: Expect the Call to Start Ringing ¶
Syntax
1 2 3 | And within <number Number> seconds, expect the call <callTransferName Identifier>.<phoneId Identifier>to<otherPhoneId Identifier> to start ringing |
Parameters
-
number - The number of seconds within which the intermediate call is expected to start ringing
-
callTransferName - The name assigned to the Call Transfer
-
phoneId - The transferring party
-
otherPhoneId - The party that receives the intermediate call
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 30 seconds, expect the call CALL_TRANSFER.BtoC to start ringing |
Intermediate Call: Expect the Call to Connect ¶
Syntax
1 2 3 | And within <number Number> seconds, expect the call <callTransferName Identifier>.<phoneId Identifier>to<otherPhoneId Identifier> to connect |
-
number - The number of seconds within which the intermediate call is expected to connect
-
callTransferName - The name assigned to the Call Transfer
-
phoneId - The transferring party
-
otherPhoneId - The party that receives the intermediate call
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 30 seconds, expect the call CALL_TRANSFER.BtoC to connect |
Intermediate Call: Expect the Call to Be Transferred ¶
Syntax
1 2 3 | And within <number Number> seconds, expect the call <callTransferName Identifier>.<phoneId Identifier>to<otherPhoneId Identifier> to be transferred |
Parameters
-
number - The number of seconds within which the intermediate call is expected to be transferred
-
callTransferName - The name assigned to the Call Transfer
-
phoneId - The transferring party
-
otherPhoneId - The party that receives the intermediate call
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 30 seconds, expect the call CALL_TRANSFER.BtoC to be transferred |
Transferred Call Expectation Steps ¶
These Steps access the status the transferred call, which involves the results of the Call Transfer.
Transferred Call: Expect the Call to Connect ¶
Syntax
1 2 3 | And within <number Number> seconds, expect the call <callTransferName Identifier>.<phoneId Identifier>to<otherPhoneId Identifier> to connect |
Parameters
-
number - The number of seconds within which the transferred call is expected to connect
-
callTransferName - The name assigned to the Call Transfer
-
phoneId - The party from the initial call that is not the transferring party
-
otherPhoneId - The party that receives the transferred call
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 30 seconds, expect the call CALL_TRANSFER.AtoC to connect |
Transferred Call: Expect the Call to Disconnect ¶
Syntax
1 2 3 | And within <number Number> seconds, expect the call <callTransferName Identifier>.<phoneId Identifier>to<otherPhoneId Identifier> to disconnect |
Parameters
-
number - The number of seconds within which the transferred call is expected to disconnect
-
callTransferName - The name assigned to the Call Transfer
-
phoneId - The party from the initial call that is not the transferring party
-
otherPhoneId - The party that receives the transferred call
Example
1 2 3 4 | And A calls B and B transfers the call to C as CALL_TRANSFER: * A and B talk for 10 seconds And within 30 seconds, expect the call CALL_TRANSFER.AtoC to disconnect |