Commit Graph

396 Commits

Author SHA1 Message Date
Marcel Holtmann 4cacd3a76c atmodem: Send DTMF commands without quotes
The AT+VTS command takes a single character and should not use quotes.
2010-10-13 08:25:59 +03:00
Marcel Holtmann 3ad4e5ab21 atmodem: Update IFX specific SIM ready checking
It seems that the XSIM notification doesn't really send SIM ready
status. It sends ready to attach instead:

  > AT+CPIN="0000"\r
  < \r\nOK\r\n
  < \r\n+XLOCK: "PN",5,0,"PU",5,0,"PP",5,0,"PC",5,0,"PS",5,0\r\n
  < \r\n+XSIM: 7\r\n

So either SIM ready or ready to attach is received more to the
post_sim state.
2010-09-29 23:23:29 +09:00
Marcel Holtmann 590e154734 atmodem: Remove quirk for Huawei voice call support
The Huawei voice call support has its own driver now. So this quirk
is no longer needed.
2010-09-29 08:32:23 +09:00
Marcel Holtmann 6fbbd4ca3e atmodem: Some cleanups in voice call driver 2010-09-27 08:07:02 +09:00
Marcel Holtmann 25bb671d4e atmodem: Add special handling for Infineon SIM ready state 2010-09-25 11:32:40 +09:00
Marcel Holtmann ae2a9207a4 atmodem: Add support for Infineon CNMA without PDU
Seems like the Infineon modem can't handle a provided PDU to the CNMA
command. So just leave it out.
2010-09-24 18:28:32 +09:00
Marcel Holtmann 2be1c13dbb atmodem: Add special handling of Infineon signal strength reporting
The custom signal strength reporting could be done inside the modem
plugin actually, but Calypso, Huawei etc. add quirks to the generic
network registration driver. So for now do it the same way until
this gets cleaned up for all modem plugins.
2010-09-24 18:23:31 +09:00
Denis Kenzior 09c0ae8478 atmodem: Update comment 2010-09-24 00:18:40 -05:00
Marcel Holtmann 430259e38b atmodem: Add vendor quirk for Infineon modems 2010-09-24 02:38:23 +09:00
Marcel Holtmann 9f906504a5 atmodem: Allow setting PPP debug via environment variable 2010-09-20 08:28:13 +09:00
Denis Kenzior c97489a161 ussd: Tweak buffer size 2010-09-15 12:11:08 -05:00
Denis Kenzior f6a4d4a5ce ussd: Rework ussd_request
- Only allocate variables which are needed
- Make sure buffers are big enough
- converted is a simple string, no need to use fancy printf magic
2010-09-14 22:05:32 -05:00
Denis Kenzior 82e6ddfd4b ussd: Simplify ussd notification parser logic 2010-09-14 21:54:25 -05:00
Jeevaka Badrappan eb425a281f ussd: Driver API changes
To support 8bit and UCS2 formatted USSDs as well as Send USSD Proactive
Command.
2010-09-14 17:01:49 -05:00
Jeevaka Badrappan 09de3fdaab ussd: Read current CSCS charset 2010-09-14 11:50:28 -05:00
Lucas De Marchi 74125ff5d4 Fix common misspellings in drivers
Fix common misspellings by using the list available at
http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines

From the list cited above, the substitution script found the following
misspellings:

subsidary(-ies)->subsidiary(-ies)
transfering->transferring
2010-09-14 16:00:16 +09:00
Jeevaka Badrappan a632cfe11b atutil: Add parsing of CSCS queries 2010-09-10 12:00:43 -05:00
Marcel Holtmann a0fe9cbdbd atmodem: Add Huawei quirk for voice call handling 2010-09-04 23:44:30 +02:00
Denis Kenzior 150edce5c3 phonebook: Trivial style / wording fixes 2010-08-30 17:58:53 -05:00
Thadeu Lima de Souza Cascardo b452c29d42 atmodem/phonebook: parse text as hexstring
Some modems omit the quotes when dumping strings in UCS2. Parsing
them as hexstring already does the hex decoding and accepts missing
quotes.
2010-08-30 17:54:10 -05:00
Denis Kenzior 4292b2dbed sim: Turn around the order of arguments
The void *user argument was first.  It should be last instead to be
consistent with the other watch functions.
2010-08-30 14:29:34 -05:00
Denis Kenzior bdc8d02bc8 atmodem: Default to +CHUP to hangup_all 2010-08-20 16:15:11 -05:00
Marcel Holtmann 773b3a8088 atmodem: Add a few more debug statements for SMS support 2010-08-20 21:53:21 +02:00
Marcel Holtmann 6df7c1a1c6 atmodem: Add a few more debug statements for CBS support 2010-08-20 21:45:45 +02:00
Marcel Holtmann 240e3878ae atmodem: Add Nokia specific quirk for AT+CGEREP handling 2010-08-20 20:57:30 +02:00
Marcel Holtmann 1313a2fe01 atmodem: Fix copy and paste typo 2010-08-20 16:53:07 +02:00
Marcel Holtmann cda0fd9eff atmodem: Enable MBM specific notification for registration and bearer 2010-08-20 16:50:42 +02:00
Marcel Holtmann 205b3b813a atmodem: Turn a STE GPRS quirk into a MBM and STE quirk 2010-08-20 14:05:18 +02:00
Marcel Holtmann 3aa7e1b18e atmodem: Add really nasty hack for Nokia AT+COPS bug
The Nokia modem returns an invalid response when trying to read the
numeric value for MCC/MNC of the current network.

Control:> AT+COPS?\r
Control:< \r\n+COPS: 0,2,"26207,0\r\n\r\nOK\r\n

The closing " is just missing and this confuses the AT parser. In case
of a Nokia modem skip reading the numerical values for the network.
2010-08-20 03:00:49 +02:00
Marcel Holtmann 667c4eea84 atmodem: No CIND for Nokia data cards 2010-08-20 02:24:53 +02:00
Marcel Holtmann 814c11d872 atmodem: Add vendor quirk for Nokia data cards 2010-08-20 02:24:07 +02:00
Marcel Holtmann 3adf7a07ca atmodem: Allow missing DCS parameter in USSD result 2010-08-17 00:49:23 +02:00
Marcel Holtmann 10466f6664 atmodem: Add Qualcomm specific USSD quirk 2010-08-16 22:38:38 +02:00
Marcel Holtmann a79901e26f atmodem: Add support for storing USSD vendor quirks 2010-08-16 22:21:52 +02:00
Denis Kenzior 3ea7893108 ussd: Use cb_data instead of custom structure 2010-08-16 15:04:26 -05:00
Marcel Holtmann a8d3e7433a atmodem: Remove useless NULL checks before g_free 2010-08-16 22:02:01 +02:00
Marcel Holtmann 83a04505bf netreg: Add quirk for ZTE modem without CIND support 2010-08-16 15:14:17 +02:00
Denis Kenzior fa822e906e atutil: Don't try parsing lac/ci when unregistered 2010-08-13 18:29:42 -05:00
Denis Kenzior ac524be99f atmodem: Use g_at_chat_clone 2010-08-12 16:40:40 -05:00
Sjur Brændeland dde0a4ccb5 voicecall: Rename hangup to hangup_active 2010-08-12 11:32:12 -05:00
Andrzej Zaborowski 097640d118 atutil: Parse CMS and CME error codes 2010-08-06 12:04:28 -05:00
Zhenhua Zhang 26efde3d7b Fix busylooped in ppp_disconnect for huawei modem
Huawei modem closes the modem port after PPP disconnect. So the channel
of gatchat is NULL in ppp_disconnect. In such case, we resume the chat
and it causes huawei_disconnect() get called and the gprs context is
removed later.

Before removing this gprs context, we should reply the pending DBus
message to the client.
2010-08-02 14:10:37 -05:00
Denis Kenzior 56ba93f261 phonesim: Introduce End Session notification 2010-07-30 17:19:56 -05:00
Yang Gu 9a71ae891b atmodem: phonesim proactive command notification 2010-07-13 09:55:02 -05:00
Yang Gu c603efbf51 atmodem: Make fetch command function as external 2010-07-13 09:51:33 -05:00
Andrzej Zaborowski 79372d26f5 atmodem: Make sim operations return sim error codes. 2010-07-08 14:27:33 -05:00
Andrzej Zaborowski b450efafec atmodem: Don't unregister *EPEV in *EPEV handler.
Handlers are called when looping over the unsolicited responses hash,
registering or unregistering modifies that hash and confuses glib.
2010-06-29 13:59:13 -05:00
Zhenhua Zhang 8246463ef3 atmodem: Update to the new PPP API 2010-06-28 10:19:32 -05:00
Denis Kenzior 52da988816 atmodem: Add CGSMS support to sms driver 2010-06-25 14:25:46 -05:00
Denis Kenzior 7f1a923ebf hso: Don't query tech if not registered or roaming
{NetworkRegistration} [/hso0] LocationAreaCode = 34591
{NetworkRegistration} [/hso0] CellId = 5903759
{NetworkRegistration} [/hso0] Strength = 32
{NetworkRegistration} [/hso0] Strength = 22
{PrimaryDataContext} [/hso0/primarycontext1] Settings =
dbus.Dictionary({}, signature=dbus.Signature('sv'), variant_level=1)
{PrimaryDataContext} [/hso0/primarycontext1] Active = 0
{DataConnectionManager} [/hso0] Attached = 0
{NetworkRegistration} [/hso0] Status = searching
{NetworkRegistration} [/hso0] Technology = umts  <--- Oops
{NetworkOperator} [/hso0/operator/26201] Status = available
{NetworkRegistration} [/hso0] Name =
{NetworkRegistration} [/hso0] Status = registered
{NetworkRegistration} [/hso0] LocationAreaCode = 35342
{NetworkRegistration} [/hso0] CellId = 5903759
{NetworkRegistration} [/hso0] Technology = edge
2010-06-24 20:54:36 -05:00
Denis Kenzior 054ed2653a atmodem: Support CDS indicators for MBM
MBM does not advertise support for CNMA, yet only supports CDS style
notifications which do not need to be acknowledged.
2010-06-21 15:21:40 -05:00
Denis Kenzior 681aaef1ab atmodem: Use a switch/case in sim.c 2010-06-18 14:24:18 -05:00
Andrzej Zaborowski a2dc7dfee0 atmodem: Add PIN entry quirk for mbm.
Wait for *EPEV unsolicited response after PIN entered, otherwise the
next AT+CPIN? query still returns the old value for a fraction of a
second and ofono gets stuck until the next PIN entry attempt.
2010-06-18 14:14:39 -05:00
Denis Kenzior 412ed596b9 Fix: potential to crash in atmodem
Some callbacks in call-meter were assuming that a modem follows 27.007
and actually returns a string.  Some modems don't return a string that
is properly formatted (e.g. in quotes).  The strtol was thus accessing
uninitialized memory and crashing ofono.
2010-06-17 04:26:16 -05:00
Denis Kenzior 5a1c7eef08 atmodem: Couple tiny style fixes 2010-06-14 12:46:11 -05:00
Daniel Wagner b7401489b5 Report cell technology capability for Option HSO modems
Option modem use OCTI and OUWCTI commands
for reporting the cell capability.
2010-06-14 12:46:11 -05:00
Marcel Holtmann f566935f7a Fix memory leak introduced by HSO quirk 2010-06-13 11:46:29 +02:00
Marcel Holtmann 66c50b6a72 Add nasty quirk to allow HSO devices to read network code length
The AT+CRSM=192 commands are failing on HSO devices and thus it might
be needed to return its details from a predefined database. Start with
testing this for reading the network code length.
2010-06-13 08:10:13 +02:00
Denis Kenzior 76dc7e4acd atmodem: Shutdown ppp cleanly on remove
There is a race condition from udev / kernel when a USB dongle is
removed.  Sometimes all ports are removed first (and the io channels for
those ports are signaled as hupped) while other times the udev remove
event fires first.

If the latter happens, then gprs_context remove is called with a
potentially live ppp object.  This patch shuts it down cleanly.
2010-06-11 09:20:05 -05:00
Denis Kenzior c3dddcb5b3 atmodem: Always unref ppp when context is down 2010-06-11 09:20:05 -05:00
Marcel Holtmann 45c1bcb1d9 Disable CNMA support for Novatel based devices 2010-06-10 21:06:48 -07:00
Denis Kenzior 6c8d2f0e5b atmodem: Allow ME & SM for status report store 2010-06-10 22:23:05 -05:00
Denis Kenzior a128cbff8b atmodem: Force CDSI delivery for Novatel devices 2010-06-10 20:21:33 -05:00
Denis Kenzior d8e7a7b5e3 atmodem: Add support for status report via CDSI 2010-06-10 20:13:50 -05:00
Denis Kenzior 39391cf32b atmodem: Use atutil based functions 2010-06-10 20:08:10 -05:00
Denis Kenzior 1b36d1cd43 atmodem: Add utility for parsing CMTI/CDSI/CBMI 2010-06-10 20:06:26 -05:00
Denis Kenzior 5a883d1c76 atmodem: Register for notifications after CMGL 2010-06-10 18:43:30 -05:00
Denis Kenzior 150c1e753f atmodem: Split out the +CPMS sender
Just before sending a CMGR for +CMTI notification, use need to
optionally send a CPMS to select the proper storage.  This should be
done in a separate function for potential re-use by CDSI
2010-06-10 18:41:29 -05:00
Marcel Holtmann 2aeb7df627 And some more minor coding style cleanup in SMS driver 2010-06-09 19:13:57 -07:00
Marcel Holtmann 1125ffa7f6 Fix coding style for one comment in SMS driver 2010-06-09 19:12:24 -07:00
Marcel Holtmann a774d9ed49 Add quirk for Qualcomm issues with setting CBS topic ranges 2010-06-09 18:40:59 -07:00
Marcel Holtmann 88d083c4fd Coding style fix for the PIN type table 2010-06-09 18:23:05 -07:00
Denis Kenzior 1d8bb1bab6 atmodem: Fix CPUC parser
Apparently some modems are extra stupid:

AT+CPUC?\r
\r\n+CPUC: \r\nOK\r\n

So if we fail to parse the response, return an error
2010-06-07 20:36:40 -05:00
Denis Kenzior 588b689d2b netreg: whitespace style 2010-06-07 19:06:57 -05:00
Denis Kenzior 6a480bb861 netreg: Add Huawei RSSI unsolicited callback 2010-06-07 19:06:36 -05:00
Denis Kenzior 11c8156543 atmodem: Optimize cops queries
This patch is meant to do two things:
- Some modems, like the Novatel, report bogus operator information when
  not registered, as opposed to simply returning empty strings.  In this
  case we're a little bit more explicit about checking the returned
  mcc/mnc string
- If we determine that the mcc/mnc string is bogus, we don't schedule
  the alphanumeric cops query and return early.
2010-06-07 12:57:50 -05:00
Marcel Holtmann 45ba3b9a7c Add special SMS handling for Huawei based devices 2010-06-06 18:21:30 -07:00
Marcel Holtmann f1c209d973 Move AT_ODO quirk into HSO driver instead of network registration 2010-06-06 15:27:34 -07:00
Marcel Holtmann 5340901ad3 Use unquoted strings for cell information of Novatel devices 2010-06-06 13:14:57 -07:00
Marcel Holtmann 45bf4cf396 Add support for handling CNTI=0 request with Novatel devices 2010-06-06 13:12:37 -07:00
Denis Kenzior 2b1c433daa hso: Enable OUWCTI notifications 2010-06-04 14:21:58 -05:00
Denis Kenzior 56d14e1fe1 atmodem: Put some common code into a utility 2010-06-04 14:21:57 -05:00
Pasi Miettinen 6220c01f4a Change in at_cds_notify for status report 2010-06-04 14:21:57 -05:00
Marcel Holtmann 50a7d3d741 Send OWCTI query when bringing up Option based devices 2010-06-04 12:17:35 -07:00
Marcel Holtmann 1f5432abd6 Use AT_OUWCTI instead of AT_OWCTI as expected
The Option firmware is so funny. It has a typo in the AT command :)
2010-06-04 12:13:27 -07:00
Marcel Holtmann a4fda8a378 Enable Option specific OWCTI unsolicited notifications 2010-06-04 12:08:21 -07:00
Marcel Holtmann 48d210bac6 The ack pdu support is not working on Novatel or Option devices 2010-06-03 18:15:27 -07:00
Marcel Holtmann 23d97f2c0a Quirk SMS handling for Novatel based devices
The Novatel based devices with Qualcomm chips seems to have various
problems. First they advertise CNMI mode 2, but don't support it. And
second they don't support CNMA acknowledgement with a PDU. So fall back
to acks without PDU.
2010-06-03 08:54:08 -07:00
Marcel Holtmann 22d0cc7df2 Add special quirk for Novatel based devices 2010-06-03 01:20:47 -07:00
Marcel Holtmann 24fd3e2f15 The default PPP netmask should be 255.255.255.255 2010-06-03 00:00:42 -07:00
Kalle Valo 125c7c392f atmodem: fix crash during context deactivation
Ofono either crashed or busy looped with my Huawei E1552 3G modem when I
tried to deactivate GPRS context. The reason was that gcd->chat was
unreferenced already in setup_ppp() but the chat was still accessed
later in at_gprs_deactivate_primary().

To fix the problem, change the logic instead to suspend chat session
for PPP and resume when PPP has disconnected. Now it doesn't crash
anymore.

Deactivation still doesn't work properly with Huawei E1552, and most
probably with other Huawei modems, because the modem hangs up the chat
line after PPP deactivation. This needs to be fixed separately. The
workaround is to reboot the modem, for example physically unplug and plug
it in again.
2010-05-26 12:34:07 -05:00
Kalle Valo bf7243eda4 atmodem: refactor context deactivation
The old way of using CGACT is no longer needed.  It is enough
that we shutdown PPP. Recommended by Denis.
2010-05-26 12:32:03 -05:00
Denis Kenzior 96480e44b2 netreg: Fix crash when CREG is reported too early
If we register for CREG notifications before the netreg atom is
registered (e.g. in MBM due to CIND queries) we crash if the CREG
notification arrives before the CIND is queried.
2010-05-19 23:33:17 -05:00
Kalle Valo 36e9803cdc huawei: add gprs context
Tested with Huawei E1552 HSDPA USB stick using a finnish Saunalahti prepaid
SIM.
2010-05-19 23:09:21 -05:00
Kalle Valo bf5b31e8a8 Move report_signal_strength to atutil
The function is needed in two different places, better to move it
to atutil.h.
2010-05-19 23:08:36 -05:00
Andrzej Zaborowski 5e11442ef7 atmodem: Pass allowed response prefixes to gatchat
Not doing this creates a race condition where any notification
comming in in the middle of a sequence of commands may be counted
as a response to one of the commands and get lost.
2010-05-12 12:18:33 -05:00
Denis Kenzior dea4c88906 atmodem: Fix crashes related to unremoved timeouts
Any timeouts set must be removed using g_source_remove.  Failure to do
so results in sigsegvs when the modem is randomly removed during the
initialization cycle.
2010-05-11 09:10:58 -05:00
Denis Kenzior 5343272bc1 atmodem: Port gprs-context to new PPP api 2010-04-30 15:32:54 -05:00
Denis Kenzior b5f81f4012 Fix: For now calling g_at_chat_unref is fine
Same as g_at_chat_shutdown in this case
2010-04-28 17:27:33 -05:00
Denis Kenzior cc0ffd1720 Rename ofono_atmodem_poll_enable
This is not official oFono API
2010-04-15 16:49:43 -05:00