Commit Graph

321 Commits

Author SHA1 Message Date
Zhenhua Zhang c40657216d Fix: Remove some dead code 2009-11-03 11:19:39 -06:00
Denis Kenzior 89a4dc48d4 Update the isimodem driver to the new API 2009-10-29 15:29:55 -05:00
Denis Kenzior 673a0eaae1 Update the atmodem driver to the new API 2009-10-29 15:29:41 -05:00
Denis Kenzior 30cc6d6f4b Fix: This hack is no longer necessary 2009-10-28 23:40:04 -05:00
Denis Kenzior b3dccdfd54 Fix: Don't pass the indexes
These can be obtained inside the function anyway
2009-10-28 19:23:25 -05:00
Denis Kenzior 2c5ea9d4ee Fix: No need to set this to NULL 2009-10-28 17:40:35 -05:00
Denis Kenzior c41a8ced81 Cleanup: Fixup style 2009-10-28 17:40:06 -05:00
Zhenhua Zhang 4a36fc7c82 Add voicecall driver for Bluetooth HFP
HFP voicecall driver uses AT+CIEV indicator to notify call status
update according to Bluetooth HFP spec v1.5. This patch only adds single
call support.
2009-10-28 17:33:33 -05:00
Zhenhua Zhang 57aaf9813f Refactor: Move alloc/release id to atutil.c 2009-10-28 17:31:44 -05:00
Zhenhua Zhang 17903940c5 Refactor: Move & Rename functions to atutil.c
Move and rename call_compare and call_compare_by_status to atutil.c.
These will be utilized by other drivers, including hfpmodem.
2009-10-28 17:30:02 -05:00
Denis Kenzior bc72cca91b Fix: notify_attached was only used when detached
The standard only specifies that the context might have been detached by
the network / mobile equipment.  Not attached.
2009-10-26 16:55:03 -05:00
Denis Kenzior 1af138d6ec Fix: Register for E2NAP notifications 2009-10-24 12:39:31 -05:00
Denis Kenzior 1a80f85994 Fix: ENAP=0 is the only way to use this 2009-10-24 12:39:31 -05:00
Denis Kenzior ffd7c1920a Fix: Some modems report PDP_type in a list 2009-10-23 17:05:57 -05:00
Denis Kenzior a66de6880a Add initial implementation of MBM gprs context 2009-10-23 17:05:56 -05:00
Denis Kenzior 3408fc5094 Register for CGEV indications in gprs context 2009-10-23 17:05:56 -05:00
Denis Kenzior 14c116be36 Remove unused code and make compiler happy 2009-10-23 17:05:56 -05:00
Denis Kenzior d6161ddb61 Add basic atmodem gprs context implementation 2009-10-23 17:05:56 -05:00
Denis Kenzior 69c872f400 Refactor: Initialization code 2009-10-23 17:05:55 -05:00
Denis Kenzior 43256236a0 Add GPRS registration status implementation 2009-10-23 17:05:55 -05:00
Denis Kenzior 8cb2bb7608 Remove unused code 2009-10-23 17:05:55 -05:00
Denis Kenzior 88c0f77a58 Refactor: First round of renaming 2009-10-23 17:05:53 -05:00
Denis Kenzior b2fd75014a Refactor: rename data-connection to gprs
Keep the name specific to GSM, other implementations will probably
require their own interfaces
2009-10-23 17:05:53 -05:00
Andrzej Zaborowski f43efa8a5f Add GPRS support
This commit implements the GPRS context setup and teardown according to
doc/dataconnectionmanager-api.txt

One issue with the AT implementation of the api is that "Powered" (a
read-write property) can be set independently of "Attached" (read-only
property) and remain set when "Attached" is clear.  The semantics would
be that the network doesn't have resources to let the modem attach,
but the modem waits for the resources to become available and then
attaches.  On AT the modem is in this state only when executing +CGATT,
so currently the code will rerun +CGATT as soon as the previous one
returns with error, probably starving other commands.  A possible
workaround would be for "Powered" to flip back to False after the modem
fails to attach once, or give up on having separate properties.
Alternatively we could re-try to attach periodically but on one modem
I've tried +CGATT fails after about 1 minute (that's the Calypso) and
on another only about 0.5s (Nokia phones with AT emulation).

When "Powered"  is set and "RoamingAllowed" is clear and we manage to
attach and find that we're roaming, ofono resets "Powered".

We may want to catch the user trying to dial *99***1# which is the
backwards compatibility quirk for old modems (same way ofono parses
USSD strings).
2009-10-23 17:05:53 -05:00
Denis Kenzior 0faa8b3c42 Fix: Invalid call state transition
When an active and a waiting call exist, and the active is released the
waiting call becomes incoming.  This wasn't properly handled by the
generic at driver.
2009-10-23 13:56:26 -05:00
Zhang, Zhenhua fa10070bf9 Replace Glib type with standard C type 2009-10-23 13:40:49 -05:00
Denis Kenzior f726596860 Rename: drivers/hfpmodem/hfp.[ch] to hfpmodem.[ch]
Be more consistent with other drivers
2009-10-19 22:13:19 -05:00
Denis Kenzior c4594d2543 Fix: Make 'make distcheck' happy again 2009-10-19 17:07:23 -05:00
Denis Kenzior 5635703141 Refactor: Setup the HF features bitmap
Do not use magic numbers unless strictly necessary
2009-10-19 16:59:44 -05:00
Denis Kenzior 0ca88b36e7 Refactor: Don't store indicator names
We already know the indicators we're interested in from the
specification, malloc/free-ing the indicator names is thus pointless.
Instead save off the indicator index positions in an array.  Parse the
current values instead of storing the unparsed list.
2009-10-19 16:58:13 -05:00
Zhenhua Zhang fb0c157c11 Add initial glue code for hfp driver 2009-10-19 15:48:07 -05:00
Denis Kenzior 86cd4951b3 Fix: Use proper printf format for string precision 2009-10-16 17:46:29 -05:00
Denis Kenzior 210bb5cc0a Cleanup: Fixup USSD to use cbs_decode_dcs
Don't decode by hand, use existing function
2009-10-16 17:46:28 -05:00
Andrzej Zaborowski 15c07346df Parse +CUSD responses. 2009-10-16 17:46:28 -05:00
Andrzej Zaborowski 2974d69ddf Fix: Emit debug message instead of an error
SMS storage is frequently empty at startup, if this is the case, do not
use ofono_error, use ofono_debug instead.
2009-10-16 11:14:26 -05:00
Andrzej Zaborowski e6b8550328 Fix: Free converted string after use.
Also make sure we don't read beyond end of the string.
2009-10-16 11:09:42 -05:00
Aki Niemi 2a8159b21b Fix conditional statement 2009-10-16 14:02:27 +03:00
Aki Niemi 9ca602c283 Fix: restrict keyword use breaking distcheck 2009-10-16 11:26:15 +03:00
Pekka Pessi 86b6cd91c9 isimodem/voicecall.c: initial version
Implementing all the voicecall methods. Tested with Nokia 2008 modems.

 - problems in call creation are probably not reported properly
 - deflect not implemented in modem, not properly tested

TODO: Clean up style issues and align with other drivers.
2009-10-16 11:18:52 +03:00
Aki Niemi 74cc9cb4b7 Refactor sub-sub-block handling 2009-10-16 11:18:52 +03:00
Alexander Kanavin a781e3b1d9 Add isimodem drivers for call barring, forwarding and waiting 2009-10-14 22:05:13 +03:00
Pekka Pessi d1d870ba7a Refactor subblock iterators.
Always initialize iterators.

Try to avoid pointer arithmetics on NULL; in other words, move all pointer
arithmetics inside g_isi_sb_iter_init().

There are 4 different ways for representing sub blocks in ISI message:
- 8-bit sub_blocks count, 8-bit sub_block_id/sub_block_len
- 16-bit sub_blocks count, 8-bit sub_block_id/sub_block_len
- 8-bit sub_blocks count, 16-bit sub_block_id/sub_block_len
- 16-bit sub_blocks count, 16-bit sub_block_id/sub_block_len

The compact form g_isi_sb_iter_init() supports 8-bit sub_block count before
start of the sub blocks themselves and 8-bit sub_block_id and sub_block_len.
The full form g_isi_sb_iter_init_full() with explicit longhdr and sub_block
count supports all other cases.
2009-10-09 12:54:04 +03:00
Jukka Saunamaki 74c15989c9 Hack for reading EFSPN on isimodem sim driver
In the absence of low-level access to the SIM card, we're adding this
hack to expose the SPN using ISI's high-level access instead.
2009-10-07 14:45:46 +03:00
Denis Kenzior ca60851774 Fix: Quiet a warning 2009-10-02 19:25:58 -05:00
Denis Kenzior dcf4ac50b3 Make generic sim driver work with 3G SIMs
3G (UICC) based SIMs use a different response format than 2G sims.  In
theory this also allows us to determine whether SIM filesystem format is
3G or 2G
2009-10-02 18:25:56 -05:00
Denis Kenzior c8150fc120 Use small caps for 2G/3G functions 2009-10-02 18:25:56 -05:00
Denis Kenzior c9a2eedc08 Add utility to parse 2G GET_RESPONSE data
This format is described in 51.011 and the older 11.11.  It is not
supported by newer 3G UICC based devices & sim card combinations
2009-10-02 18:25:56 -05:00
Denis Kenzior 13c46b9781 Add at modem call volume driver 2009-09-29 14:56:22 -05:00
Denis Kenzior d0501c5694 Be more numerically stable 2009-09-29 14:56:22 -05:00
Denis Kenzior e5f02e427a Use none_prefix in cssn 2009-09-29 14:56:22 -05:00
Andrzej Zaborowski 2a02f45c79 Add plugin interface for getting PIN lock state.
It may be useful to have the information of whether card is currently
locked and emit events when this changes but if we want to have it as a
property, we would need properties for all types of locks and it wouldn't
be all that useful.
2009-09-23 14:27:52 -05:00
Denis Kenzior 5fd083f6f4 Refactor: Do not use int instead of enum
27.007 does not define an enumeration for SIM PIN/PUK values.  This
should be handled by ofono enum instead
2009-09-22 00:07:07 -05:00
Denis Kenzior 7d7732d637 Don't treat READY CPIN result differently 2009-09-22 00:07:07 -05:00
Denis Kenzior 3362de0010 Move SSN unsolicited notification activation 2009-09-22 00:07:06 -05:00
Denis Kenzior 63416e2851 Rearrange sim password enum 2009-09-22 00:07:06 -05:00
Andrzej Zaborowski ee02b14836 Do PIN authentication
This adds checking whether PIN is required during SIM initialisation and
delaying the sim ready notifications until after correct PIN is given.
2009-09-22 00:07:06 -05:00
Denis Kenzior 12e77a3c70 Convert all the modem drivers to the new API 2009-09-17 10:15:34 -05:00
Aki Niemi 36198827ab Miscellaneous clean-ups 2009-09-16 23:37:23 +03:00
Aki Niemi 866c394882 Add proper bootstrapping to phonebook driver 2009-09-16 23:37:23 +03:00
Aki Niemi e3e5090b6a Increase network scan/set timeout values 2009-09-16 23:37:23 +03:00
Andrzej Zaborowski 6d2cf926f3 Check received PDUs fit in the buffer, fix buffer size. 2009-09-16 04:53:44 -05:00
Aki Niemi 795e65ad53 Add proper bootstrap using g_isi_verify() 2009-09-15 15:37:01 +03:00
Aki Niemi b6e37fb792 Remove version query; use gisi/client.h instead 2009-09-15 15:36:11 +03:00
Aki Niemi bee4bf4d7d Fix error reporting in phonebook driver 2009-09-15 11:17:39 +03:00
Aki Niemi 0aeb5f3dfd Remove extra debug 2009-09-15 00:35:22 +03:00
Aki Niemi af3f54ee43 Fix a possible but improbable leak 2009-09-15 00:20:54 +03:00
Marcel Holtmann ee0555dda1 Fix compiler warnings on 64-bit systems 2009-09-14 14:10:15 -07:00
Aki Niemi b2bdb41bc0 Fix to use gisi/iter.h to decode sub-blocks 2009-09-14 23:59:59 +03:00
Aki Niemi e58d28f6b6 Adapt to changed sub-block iterator API 2009-09-14 23:43:57 +03:00
Aki Niemi 6c08fc8e50 Refactor to use gisi/iter.h 2009-09-14 16:21:35 +03:00
Aki Niemi 69ac9733f4 Modify to use the new alpha tag getter 2009-09-14 16:21:18 +03:00
Aki Niemi d7459f45fc Coding style clean-ups 2009-09-14 14:53:35 +03:00
Aki Niemi ddbd19a4be Use gisi/iter.h for decoding sub-blocks 2009-09-14 14:34:27 +03:00
Aki Niemi ffaba2b637 Clean up IMSI decoding 2009-09-14 14:33:31 +03:00
Aki Niemi cfd40b2313 Remove trailing WS 2009-09-14 13:00:45 +03:00
Aki Niemi 4904479214 Remove unnecessary debug 2009-09-14 12:54:16 +03:00
Aki Niemi d83b325a40 Add basic bootsrap for the SMS driver 2009-09-14 12:52:21 +03:00
Aki Niemi bc7df10c92 Add preliminary CBS driver 2009-09-14 12:51:48 +03:00
Aki Niemi 1c2f4b6097 Add proper bootstrapping for netreg driver
Use the ISI version query to bootstrap the netreg driver.
2009-09-14 12:45:54 +03:00
Aki Niemi 843f0c07e2 Remove unnecessary debugs 2009-09-14 12:44:59 +03:00
Aki Niemi e79d5ad208 Fix registration status decoding 2009-09-12 22:39:50 +03:00
Aki Niemi d2a42c71dd Fixes for proper coding style 2009-09-12 21:44:11 +03:00
Aki Niemi 3bfa5c47c0 Fix signal strength value calculation 2009-09-12 19:30:58 +03:00
Aki Niemi df8a202e94 Add IMSI retrieval to sim driver
Modified patch originally provided by Jukka Saunamäki.
2009-09-12 18:58:18 +03:00
Aki Niemi 6ee21a3fc1 Fix to use new success/failure callback macros 2009-09-12 18:57:16 +03:00
Aki Niemi 6d258f529e Add implementation of netreg driver 2009-09-12 18:42:42 +03:00
Aki Niemi 7507b73767 Clean up macros for success/failure callbacks 2009-09-12 18:36:22 +03:00
Denis Kenzior cbb36acee8 Rework DECLARE_FAILURE to be a bit nicer 2009-09-11 12:39:56 -05:00
Denis Kenzior 2bdf1f50a1 Ensure CBS is in a known state at startup 2009-09-10 17:44:36 -05:00
Denis Kenzior 6b91b3563b Add atmodem cell broadcast driver 2009-09-10 16:13:16 -05:00
Andrzej Zaborowski 36d0c8451f Read messages left over in ME storage on startup.
On modems that don't support +CMT (or for class 2 SMSes) the messages are
stored in the modem and then read and deleted from there in two separate
steps with no warranty that deletion succeeds or (more likely) power is
cut before the deletion happens.  Over time the memory may become full
and if we don't want to deal with this condition we need to check on
startup if there are messages we haven't deleted.

We can't differentiate between those messages and those the user already
had on the SIM / modem before installing ofono or switching phones, so we
might want to deliver messages with REC READ status with some kind of
indication that these are potentially old so the UI doesn't emit spurious
alerts.  We don't do this now and just deliver as usual.
2009-09-08 13:31:30 -05:00
Denis Kenzior d74d6c2e06 Fix unused variable warning 2009-09-04 20:37:50 -05:00
Denis Kenzior 7362878e6c Add calypso voicecalls driver 2009-09-04 20:37:50 -05:00
Denis Kenzior 4c5791a500 Rename at.h to atmodem.h 2009-09-04 20:37:49 -05:00
Denis Kenzior 5749b6e75d Break common at utilities to atutils.c/.h 2009-09-04 20:37:49 -05:00
Denis Kenzior 2693c604a9 Remove unused declaration 2009-09-04 20:37:49 -05:00
Denis Kenzior 62bf46a5d4 Remove unused structure 2009-09-04 20:37:49 -05:00
Denis Kenzior 23484524df Add quirk for network-registration for calypso
Support calypso-specific AT%CSQ notifications
2009-09-03 23:20:22 -05:00
Andres Salomon aceaac4b7b G1: Add an SMS quirk for CNMI mode
The G1 doesn't support mode2, despite advertising it.

The G1 chokes w/ an "Error 303" when we specify NMI mode 2.  Adding a
quirk to drop that mode from the supported list (just use mode 1) allows
the G1 to properly deal with SMS.
2009-09-02 19:06:03 -07:00
Denis Kenzior 10d4c54c30 Change plugins to the new ofono_modem_create api 2009-09-02 17:39:23 -05:00