This page describes the automated testing for Ubuntu Touch Telephony. == Touch Emulator == === qemu === The AOSP external [[http://androidxref.com/source/xref/external/qemu/|qemu project]] includes an emulation of a AT-based GSM modem. This includes a very basic SIM filesystem ( ''read-only?'' ), and support for limited voice, SMS, and GPRS. Emulator [[http://developer.android.com/tools/devices/emulator.html#telephony|console commands]] allow the modem state to be manipulated in order to simulate incoming voice calls, SMS, ... There are two directories in the qemu project which of are interest to telephony: ==== android ==== The file [[http://androidxref.com/source/xref/external/qemu/android/console.c|console.c]] contains the code that processes console commands ( ie. ''gsm call'' ). ==== telephony ==== This [[http://androidxref.com/source/xref/external/qemu/telephony/|telephony]] directory contains the bulk of the emulated GSM modem code. === reference-ril === The reference-ril is a [[http://androidxref.com/source/xref/hardware/ril/reference-ril/|subproject]] of the AOSP ril repository. It's a basic AT-modem based implementation that's used by the emulator in tandem with the qemu GSM emulator to provide basic telephony services. == mock-ril == [[http://androidxref.com/source/xref/hardware/ril/mock-ril/|ril-mock]] was a ril sub-project included in the AOSP tree up until KitKat (4.4) when it was removed. Building it produced a standard ril library that could loaded by the standard libril wrapper. The core of mock-ril was a Javascript based implementation, mock-ril.js. The state of the mock-ril could be modified by sending messages from another computer to port 54312 to the ctrlServer, a Worker in In mock-ril.js. ''No further investigation of mock-ril was done after the discovery that a) it wasn't used by the Android emulator and b) it was deprecated and [[https://android.googlesource.com/platform/hardware/ril/+/ba888f46a9d93b8569e4d394cb5362549856e5bd|removed]] from the AOSP during KitKat development.'' == umockdev == = Setup = Proper testing of ofono/rilmodem requires ensuring that external system components that normally interact with ofono ( Network``Manger, telepathy-ofono, ... ) be disabled and/or prevented from using ofono's DBus APIs while testing is in-progress. == NetworkManager == !NetworkManager can be stopped manually before testing ( as root: ''stop network-manager'' ), or via an upstart override job. == telepathy-ofono == telepathy-ofono can be disabled by running the following command ( as the ''phablet'' user ), which disables the ofono mission-control account, and thus prevents telepathy-ofono from interating with ofono: ''$ mc-tool disable ofono/ofono/account0''