Commit Graph

112 Commits

Author SHA1 Message Date
Denis Kenzior d6af339c99 git: Fixup messed up permissions 2013-12-21 13:39:54 -06:00
Krzysztof Wilk 171d4dee76 siri: Add atom driver 2013-12-18 00:07:47 -06:00
Andrew Earl e0aeebae0a hfp: Add Voice Recognition flag to BRSF 2013-12-05 03:45:48 -06:00
Denis Kenzior a4a170e1ea hfpmodem: Call ofono_voicecall_mpty_hint as needed 2013-09-12 13:17:39 -05:00
Denis Kenzior c912e0066a hfp: Set UDUB affected set to WAITING only
INCOMING calls are not affected by UDUB, only by +CHUP.
2013-08-25 01:25:28 -05:00
Denis Kenzior fe36dec9a1 hfp: Fix up disconnect reason handling for +CHUP
The affected call types for +CHUP were set to only ACTIVE calls.
Instead the affected set should include INCOMING, DIALING, ALERTING and
ACTIVE calls.

Thanks to Ionut Dediu for the diagnosing and reporting this issue.
2013-08-25 01:21:23 -05:00
Frederic Danis 8fb70d6271 hfpmodem: Fix ECNR HF feature 2013-06-26 10:39:08 -05:00
Claudio Takahasi cf6dce3445 hfpmodem: Add EchoCancelingNoiseReduction
This patch adds echo canceling and noise reduction implementation to
hfpmodem. It adds the implementation to send the command "AT+NREC=0"
to the AG.
2013-04-23 10:28:46 -05:00
Paulo Borges 2e9cb14e26 hfp: Move HFP versions definitions to hfp.h
hfp.h should store all HFP related definitions.
2013-04-18 08:43:21 -05:00
Vinicius Costa Gomes df1f9bf730 hfpmodem: Send AT+BAC with the supported codecs
Before, the AT+BAC command was being sent with fixed information,
now we send the command (that inform the AG of the codecs supported by
the HF) with the codecs supported by the registered Handsfree Audio
Agent.
2013-04-09 14:33:41 -05:00
Denis Kenzior b18963af33 drivers: Include hfp.h 2013-04-09 14:33:41 -05:00
Claudio Takahasi 0772fda92e hfpmodem: Fix segfault in CIEV GAtChat callback
This patch fixes segmentation fault when the network registration
watch is called without being initialized. CIEV GAtChat callback can
be called before ofono_netreg_register().

==15101== Invalid read of size 8
==15101==    at 0x492B56: ofono_netreg_register (network.c:2073)
==15101==    by 0x47245E: hfp_netreg_probe (network-registration.c:311)
==15101==    by 0x492A8D: ofono_netreg_create (network.c:1881)
==15101==    by 0x4849D5: hfp_pre_sim (hfp_hf_bluez5.c:288)
==15101==    by 0x48C486: ofono_modem_set_powered (modem.c:1194)
==15101==    by 0x484E9D: slc_established (hfp_hf_bluez5.c:85)
==15101==    by 0x4702AD: chld_cb (slc.c:147)
==15101==    by 0x440457: at_chat_finish_command (gatchat.c:461)
==15101==    by 0x44109F: new_bytes (gatchat.c:532)
==15101==    by 0x4433B7: received_data (gatio.c:122)
==15101==    by 0x3CBAA47824: g_main_context_dispatch (gmain.c:2539)
==15101==    by 0x3CBAA47B57: g_main_context_iterate.isra.23
(gmain.c:3146)
==15101==  Address 0x18 is not stack'd, malloc'd or (recently) free'd
2013-02-21 17:09:54 -06:00
Denis Kenzior b9782fedfc hfpmodem: Add comment for previous commit 2013-01-21 09:41:54 -06:00
Mikel Astiz 843bd71169 hfpmodem: Fix release-and-swap without +CIEV
Some phones do not send the corresponding call state update (+CIEV)
after a successful release-and-swap operation (AT+CHLD=1).

This has been observed with a Nokia 500, while testing ReleaseAndSwap()
while an active and a held call exist:

ofonod[20414]: > AT+CLCC\r
ofonod[20414]: < \r\n+CLCC: 1,0,1,0,0,"<number1>",145\r\n
ofonod[20414]: < \r\n+CLCC: 2,0,0,0,0,"<number2>",145\r\n
ofonod[20414]: < \r\nOK\r\n
ofonod[20414]: > AT+CHLD=1\r
ofonod[20414]: < \r\nOK\r\n

After this, no +CIEV is received, but the call has been hung up.

The proposed approach to solve this consists of using AT+CLCC, unless
a call release has been received within a specific time period.

The result fixes the problem as can be seen below:

ofonod[20847]: < \r\n+CLCC: 1,0,1,0,0,"<number1>",145\r\n
ofonod[20847]: < \r\n+CLCC: 2,0,0,0,0,"<number2>",145\r\n
ofonod[20847]: < \r\nOK\r\n
ofonod[20847]: > AT+CHLD=1\r
ofonod[20847]: < \r\nOK\r\n
ofonod[20847]: > AT+CLCC\r
ofonod[20847]: < \r\n+CLCC: 1,0,0,0,0,"<number1>",145\r\n
ofonod[20847]: < \r\nOK\r\n
ofonod[20847]: < \r\n+CIEV: 5,2\r\n
ofonod[20847]: < \r\n+CIEV: 5,0\r\n
2013-01-21 09:41:54 -06:00
Mikel Astiz cbb784e734 hfpmodem: Avoid transitional voicecall states
While processing the result of AT+CLCC, process the differences in a way
that disconnections are reported first, then call state changes and
finally new calls.

The goal is to avoid unnecessary transitional states such as two active
calls existing at the same time.
2013-01-21 09:41:54 -06:00
Mikel Astiz 9726e50d82 hfpmodem: Refactor voicecall notify with foreach
Define a helper function in order to use foreach statements when
ofono_voicecall_notify() needs to be called.
2013-01-21 09:41:54 -06:00
Vinicius Costa Gomes a419432c0f hfpmodem: Add support for sending the supported codecs
Right now, only the mandatory CVSD codec is supported. The mSBC
mandatory codec is "temporarily" not supported.

The spec alows this, HFP 1.6 Spec Section 4.34.1 page 92: "If wide band
speech is supported then the mandatory codec (mSBC) shall be included
unless it is temporarily unavailable."
2013-01-17 11:21:16 -06:00
Vinicius Costa Gomes f09a57d799 hfpmodem: Add version defines for HFP 1.6 2013-01-17 11:21:16 -06:00
Denis Kenzior fb1d1c3426 hfp: use ofono_handsfree_battchg_notify 2012-12-17 09:50:22 -06:00
Michael Brudevold ef25cf1adf hfpmodem: use full CLCC handling in dialing case
A call that moves from the dialing to active state before the +CLCC response
will not properly be added as a voicecall. This is because the dialing callback
was using simplified handling and only looked for calls in the dialing or
alerting state.

AT sequence that exhibited the failure (AG device was an iPhone accessing
visual voicemail):

> +CIND: ("service",(0-1)),("call",(0-1)),("callsetup",(0-3)),
("battchg",(0-5)),("signal",(0-5)),("roam",(0-1)),("callheld",(0-2))
...
> +CIEV: 3,2
< AT+CLCC
> +CIEV: 2,1
> +CIEV: 3,0
> +CLCC: 1,0,0,0,0,"**21153**",129,"Voicemail"
2012-04-11 23:54:38 -05:00
Mikel Astiz 3f41ebe5c7 hfpmodem: Report features supported by AG 2011-10-21 13:56:43 -05:00
Mikel Astiz bab9de3843 hfpmodem: devinfo atom added to export BT address 2011-10-21 13:19:17 -05:00
Mikel Astiz 7100435142 hfpmodem: Avoid segfault in handsfree
The use of g_idle_add can cause a segmentation fault if the object is
destroyed in the meantime.
2011-10-21 13:17:40 -05:00
Mikel Astiz 6e5edc8ead hfpmodem: Avoid segfault in call-volume
The use of g_idle_add can cause a segmentation fault if the object is
destroyed in the meantime.
2011-10-21 13:17:17 -05:00
Mikel Astiz c1ed32db9d hfpmodem: Avoid segfault in network-registration
The use of g_idle_add can cause a segmentation fault if the object is
destroyed in the meantime.
2011-10-21 13:17:13 -05:00
Mikel Astiz bb0bcef256 hfpmodem: Support for AT+BVRA 2011-10-21 13:14:19 -05:00
Mikel Astiz 2cafaeed13 hfpmodem: minor whitespace fix 2011-10-20 12:57:36 -05:00
Mikel Astiz 813405500b hfpmodem: Support for +BSIR unsolicited responses 2011-10-20 12:53:34 -05:00
Marcel Holtmann 48190bdc11 drivers: Some more copyright fixes 2011-10-15 12:21:30 -07:00
Denis Kenzior 066690b17f handsfree: Pass the error information to the core
if available.  This is the preferred way, so that the core can take into
account the error information in the future if required.
2011-10-13 13:47:56 -05:00
Mikel Astiz 86cb93d410 hfpmodem: Support of number requests (AT+BINP=1) 2011-10-13 13:37:12 -05:00
Denis Kenzior 9a53aca0ab handsfree: Set in-band ringing before registering
Avoid an extra signal emission
2011-10-13 13:06:35 -05:00
Mikel Astiz f05a78a450 hfpmodem: Set initial state for inband ringing
According to the HFP specification, inband ringing will be enabled by
default if the AG supports it. This setting could later be changed by
the unsolicited result code +BSIR.
2011-10-13 13:01:14 -05:00
Mikel Astiz eb361d874c hfpmodem: Copyright statement correction 2011-10-13 12:27:27 -05:00
Marcel Holtmann 4e77afffb3 drivers: Update copyright information 2011-10-10 13:39:48 -07:00
Denis Kenzior 586a2a294a call-volume: Use g_idle_add to register 2011-09-09 01:05:47 -05:00
Mikel Astiz 7d5b57e47c hfpmodem: Add skeleton driver implemenetation 2011-09-09 00:30:14 -05:00
Denis Kenzior 6b5761f5f0 hfpmodem: Use an enum 2011-08-08 10:16:21 -05:00
Frédéric Danis b8730eb47d hfpmodem: fix hf features
check audio gateway version and only set right features
2011-08-08 10:16:21 -05:00
Frédéric Dalleau f13b3d3a6b hfpmodem: Fix g_at_chat leak 2011-08-05 17:02:36 -05:00
Frédéric Danis c6c7fc3b16 hfpmodem: fix network status
When receiving roaming indicator update to 0 (no roaming) network
registration status should be updated with latest value of service
indicator.
2011-07-25 23:07:54 -05:00
Frédéric Danis 3b00f5aad7 hfpmodem: fix callheld indicator
Callheld move from 1 (active and held calls) to 2 (all calls on hold) may
result of:
- active call has been dropped by remote,
- an intermediate state during a call swap which will be followed by a
  move back to 1.
So, wait a little before checking calls state.
2011-07-25 23:06:16 -05:00
Denis Kenzior b33d6b5fcb hfp_hf: Reorganize common code into hfpmodem 2011-07-21 03:49:27 -05:00
Denis Kenzior 191570a1ba hfpmodem: Minor whitespace fix 2011-07-20 08:22:25 -05:00
Frédéric Danis 6db88b21d0 hfpmodem: remove previous HFP defines 2011-06-20 04:21:30 -05:00
Denis Kenzior 1bc1e52751 hfp: Fix some whitespace issues 2011-03-17 16:11:02 -05:00
Jeevaka Badrappan a4c3733314 hfpmodem: M16 coding style fix 2011-02-05 07:04:17 -08:00
Jeevaka Badrappan 3fef7a3d26 hfpmodem: Use defined call_status enum 2011-02-05 05:07:42 -08:00
Lucas De Marchi a6d15c6a64 hfpmodem: use ofono_call initializer 2011-02-01 18:31:28 +01:00
Jeevaka Badrappan ae9feb72e9 hfpmodem: fix memory leak 2011-01-29 12:43:17 -06:00