* '''Test plan for component''': https://wiki.ubuntu.com/Process/Merges/TestPlans/ofono * '''Component Checklist''': https://wiki.ubuntu.com/Process/Merges/Checklists/Common * '''Trunk URL''': https://github.com/rilmodem/ofono * '''Ubuntu Package URL (LP)''': http://launchpad.net/ubuntu/+source/ofono ---- = Call Hold / Swap Tests = == Setup == In general these test can be run without needing to stop other components ( eg. telepathy-ofono, or telephony-service, ... ). == Requirements == At least two phone lines in addition to the phone being tested. == Call Waiting Setup == * '''*43#''' - activates call waiting * '''#43#''' - deactivates call waiting When dialing, '''*70+number''' for per-call block. == 1. Hold an Active Call == === Purpose === This test case verifies that we can hold an active call, and then make it active again. === Steps: === * {{{dial-number [modem] }}} * answer call on called phone * run {{{list-calls [modem]}}} and verify that an ''active'' call exists * swap-calls * run ''list-calls'' again and verify that the call is ''held'' * [optional] a calling tone is heard in the called phone ( ''this is an operator-specific feature'' ) * swap-calls * run ''list-calls'' again and verify that the call is ''active'' * [optional] if on a real device, verify that the call audio is active again == 2. Swap Between Calls == === Purpose === This test case verifies that we can establish a call, then call another number, and swap between these two calls. === Steps: === * test-ss [modem] "*43#" This activates call waiting, should be executed without error. * dial-number [modem] * Accept incoming call in * Start a call from to DUT * ''There's no explicit answer step following call from . Also if the call is made from , I've found no way to answer properly from the command line with the rest of the telephony stack running ( ie. in other words the UI shows the answer call widget, and the phone rings, and an answer-calls command doesn't seem to dismiss either ). So an optional change to this script is to dial from the DUT instead. - awe'' * list-calls Repeat this step until we see two calls in the script's output, active and held. * ''I think this is backwards; if is answered from either side, will be the active call and will be held. - awe'' * swap-calls Verify that now there is no voice communication with but we can chat with * list-calls Check that call with is held and call with is active. * swap-calls Verify that now there is no voice communication with but we can chat with * list-calls Check that call with is held and call with is active. == 3. Hangup Call On-Hold == === Purpose === This test case verifies that we can hangup a held call. === Requirements === Call waiting has been activated ( ''*43#'' ) on the Ubuntu phone. === Steps: === * dial-number [modem] * Accept incoming call on * run {{{list-calls [modem]}}} and verify that an ''active'' call exists * [optional] if running on a real phone, verify that call audio is active * swap-calls * run {{{list-calls [modem]}}} and verify that original call is now ''held'' * [optional] verify that there is a tone indicating held call at ( this is an operator-specific feature ) * hangup-call [modem]/voicecall01 * run {{{list-calls [modem]}}} and verify that original call is no longer present * verify that call has been ended on == 4. Hangup Active Call & Swap to Call On-Hold == === Purpose === This test case verifies that we can hangup the active call and swap to a held call. === Requirements === Call waiting has been activated ( ''*43#'' ) on the Ubuntu phone. === Steps: === * dial-number [modem] * accept incoming call on * run {{{list-calls [modem]}}} and verify that an ''active'' call exists * [optional] if running on a real phone, verify that call audio is active * dial-number [modem] * accept incoming call on * run {{{list-calls [modem]}}} and verify that an ''active'' call exists for and that is ''held'' * [optional] if running on a real phone, verify that call audio is active on * [optional] verify that there is a tone indicating held call at ( this is an operator-specific feature ) * release-and-swap [modem] * run {{{list-calls [modem]}}} and verify that an ''active'' call exists for and that the call for no longer exists * verify that call has ended on * [optional] if running on a real phone, verify that call audio is active on == 5. Hangup Active Call While Call on Hold == === Purpose === This test case verifies that we can hang the active call and not affect the held call. === Requirements === Call waiting has been activated ( ''*43#'' ) on the Ubuntu phone. === Steps: === * dial-number [modem] * accept incoming call on * run {{{list-calls [modem]}}} and verify that an ''active'' call exists * [optional] if running on a real phone, verify that call audio is active * dial-number [modem] * accept incoming call on * run {{{list-calls [modem]}}} and verify that an ''active'' call exists for and that is ''held'' * [optional] if running on a real phone, verify that call audio is active * [optional] verify that there is a tone indicating held call at ( this is an operator-specific feature ) * hangup-active [modem] * run {{{list-calls [modem]}}} and verify that a ''held'' call exists for and that no call exists for * verify that the call has ended on * [optional] verify that there is a tone indicating held call at ( this is an operator-specific feature ) * swap-calls [modem] * run {{{list-calls [modem]}}} and verify that a ''active'' call exists for * [optional] if running on a real phone, verify that call audio is active == 6. Verify Held Call Notification == === Purpose === This test case verifies that we expose in D-Bus a property that shows when we are put on hold. === Requirements === Activation of the Call Hold supplementary service for the subscriber account/line used by the touch device. Also, this feature may not work when using devices on different operator networks. ''Can the user activate Call Hold supplementary service directly or does this need to be activated by the operator? - awe'' === Steps: === * dial-number [modem] * accept incoming call on * run {{{list-calls [modem]}}} and verify that an ''active'' call exists and that ''Remote``Held'' is 0 * [optional] if running on a real phone, verify that call audio is active * Put the call on hold remotely using * list-calls [modem] * run {{{list-calls [modem]}}} and verify that ''Remote``Held'' is 1; the call state should still remain ''active''. * Take the call off hold on * run {{{list-calls [modem]}}} and verify that ''Remote``Held'' is 0 Check that “Remote``Held = 0”. * hangup-active [modem] * run {{{list-calls [modem]}}} and verify that no calls exist * verify that the call has ended on Verify the call has finished == Operator Supplementary Services == === Call Hold Supplementary Service === The following is an informal list of operators and whether or not they support Call Hold supplementary service. * AT&T (US) - not supported * T-Mobile (US) - * Vodafone (ES), Movistar (ES), Pepephone (ES) - supported === Operator-Generated Tone on Hold === * AT&T (US) - not supported * Vodafone (ES), Movistar (ES), Pepephone (ES) - supported