CallForwarding


Call Forwarding Tests

Note - Call Forwarding is an operator-specific feature which must be enabled for the subscriber/SIM account being used. If not enabled, some of these tests will not succeed. Call forwarding is also a network feature. Note that some operators do not support this SS fully or have quirks, like always filling the redirection msisdn with their voice mail service number.

Operators that support all use cases: Pepephone (ES)

1. Verify Interface Availablility / Default Properties

Purpose

This test case ensures the presence of the org.ofono.CallForwarding interface.

Steps:

1. Run script list-modems. 
2. Check that listed interfaces include org.ofono.CallForwarding with properties VoiceBusy,
   VoiceNoReplyTimeout, VoiceNotReachable, VoiceUnconditional, VoiceNoReply and ForwardingFlagOnSim.
   Exact values of properties depend about the previous usage of the tested card, used operator, 
   contract and network access. Common default value for VoiceNoReplyTimeout is 20 and
   for ForwardingFlagOnSim is 0. 

Automation Status

Automation of the CallForwarding testing is currently blocked on improvements to the emulator's telephony support.

Test Script

It should be easy to create a test script that verifies the interface and properties.

2. Test basic querying and property setting

Purpose

This test case verifies that the org.ofono.CallForwarding interface can be used to query the current settings, that invalid properties cannot be set, and that the unconditional call-forwarding and it’s associated timeout can be configured. NOTE: not all operators allow changing all call forwarding settings. The test script will fail with these.

Steps:

1. Run script test-call-forwarding. 
2. After the the message “Unable to delete invalids - Good” is output, two properties are output 
   ( a phone # and a timout ).  The script hangs at this point, so you must use Ctrl-C to 
   terminate the script. verify that correct forwarding phone number is output, and that
   all of the test cases run only output “Good” messages.

Note - 1 - on a dual-SIM device, this test script by default will perform its testing using the first SIM ( ril_0 ). Use -m ril_1 to specify use of the second SIM.

Note - 2 - if any of the properties fail during this test, it may be possible that they're disabled by the operator. In this case, it's best to validate that the condition can be set instead by using one of the following SS test cases ( ie. if Voice`Busy fails during this test, then also check to see what happens when the **67*number# is entered with the test-ss script ).

Note - 3 - depending on operator and/or location, it may be necessary to use the command-line arguments to specify a valid country-specific phone number, as the defaults all use short numbers which may not be accepted in all countries ( eg. --busy-num +16176666666 ).

Automation Status

Same as above.

3. Test call forwarding unconditional

Purpose

This test case verifies that calls can be forwarded unconditionally when using org.ofono.SupplementaryServices interface.

Steps:

1. Run script test-ss [modem] “**21*<msisdn>#”
2. Run script test-ss [modem] “*#21#”. 
3. Check in output that VoiceUnconditional is set to <msisdn>. 
4. Call phone under test. 
5. Verify that the phone with number <msisdn> rings instead, although the phone under test is 
   registered in the network.
6. Run script test-ss [modem] “##21#”.
7. Check in the output that VoiceUnconditional has been cleared.
7. Call phone under test. 
8. Verify that it actually rings instead of the phone with line <msisdn>.

Where <msisdn> is the destination number where call is forwarded.

Automation Status

Same as above.

Test Script

It would be possible to create a test script to handle the setting and vefication of the changed properties, however verification that the call is actually forwarded is a trickier problem.

4. Test call forwarding when mobile is busy

Purpose

This test case verifies that calls can be ordered to be forwarded when the mobile is busy when using org.ofono.SupplementaryServices interface.

Requirements

A minumum of three active phones are needed to perform this test.

Steps:

 1. Run script test-ss [modem] “#43#” to deactivate call waiting SS, 
    as it can interfere with this test (phone would not be seen as busy even with an active call).
 1. Run script test-ss [modem] “**67*<msisdn>#”
 2. Run script test-ss [modem] “*#67#”. 
 3. Check in output that VoiceBusy is set to <msisdn>. 
 4. Establish a call with phone under test.
 5. Call phone under test while it is busy with said call. 
 6. Verify that the phone with number <msisdn> rings instead. 
 7. Run script test-ss [modem] “##67#”.
 8. Verify that the VoiceBusy property has been cleared.
 9. Call phone under test while it is busy with another call. 
 10. Verify that we hear a busy signal instead of being forwarded to the phone with line <msisdn>.

Where  <msisdn> is the destination number where call is forwarded.

Note1 - If call waiting is active, the call might appear first in the phone under test. If it is rejected it will be finally redirected to <msisdn>. This behaviour might depend on the operator.

Note2 - if the subscriber line is configured for voicemail, clearing VoiceBusy via "##67#" may just reset VoiceBusy back to a voicemail number, so it's not possible to get a busy signal from the DUT.

Automation Status

Same as above.

5. Test call forwarding when user does not respond

Purpose

This test case verifies that calls can be forwarded if the user does not respond after a configurable timeout when using org.ofono.SupplementaryServices interface.

Steps:

1. Run script test-ss [modem] “**61*<msisdn>**15#” to forward the call if we do not answer the phone in 15 seconds.
2. Run script test-ss [modem] “*#61#”. 
3. Check in output that VoiceNoReply is set to <msisdn> and that VoiceNoReplyTimeout is set to 15. 
4. Call phone under test. 
5. Verify that it rings and that after 15 seconds the ring stops and the phone with number <msisdn> starts
   to ring instead.
6. Run script test-ss [modem] “##61#”.
7. Verify the VoiceNoReply number is cleared and that VoiceNoReplyTimeout is reset to 20.
8. Call phone under test. 
9. Verify that it rings even after 15 seconds have passed, and that the phone with number <msisdn> does 
   not ring.

Where <msisdn> is the destination number where call is forwarded.

Automation Status

Same as above.

6. Test call forwarding when mobile is not reachable

Purpose

This test case verifies that calls can be forwarded when the phone is not reachable when using org.ofono.SupplementaryServices interface

Steps:

1. Run script test-ss [modem] “**62*<msisdn>#”
2. Run script test-ss [modem] “*#62#”. 
3. Check in output that VoiceNotReachable is set to <msisdn>.  
4. Power off the phone ( or enable FlightMode )
5. Call phone under test. 
6. Verify that the phone with number <msisdn> rings.
7. Power on the phone ( or disable FlightMode )
8. Run script test-ss [modem] “##62#”
9. Power off the phone ( or enable FlightMode )
10. Call phone under test. 
11. Verify that phone with number <msisdn> does not ring, and that we hear a message notifying
    that the called number is not available at the moment. ''

Note - if the subscriber line is configured for voicemail, even if the phone is powered off, the call will be redirected to voicemail. The only guarantee of hitting the not-reachable condition is if it's possible to temporarily disable voicemail. ' Where <msisdn> is the destination number where call is forwarded.

Automation Status

Same as above.

7. Test Unconditional call forwarding

Purpose

This test case verifies that the service code 002, which affects all call forwarding types, can be used. This code is practically the same as CF unconditional.

Steps:

1. Run script test-ss [modem] “**002*<msisdn>#”
2. Run script test-ss [modem] “*#002#”. 
3. Check in output that VoiceUnconditional is set to <msisdn>.
4. Call phone under test. 
5. Verify that the phone with number <msisdn> rings instead, although the phone under test is
   registered in the network.
6. Run script  test-ss [modem] “##002#”
7. Call phone under test. 
8. Verify that it actually rings instead of the phone with line <msisdn>.

Where <msisdn> is the destination number where call is forwarded.

Automation Status

Same as above.

8. Test Conditional call forwarding

Purpose

This test case verifies that the service code 004, which affects all conditional call forwarding, can be used.

Steps:

1. Run script test-ss [modem] “**004*<msisdn>#”
2. Run script test-ss [modem] “*#004#”. 
3. Check in output that VoiceNotReachable, VoiceBusy, and VoiceNoReply are set to <msisdn>.
4. Establish a call with phone under test. 
5. Call phone under test while it is busy with said call.

Note, you can optionally also call the phone and not answer the call triggering VoiceNoReply, and/or perform the same tests as the not-reachable test case.

6. Verify that the phone with number <msisdn> rings instead.
7. Run script test-ss [modem] “##004#”
8. Call phone under test while it is busy with another call. 
9. Verify that we hear a busy signal or are forwarded to the default voicemail number,
   instead of being forwarded to the phone with line <msisdn>.

Where <msisdn> is the destination number is where call is forwarded.

Automation Status

Same as above.

Process/Merges/TestPlans/ofono/CallForwarding (last edited 2015-09-22 18:57:21 by 209-6-88-107)