These patches implement the new API for the Audio Gateway in BlueZ. It
follows the last version of the HandsfreeGateway and HandsfreeAgent
The first two patches is for BlueZ and the other for oFono. You can
test it with using enable-modem and test-voicecall scripts into the
test dir of oFono.
Feel free to test it and send me your comments. We have some bugs yet.
The audio part is not working yet. We are going to work on pulseaudio
this week to get this done soon.
Gustavo F. Padovan
ProFUSION embedded systems - http://profusion.mobi
This is QA regular release testing cycle for oFono released. Our testing focus would be new features exploration and regression testing, to ensure major issues for new features are exposed in timely fashion.
General PC (pre-installed FC12)
- ofono v0.22
- phonesim 1.2
- MeeGo20100424 image
- Sony Ericsson C905, Nokia N95
- ofono v0.22
- Bluez v4.63
- MBM modem
- ofono v0.22
- UNICOM 3G WCDMA network
- test-server tool in ofono
The test will do full light functional validation, mainly focus on checking implemented functionality of ofono v0.22 (voice call, message, cell broadcast, phonebook, sim, supplementary service, modem management, voice mail, call volume, call history, message history, GPRS, HFP, USSD) base on phonesim simulator and some hardware devices.
As the dependence of modem, we will do PPP test with gsmdial later.
During the v0.21 testing, we found the v0.22 release, so switch to v0.22 immediately.
The test result is positive. Most functionalities work well and more stable,
we reported 1 major Bluetooth bug during HFP test, verified 4 bugs, so far, no blocking, critical issues remain.
Executed total 276 test cases during this round of testing, and among them:
Bug 2782 Bluetooth lost connection after unload loopback module in PA.
2515 nor S5 command not really work in modem emulator
2517 nor Non at command did not handle properly in modem emulator
2519 nor S3 command can not work normally without default value
8898 enh Spend long time on getting fail report of sms
10061 GSM Compliance issue in sim phonebook
9453 enh [Phonesim] To support UCS2 encode in Cell Broadcast Message
9371 nor Modem interface information didn't be updated after modem was removed
868 nor ussd notification display is incorrect with UCS2 character set
872 maj Can not deactivate all contexts
8185 nor Segmentation fault in ste modem which may caused by call history
870 can't cancel/response ussd notification
434 Can't input pin code
435 Can't reset the pin code as the same old number
443 can't change the password by gsm string
The every checkpoint would be one or more test case to cover and result is for functionality, besides you may find some functional limitation in comments
Features checkpoints test results comments
Call history Missed call pass
Outgoing call pass
Incoming call pass
SMS Send/receive pass
Class0, 1 pass
Set service center address pass
More segments pass
Different character set pass
Voice call Dial pass
Multiparty call Create pass
Hang up pass
Private chat pass
Sim Phonebook Read pass
Different character set pass
SS CF pass
Setting AOC pass
GSM string General strings pass
USSD Send pass
Cancel request pass
Different character set fail #868
Modem Basic function pass
Two modems pass
Abnormal quit fail #9371
Voice mail Get/Set number pass
Message Count pass
CPHS information pass
Networking Basic network information pass
Signal indicator pass
SIM file Read IMSI pass
Read/set MSISDN pass
Read Emergency number pass
Read SDN number pass
PIN code pass
Cell broadcast Receive a CB message pass
Receive several CB messages pass
Receive more pages CB message pass
Different language pass
Call volume Set/get volume pass
Message history Send history pass
Receive history pass
HFP Voice call pass
Multiparty call pass
Call volume pass
Audio control pass
GPRS Active context pass
Edit profiles pass
Deactivate context pass
Deactivate all context fail #872
Create context pass
Remove context pass
Modem Emualtor Basic AT command pass
Negative fail #2515,#2517,#2519
Here's v3 of my Huawei GPRS patches. I followed Marcel's advice and
implemented all Huawei quirks in the huawei plugin. Now the patches
are a lot smaller.
Kalle Valo (2):
huawei: add gprs context
huawei: detect SecondaryDevice which is used for events
drivers/atmodem/network-registration.c | 4 +
plugins/huawei.c | 112 +++++++++++++++++++++++++++++++-
plugins/udev.c | 61 +++++++++++++++--
3 files changed, 167 insertions(+), 10 deletions(-)
From: Inaky Perez-Gonzalez <inaky.perez-gonzalez(a)intel.com>
This patchset is the current state of my tree that changes the D-Bus
interface for SMS:
- adds object based management of SMS messages
- adds a cancelation operation for in-transit / pending messages
- holds messages waiting for acknoledgement (delivery report) -- this
is still not fully integrated with the code that was commited last
days (thus once the delivery arrives the message is not
automatically cleaned up as "confirmed").
- generates truly unique SMS message IDs using hashing of contents
and receiver address
- miscelaeous small cleanups / additions, carryover from a previous
submit that got neither not acked or no resolution was agreed upon
Please review and suggest what else needs to be done / changed.
The following changes since commit 1fedd096a0ba2ce8625a9e4d1c2ce25bb8f6dfe4:
Marcel Holtmann (1):
Check sanity the MNC length value from the SIM card
are available in the git repository at:
Patches follow for reviewing convenience.
Inaky Perez-Gonzalez (23):
documentation: add note about referencing standards
util.h: Add BUILD_BUG_ON() and friends for compile-time assert checking
smutil.h: add missing header file dependencies
write_file: make transaction-safe
doc: explain debugging options to -d, add a pointer in -h to manpage
SMS: introduce message ID API
SMS: implement SHA256-based message IDs [incomplete]
sms: add doc about the extensions D-Bus API (not yet implemented)
struct tx_queue_entry: add fields and destructor
SMS: produce a unique, persistent name for in-transit messages
SMS: introduce bare state machine and transitions
SMS: export outgoing messages over D-Bus (skeleton)
SMS: split sms_send_message() into a D-Bus front end and an internal API
SMS: introduce wait-for-ack state and infrastructure
SMS: introduce sms_msg_cancel and its D-Bus wrapper
SMS: rename tx_queue_entry->msg to ->dbus_msg for clarity
SMS: Implement D-Bus SMS-MSG::GetProperties
SMS: send D-Bus SMS-MSG::ProperyChanged signals when message changes status
SMS: make D-Bus SendMessage and Cancel fully synchronous
SMS: set the SRR bit in outgoing PDUs if WFA is requested
sms_text_prepare: document @use_delivery_reports
HACKING | 10 +
Makefile.am | 5 +-
doc/ofonod.8 | 5 +-
doc/sms-api.txt | 94 ++++++++
doc/standards.txt | 8 +
src/main.c | 4 +-
src/sms.c | 512 +++++++++++++++++++++++++++++++++++-----
src/smsutil.c | 202 ++++++++++++++++-
src/smsutil.h | 125 ++++++++++
src/storage.c | 42 +++-
src/util.h | 28 +++
test/test-sms-msg-state-change | 24 ++
unit/test-sms-msg-id.c | 212 +++++++++++++++++
13 files changed, 1199 insertions(+), 72 deletions(-)
create mode 100644 doc/standards.txt
create mode 100755 test/test-sms-msg-state-change
create mode 100644 unit/test-sms-msg-id.c
Signed-off-by: Naresh Mehta <nareshtechs(a)gmail.com>
HACKING | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 102 insertions(+), 0 deletions(-)
create mode 100644 HACKING
diff --git a/HACKING b/HACKING
new file mode 100644
@@ -0,0 +1,102 @@
+Hacking on phonesim
+phonesim is a soft modem that eliminates the need to have an actual AT
+modem connected to the system for testing and developing Ofono.
+Build tools requirements
+When building and testing directly from the repository it is important to
+have at least automake version 1.10 or later installed. All modern
+distributions should default to the latest version, but it seems that
+Debian's default is still an earlier version:
+ Check version
+ # dpkg -l '*automake*'
+ Install new version
+ # apt-get install automake1.10
+ # update-alternatives --config automake
+QT development libraries (libqt4-dev) are also required for building
+phonesim. It is recommended to install the QT 4 development tools package
+(qt4-dev-tools) as an alternative if available with your distribution.
+Working with the source code repository
+The repository contains two extra scripts that accomplish the bootstrap
+process. One is called "bootstrap" which is the basic scripts that uses the
+autotools scripts to create the needed files for building and installing.
+It makes sure to call the right programs depending on the usage of shared or
+static libraries or translations etc.
+The second program is called "bootstrap-configure". This program will make
+sure to properly clean the repository, call the "bootstrap" script and then
+call configure with proper settings for development. It will use the best
+options and pass them over to configure. These options normally include
+the enabling the maintainer mode and the debugging features.
+So while in a normal source project the call "./configure ..." is used to
+configure the project with its settings like prefix and extra options. In
+case of bare repositories call "./bootstrap-configure" and it will bootstrap
+the repository and calls configure with all the correct options to make
+In case of preparing for a release with "make distcheck", don't use
+bootstrap-configure since it could export development specific settings.
+So the normal steps to checkout, build and install such a repository is
+ Checkout repository
+ # git clone git://git.kernel.org/pub/scm/network/ofono/phonesim.git
+ # cd phonesim
+ Configure and build
+ # ./bootstrap-configure
+ # make
+ Check installation
+ # make install DESTDIR=$PWD/x
+ # find x
+ # rm -rf x
+ Check distribution
+ # make distcheck
+ Final installation
+ # sudo make install
+ Remove autogenerated files
+ # make maintainer-clean
+Running from within the source code repository
+When using "./configure --enable-maintainer-mode" the automake scripts will
+use the plugins directly from within the repository. This removes the need
+to use "make install" when testing "phonesim". The "bootstrap-configure"
+automatically includes this option.
+ Run phonesim in foreground using the following options
+ # ./src/phonesim -p 12345 -gui xml/default.xml
+Check your modem.conf file and enable the phonesim configuration before
+executing the above command. Argument -p should be followed by the proper
+port number, in case you have changed the default "12345". Argument -gui
+will launch the gui once the modem is enabled.
+To enable the modem, make sure the ofono daemon is running and execute the
+enable-modem script with /phonesim argument (default defined in modem.conf,
+change if changes to that section has been made). The AT chat can then
+be seen in the GUI window. Running the script disable-modem with /phonesim
+argument will turn off the soft modem.
+The default.xml can be tweaked further to include additional AT-Commands and
+supposed responses from the soft modem.
+For production installations or distribution packaging it is important that
+the "--enable-maintainer-mode" option is NOT used.
I am now working on modem emulator and one usage is for DUN server role. Since Padovan is working on client role, it's good to share my rough thinking for server side implementation. Here are the simple steps I have:
1. Create an oFono emulator atom in oFono. It's the emulator manager that could create DUN, HFP AG or SPP type emulators. It exposes dbus methods like CreateEmulator, DestroyEmulator, GetProperty, etc.
2. DUN agent server in BlueZ watch oFono and call CreateEmulator and pass the file descriptor to oFono. This server could further implement HFP AG and SPP connection.
3. Once an emulator is created, other atom like voicecall, grps, sms register their interested AT command handlers to it. The goal is that we could handle all mandatory AT commands defined in DUN profile spec.
4. Once a DUN emulator received ATD*99#, DUN client performs ppp connection so we forward ppp command to ppp stack. It is done by ppp server side extension. It should be the simple command forwarding.
5. Once the PPP link over DUN is established, DUN client performs ConnMan integration and setup IP address, DNS server, etc.
6. Once the Bluetooth link is disconnected, we destroy the PPP and DUN emulator. If emulator atom itself is destroyed, we destroy the PPP and the Bluetooth connection. If the PPP link is disconnected but Bluetooth link is alive, we destroy the PPP and stay emulator alive.
Comments are welcome. :)