Commit Graph

1516 Commits

Author SHA1 Message Date
Luiz Augusto von Dentz bf005f5599 hfp_hf: Fix not creating modem during NewConnection
In case the UUIDs are not updated, as they are still being resolved, when
Paired property changes a modem will never be registered.

In order to fix this problem allow modems to be registered directly
during NewConnection.
2017-05-01 10:45:25 -05:00
Vincent Cesson ea0dfcc4ab gemalto: Set vendor for sms atom 2017-04-21 11:02:16 -05:00
Jonas Bonn e52d224d9a Add support for Quectel EC21/25 modems
This follows the same pattern as the Telit QMI modems, routing the
setup through a QMI driver.  I think this can be cleaned up somehow,
but for now this at least provides support for these two modem models
so that others can aid in testing.
2017-04-20 12:45:11 -05:00
Vincent Cesson 9cc3eaabf9 gemalto: Use sim_state_query for sim detection
Populate gemalto_data structure.
Add sim_state callbacks.
Fix enable/disable return value.
2017-04-20 12:43:28 -05:00
Vincent Cesson 920f77b770 gemalto: Change offline mode, keep USIM available
Gemalto has two airplane mode:
CFUN=0 disables USIM
CFUN=4 keeps USIM connected
2017-04-13 11:56:27 -05:00
Vincent Cesson 160a03e2bf gemalto: Clean post init functions
Remove inappropriate interfaces.
Move GPRS init from post_online to post_sim.
2017-04-13 11:55:15 -05:00
Jonas Bonn 174eddc80d udevng: remove 'option' driver setup
No driver named 'option' exists so this device can never be instantiated.
2017-03-31 18:15:19 -05:00
Jonas Bonn ed66682315 plugins: remove udev module
This functionality has been moved into the udevng module and was
already disabled in an earlier patch.
2017-03-29 09:56:32 -05:00
Jonas Bonn bf20f0df18 udevng: get properties from interface
Device properties are generally on the device, on the USB interface
descriptor, or the on the USB device descriptor.
2017-03-29 09:56:28 -05:00
Jonas Bonn 1b28cb5cc6 udevng: hook up legacy devices
...and disable old udev code by shorting it out in it's init() function.

The check_device function is augmented to differentiate between USB
and serial devices:

- if the device sits on a USB bus, the device is handled as before
- if not, an attempt is made to handle the device as a serial device
2017-03-29 09:55:51 -05:00
Jonas Bonn 90c8885f4f udevng: match on the hsi subsystem for legacy devices 2017-03-29 09:55:33 -05:00
Jonas Bonn 3ac449e25f udevng: add serial device handling functions
This adds, but does not hook up, support for simple serial modems.  These
modems generally have only a single device node so are simpler than the
USB devices which generally have different device nodes for different
functions.  These modems are currently handled by udev.c, but this
functionality will allow to remove that module completely in a later patch.

- A new "device_info" type is created called serial_device_info
- the function add_serial_device sets up a modem_info structure and a
  serial_device_info for the device
- A reference to the device's udev node is saved in the device info
- The device driver is retrieved from the OFONO_DRIVER environment variable
  which needs to be set up by some udev rule
- Setup functions are added for these types of devices: a common function
  setup_serial_modem covers the generic (simple) case, whereas modems
  with special requirements are given their own setup functions to handle
  the special bits
- Modem destroy needs to know the "device_info" type in order to clean
  up properly, so a 'type' value is set on the modem_info structure to
  guide selection of the proper cleanup function
2017-03-29 09:53:48 -05:00
Lukasz Nowak e1f42cb68a udevng: add Telit LE910 V1 support
Tested with LE910-SVG and Verizon.
2017-03-26 22:41:50 -05:00
Jonas Bonn 36be849043 udev: remove extraneous subsystem check
The enumeration construct is already set up with matches for these
subsystems.
2017-03-26 21:21:43 -05:00
Jonas Bonn 8c30bcf576 udev: simplify wavecom modem registration 2017-03-26 21:21:18 -05:00
Jonas Bonn 43e2be3574 udev: simplify ifx modem registration 2017-03-26 21:20:56 -05:00
Jonas Bonn 3c16db19e2 udev: add common modem registration code
Many of these drivers do exactly the same setup when registering
the modem.  Consolidate these setup functions into common code.
2017-03-26 21:19:46 -05:00
Jonas Bonn 55a4bbf7e3 udev: simplify add_modem
Adding a modem boils down to finding the device in the hierarchy with
the OFONO_DRIVER property.  The original code special-cased the property
being on the device itself rather than on a parent device.  This patch
combines the two cases.
2017-03-26 21:17:58 -05:00
Jonas Bonn 5a2591ce4d udev: remove unused modem property
The property 'Registered' is not used anywhere.
2017-03-26 20:50:50 -05:00
Jonas Bonn 428fdc7fb6 udev: get udev property via lib function 2017-03-26 20:50:36 -05:00
Jonas Bonn 0df3231f7f udev: remove extraneous subsystem check
The udev-monitor already guarantees that only devices with these
subsystems will be returned so we don't need to check again.
2017-03-26 20:49:34 -05:00
Jonas Bonn dd1e441966 ofono.rules: remove 'change' action
The code doesn't do anything with this action so don't bother setting
extra device properties for it.
2017-03-26 20:44:52 -05:00
Jonas Bonn 03e1ec2f66 udevng: simplify logic in check_usb_device
This patch simplifies and cleans up the check_usb_device function a bit
by doing the two following (slightly intertwined) things:

1)  The parent "usb_device" is searched for early in this function and this
device will always have the ID_VENDOR_ID and ID_MODEL_ID properties.
As such, we can get them from this device and thereby be certain that
we _always_ have them available.

2)  The logic of iterating the vendor_list table is cleaned up.  It's
easier to follow and won't be any less efficient.
2017-03-26 20:42:27 -05:00
Jonas Bonn b3b0cbb045 gobi: query presence of WDA service 2017-03-25 16:01:45 -05:00
Lukasz Nowak 988cec2fc2 gobi: Do not use low-power modes for some modems
Telit QMI modems have a problem with the low-power operating modes.
After entering and leaving such a state, UIM service does not return.
The sim card is still marked as powered-down. The QMI interface does
not have a way to power it back on.

To avoid this, keep modems with the "AlwaysOnline" flag online
in the disable-modem and offline-modem procedures.
2017-03-24 09:59:34 -05:00
Christophe Ronco 26aba4612c huawei: reopen modem channel if it disconnects
On E3372 after a GPRS disconnection, modem AT channel (used by PPP) gets
disconnected (G_IO_HUP and G_IO_ERR are detected in received_data
in gatio.c).
After that all connection attempts fail because we are not able to send
any AT commands on modem channel (it is closed).

With this patch, when this behavior is detected, we close gprs context
driver, reopen AT channel and gprs context driver.
2017-02-21 11:13:51 -06:00
Christophe Ronco 94fd4d804d provision: add plugin to provision from config file
This plugin allows to provision gprs-context data based on MCC and MNC.
This is useful when provisioning using mbpi fails (either because you
are using a private APN or because there are multiple internet type context
for your operator in mbpi database).
Config file is STORAGEDIR/provisioning.
Config file should look like that:
[operator:MCC1,MNC1]
internet.AccessPointName=apn1
internet.Username=myUsername
internet.Password=myPassword
internet.AuthenticationMethod=pap
internet.Protocol=ipv6
[operator:MCC2,MNC2]
internet.AccessPointName=apn2

The only mandatory parameter for each operator is internet.AccessPointName.

Parameter description:
internet.AccessPointName: APN
internet.Username: Username
internet.Password: Password
internet.AuthenticationMethod: authentication method.
 Possible values are:
  - pap
  - chap
 Default is chap if unset.
internet.Protocol: protocol
 Possible values are:
  - ip: ipv4
  - ipv6
  - dual
 Default is ip if not set.

All parameters are prefixed with internet to be able to extend this plugin
to other type of contexts (MMS, ...).
2017-02-21 11:08:27 -06:00
Piotr Haber 69c67fce7f telit: register SIM if it goes straight to ready
SIM without PIN goes straight to state 3 (INSERTED and READY)
on some modem/firmware versions.
2017-02-08 10:55:09 -06:00
André Draszik 177e39e44b plugins: telit: send AT&C0 on both channels
At least firmware version 12.00.405 on the UE910-EUR otherwise
closes the AT command port whenever the PPP connection is
dropped, and we'd be left in a funny state.
2017-02-07 10:58:07 -06:00
Antara Borwankar 61453d8688 ril_intel: Add support for stk 2017-02-07 10:56:57 -06:00
Piotr Haber 3ae33b2dd6 telit: add support for UE866 2017-02-02 11:58:51 -06:00
Piotr Haber 5c0a8e531e udevng: unify telit and xe910
Unified setup for Telit devices using
usbserial and cdc_acm drivers.
2017-02-02 11:58:13 -06:00
Piotr Haber ccd49f3fe6 plugins: rename xe910 to telit
Unify old telit and xe910 plugins.
Dropping support for Bluetooth SAP.
Add support for UC864 family.
2017-02-02 11:51:19 -06:00
Piotr Haber 6e4bf596e9 xe910: support for Telit LE910V2 modem
LE910V2 is next generation Telit LTE modem.
It supports 3GPP Rel. 9 LTE Cat. 4 over multiple bands.
2017-01-27 20:37:05 -06:00
Piotr Haber 0a7e4c0716 udevng: setup of Telit LE910V2
Setup LE910V2 in default USB composition (1bc7:0036)
with 6 CDC-ACM serial ports and 1 CDC-NCM network adapter.
2017-01-27 20:22:59 -06:00
Piotr Haber a88aaaac17 plugins: Handle HE910 and UE910 variants
Telit modems HE910 and UE910 share the same USB
vendor and device IDs (1bc7:0021) but they are
different devices.
HE910 is HSPA Class 14/6 and UE910 is Class 8/6.
Both come in voice-enabled variants.
HE910 also comes in variants with built-in GPS.
2017-01-26 13:29:40 -06:00
Piotr Haber 36d18310df plugins: rename he910 to xe910
In preparation for more generic support
of Telit xE910 family.
2017-01-26 13:10:18 -06:00
Vincent Cesson 8d330087cf gemalto: Add location reporting support 2017-01-19 13:34:45 -06:00
Vincent Cesson e8c80cbe8b udevng: complete gemalto setup
Complete the Gemalto setup with cdc_wdm and qmi,
so all enumerated devices are associated with gemalto.
2017-01-18 20:19:17 -06:00
Vincent Cesson 92c4b831dc udevng: Add Gemalto P-family detection
Add a new function setup, based on telit, to handle Gemalto P-family
discovery. The setup looks for USB interfaces:
application=/dev/ttyUSB2
gps=/dev/ttyUSB1
modem=/dev/ttyUSB3
2017-01-16 22:25:16 -06:00
Vincent Cesson 85c49528d0 plugins: Add Gemalto plugin for Cinterion P-family
Actual cinterion plugin is not compliant with newer Gemalto modems.
Gemalto plugin is based on cinterion with a custom struct to handle the
interfaces Application and Modem.
2017-01-16 22:25:16 -06:00
Christophe Ronco 4b38259a6f udevng: Sierra modems use SIM driver 2017-01-10 11:26:23 -06:00
Antara Borwankar 343f8cb48a ril_intel: changes for lte modem
plugin modified to bring up lte atom and set MODEM_PROP_LTE_CAPABLE
to TRUE
2016-12-12 21:34:17 -06:00
Antara Borwankar dc1f7bf67e ril_intel: renamed ril_sofia3gr to ril_intel
renamed ril_sofia3gr.c to ril_intel.c
2016-12-12 21:34:02 -06:00
Djalal Harouni ee0ca53a33 ubloxmodem: register and initialize the netmon driver 2016-12-01 11:22:31 -06:00
Dragos Tatulea 919e0b95ac plugins: ublox: enable lte driver for tobyl2 2016-11-15 13:46:04 -06:00
Kuba Pawlak de58109933 bluez5: fix crash on DBus transport disconnection
Do not register dbus notification if message failed to be sent out
because transport was already disconnected
2016-11-10 10:18:26 -06:00
Frédéric Dalleau 3079ccad45 udevng: Detect huawei E3372 modem and pcui
When the modes are modified with AT^SETPORT="FF;12,1,16", this modem
and pcui will appear using different ids. Update the interfaces
identifier accordingly.
2016-09-29 10:59:21 -05:00
Frédéric Dalleau 1978934740 udevng: Detect huawei E3372 pcui
The huawei E3372 exposes two USB tty at /dev/ttyUSB0 and /dev/ttyUSB1
/dev/ttyUSB1 is properly detected as modem.
/dev/ttyUSB0 is the pcui.

lsusb shows 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
2016-09-29 10:58:47 -05:00
Ankit Navik b1baea9830 ril_sofia3gr: use vendor modem power down command 2016-07-07 11:59:47 -05:00
Denis Kenzior f420aea458 allowed-apns: Fix crash
When a modem is being removed, all of the modem's atom watches have
already been cleaned up.  Trying to remove it again results in a crash.

Fix by registering a destroy callback which will be notified when the
atomwatch has been removed.
2016-06-06 11:01:17 -05:00
Nishanth V ff7837b054 plugins: Fix allowed apn plugin exit 2016-05-26 09:27:01 -05:00
Rajagopal Aravindan a8d084dcf0 ril_sofia3gr: Add transmit power throttling
Added 'sofia3gr.ThermalManagement' interface to sofia3gr plugin and
floated 'TransmitPowerThrottling' as an ofono property under that,
to support modem throttling.

'sofia3gr.ThermalManagement'
    1.Will be available ONLY if modem throttling is supported in RIL.
      This is determined by sending a RIL request during ofono start,
      to get current throttling state. If it succeeds, interface is
      published otherwise not.

'TransmitPowerThrottling'
    1.GetProperties will be allowed both when modem is ON & OFF.
    2.GetProperties will be serviced by looking it up from state
      information maintained inside ofono. No RIL call will be made.
    3.SetProperty will be allowed ONLY when modem is ON.
    4.SetProperty request will be forwarded to RIL ONLY if
      new state != current state. If RIL request succeeds, state
      information will be updated and also, a property change signal
      will be emitted.
2016-05-24 11:01:43 -05:00
Caiwen Zhang b8a79b605e plugins/ril: enable cbs 2016-05-19 10:30:13 -05:00
Samrat Guha Niyogi 5a03102192 ril_sofia3gr: Return -EINPROGRESS on disable() 2016-05-18 12:15:41 -05:00
Caiwen Zhang 6c328f8529 plugins/ril: complete modem power off process 2016-05-13 20:54:56 -05:00
Caiwen Zhang ca8c3ff22b plugins/ril: enable STK 2016-05-03 11:14:43 -05:00
Denis Kenzior 5b80335573 gobi: Fix warning
plugins/gobi.c: In function ‘gobi_pre_sim’:
plugins/gobi.c:431:2: error: ‘sim_driver’ may be used uninitialized in
this function [-Werror=maybe-uninitialized]
  ofono_sim_create(modem, 0, sim_driver, data->device);
    ^
2016-05-03 11:12:19 -05:00
Denis Kenzior 2b64d31fbc udevng: Fixup various minor style issues 2016-05-03 11:09:24 -05:00
Martin Chaplet 4005e87923 udevng: Add support for Sierra MC73xx QMI modems
Udevng layer is changed in order to support Sierra QMI modems like
MC73cxx. Identically to Huawei modems, these modems are parsed by
setup_sierra. If QMI interface is detected, the Gobi modem driver is
selected.

Unfortunately, MC73xx chips seem to have a broken QMI UIM interface.
The qmimodem-legacy is so forced in setup function.
2016-05-03 11:06:04 -05:00
Martin Chaplet d415265a69 udevng: Improve modem properties detection
* Add driver's subsystem information (net, usb, tty, ...)
 * Improve interface number extraction by scanning also device and
 parent attributes
2016-05-03 11:04:58 -05:00
Martin Chaplet be1190b2cf gobi: Enable SIM driver forcing
Some gobi devices do not actually support UIM interface.  So if the
"ForceSimLegacy" property is set, force the qmimodem-legacy SIM driver.
2016-05-03 11:03:41 -05:00
Martin Chaplet 9e50d14e40 udevng: Add usbmisc scan for QMI devices
cdc-wdm0 are now usbmisc devices
2016-05-02 10:11:24 -05:00
Denis Kenzior 55729d68fb ril_sofia3gr: Add quirk to radio_settings atom 2016-04-25 15:27:37 -05:00
John Ernberg 875968d270 smart-messaging: Use g_slist_free_full 2016-04-22 15:26:34 -05:00
John Ernberg 27b3d904ea bluez4: Remove unneeded casts 2016-04-22 15:25:54 -05:00
Caiwen Zhang 15a5660d58 plugins/ril: Move GPRS atom to 'post_online' state
At gprs atom 'probe' state, max cid query may fail due to rild
status isn't RADIO_STATUS_ON. It causes gprs atom is removed, gprs
feature is inavailable. Move gprs atom creating to 'post_online'
state to make sure rild status is RADIO_STATUS_ON when query max
cid.
2016-04-22 14:19:47 -05:00
Nishanth V 72eb1d7b5f plugins: Add allowed apn list 2016-04-21 10:01:53 -05:00
Kuba Pawlak dee50a7565 plugins/nokia-gpio: fix glibc 2.23.9+ issues
readdir_r’ is deprecated [-Werror=deprecated-declarations]
2016-04-18 09:58:21 -05:00
Nishanth V 8c88c307ca sofia3gr: Add netmon support 2016-03-31 10:00:27 -05:00
Denis Kenzior a57743ac25 sofia3gr: Fix style issue 2016-03-22 10:28:33 -05:00
Anirudh Gargi 28455e5cd7 sofia3gr: Enable vendor type in SMS driver 2016-03-22 10:27:57 -05:00
Dragos Tatulea 8d8333cc21 ublox: support more internet contexts
Create multiple gprs-context instances and let the gprs core use
them as it sees fit.

Only for Toby L2.
2016-03-17 09:53:51 -05:00
Dragos Tatulea 50133ac0f4 ublox: enable ubloxmodem driver when possible
Where possible means Toby L2 in high speed mode.

The bridge mode is set before enabling the modem because the
driver requires this.
2016-03-17 09:52:23 -05:00
Dragos Tatulea 82fb20d707 ublox: give names to model ids
To make it easier to understand the code.
2016-03-17 09:40:59 -05:00
Denis Kenzior 5b6ac8c14f ublox: devinfo atom driver has no vendor behavior 2016-03-16 13:18:28 -05:00
Dragos Tatulea c0c2ae87ab ublox: use vendor from structure instead of fixed
That's because we need to differentiate between multiple ublox
devices.
2016-03-16 13:12:49 -05:00
Dragos Tatulea ae74d4ccd6 ublox: allow enabling of TOBY L2 modems
For this we need to:
* Set the vendor family based on model id.
* Not use modem interface for the TOBY L2 family.
2016-03-16 13:10:29 -05:00
Dongsu Park 5d8f5228ca udevng: Support U-blox TOBY series of devices
Each modem expresses their interfaces with its own interface string,
which is composed of 3 different USB attributes:
"bInterfaceClass/bInterfaceSubClass/bInterfaceProtocol".
While the old models like LISA support only "2/2/1" for modem
interfaces, TOBY-L2 also supports an unique string for NetworkInterface
for each profile.

* low-medium throughput profile : 2/6/0
* fairly backward-compatible profile : 10/0/0
* high throughput profile : 224/1/3

Besides the condition for checking NULL for mdm/aux/net should be relaxed
a little bit.
2016-03-16 12:59:51 -05:00
Denis Kenzior b1017670f5 ril_sofia3gr: Fix warning 2016-03-16 12:59:51 -05:00
Samrat Guha Niyogi ef36ca7a24 ril_sofia3gr: add ussd atom to post_online 2016-03-16 12:51:26 -05:00
Denis Kenzior 5133bd2818 udevng: Move from setup_icera to setup_ublox
As intended by 126b04
2016-03-11 14:08:18 -06:00
Dragos Tatulea 126b0424d3 plugins/udevng: ublox: set model string
Necessary for supporting the ublox TOBY L2 modem.
2016-03-10 08:03:20 -06:00
Dongsu Park 56ff134721 plugins/udevng: support the U-Blox TOBY-L2 series
The newest generation of U-Blox TOBY-L2 series can be detected with
VID 0x1546 (the same as before), and one of the following PIDs:

* "0x1146" : high throughput profile
* "0x1141" : fairly back-compatible profile
* "0x1143" : low/medium throughput profile

This patch adds detection for high throughput mode.
2016-03-09 11:23:52 -06:00
Denis Kenzior 6df0655aa3 ril_sofia3gr: Add radio_settings atom 2016-01-05 10:38:54 -06:00
Tony Espy dd16d4d1b5 plugins: add upower battery monitor for bluetooth 2015-12-18 09:53:38 -06:00
Denis Kenzior d9ed2eab19 ril: Use g_ril_new_with_ucred 2015-12-16 11:39:53 -06:00
Denis Kenzior 1f98d96079 plugins: Add sofia3GR ril driver 2015-12-15 17:17:53 -06:00
Denis Kenzior f1f657b6da stktest: Remove usage of decode_at_error
Otherwise the build fails when building without atmodem support
2015-12-15 17:17:15 -06:00
Denis Kenzior 9c7856efa0 ril: Get rid of ril_gprs_context_data 2015-12-13 22:20:58 -06:00
Denis Kenzior b69bb1116e ril: Don't use ril_sim_data 2015-12-13 21:30:14 -06:00
Denis Kenzior d7cb11a363 ril: Don't include grilunsol.h 2015-12-04 13:43:28 -06:00
Denis Kenzior 001701caee ril: Get rid of gprs_driver_data 2015-12-03 13:08:48 -06:00
Denis Kenzior 6e0ce5ece5 ril: Don't include grilreply.h 2015-12-03 11:40:47 -06:00
Denis Kenzior 86d7a8d6f0 ril: Remove grilrequest.h 2015-12-03 10:20:24 -06:00
Tony Espy 72ddf14046 plugins: rm unneeded exits/sleeps from ril plugin 2015-11-19 16:30:32 -06:00
Tony Espy a35de9c0c9 ril: remove unecessary sleep from ril plugin 2015-11-17 20:50:17 -06:00
Denis Kenzior a07f7b7cf4 ril: Implement radio state changed parsing inline 2015-11-17 12:10:59 -06:00
Petr Vorel b8a9e0d5ec gobi: Add missing _GNU_SOURCE
as we're using O_CLOEXEC
2015-11-16 09:32:09 -06:00
Denis Kenzior de1aad2e11 ril: Don't use ril_voicecall_driver_data 2015-11-12 13:17:55 -06:00
Denis Kenzior b7af1278cb ril: Pass GRil object to radio_settings
Instead of ril_radio_settings_driver_data
2015-11-05 20:53:09 -06:00
Denis Kenzior 43d45404d3 ril: Implement power on/off inline 2015-11-05 10:17:37 -06:00
Simon Fels 2113b0a5ed hfp_ag_bluez5: use codec negotiation 2015-10-26 11:43:09 -05:00
Simon Fels 989f9b26e2 hfp_ag_bluez5: Add initial handsfree audio driver 2015-10-19 08:57:44 -05:00
Alfonso Sanchez-Beato 7d428137e6 rildev: Do not create modems if no env var set
Do not create rilmodem instances if the environment variable
OFONO_RIL_DEVICE is not set.
2015-10-15 10:01:09 -05:00
Alfonso Sanchez-Beato fe11f8c525 rildev: plugin that creates ril-type modems
This plugin creates modems that use the rilmodem driver by looking at
environment variables: when OFONO_RIL_DEVICE exists it creates a ril
modem of the sub-type specified by the variable. OFONO_RIL_NUM_SIM_SLOTS
specifies the number of SIM slots for multi-SIM modems.
2015-10-13 21:35:32 -05:00
Alfonso Sanchez-Beato 368b8b497c infineon: Plugin for infineon modems
Plugin for infineon modems, which is a variant of the ril modem.
2015-10-13 21:35:00 -05:00
Tony Espy 54b05e211b ril: Plugin for Android modems
Plugin for Android modem, which uses the rilmodem driver.

Co-authored-by: Tony Espy <espy@canonical.com>
Co-authored-by: Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>
Co-authored-by: Alfonso Sanchez-Beato <alfonso.sanchez-beato@canonical.com>
Co-authored-by: Islam Amer <islam.amer@jollamobile.com>
Co-authored-by: Jussi Kangas <jussi.kangas@tieto.com>
Co-authored-by: Juho Hämäläinen <juho.hamalainen@tieto.com>
Co-authored-by: Martti Piirainen <martti.piirainen@canonical.com>
Co-authored-by: Jarko Poutiainen <Jarko.Poutiainen@oss.tieto.com>
Co-authored-by: Tommi Kenakkala <tommi.kenakkala@oss.tieto.com>
Co-authored-by: Petri Takalokastari <petri.takalokastari@oss.tieto.com>
Co-authored-by: Miia Leinonen <miia.leinonen@oss.tieto.com>
Co-authored-by: Mikko Hurskainen <mikko.hurskainen@nomovok.com>
Co-authored-by: You-Sheng Yang <vicamo.yang@canonical.com>
2015-10-13 21:34:56 -05:00
Simon Fels c575802491 hfp_ag_bluez5: register audio card
To let others (PulseAudio) be notified when a handsfree device is
connected with us and can be used for audio routing we need to
expose this by registering a audio card with the correct type.
2015-10-06 09:05:42 -05:00
Simon Fels 5a7410e9e4 handsfree-audio: add type for our audio cards
When registering audio cards for the handsfree and gateway roles we
need a way for our users to differentiate between both to decide which
of them they start using for their purpose.
2015-10-05 11:46:30 -05:00
Alfonso Sanchez-Beato 665c053803 push-notification: Accept push from any origin
Accept push notifications regardless of the origin port, as some
operators do not insert there the WAP connectionless session service
port, and use random values instead.
2015-09-08 09:14:03 -05:00
Johannes 'josch' Schauer b04fabcda3 udevng: add support for Ericsson N5321 gw 2015-07-16 14:10:41 -05:00
Kuba Pawlak 71df8bb15e hfp_hf_bluez5: Fix crash on re-pairing a Device
It may happen that a Device object is unpaired an paired again
without being removed from DBus. This in turn triggers second
modem object to be created, but not fully initialized.
If this modem object is used, oFono will crash.
2015-07-12 21:19:31 -05:00
Marcel Holtmann a2acb227fd u8500: Fix compiler warning with logical expression
CC       plugins/u8500.o
plugins/u8500.c: In function ‘reachable_cb’:
plugins/u8500.c:235:28: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses]
  if (!g_isi_msg_error(msg) < 0)
                            ^
2015-07-07 11:35:54 +02:00
Marcel Holtmann def77f7653 n900: Fix compiler warning with logical expression
CC       plugins/n900.o
plugins/n900.c: In function ‘mtc_reachable_cb’:
plugins/n900.c:241:28: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses]
  if (!g_isi_msg_error(msg) < 0)
                            ^
2015-07-07 11:35:54 +02:00
Marcel Holtmann c3af639874 isiusb: Fix compiler warning with logical expression
CC       plugins/isiusb.o
plugins/isiusb.c: In function ‘reachable_cb’:
plugins/isiusb.c:207:28: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses]
  if (!g_isi_msg_error(msg) < 0)
                            ^
2015-07-07 11:35:54 +02:00
Alex J Lennon f8d9485dc2 cinterion: Correct use of freed structure
On error struct cb_data *cbd was used after in cinterion_set_online
after already being freed.
2015-05-13 15:56:34 -05:00
Denis Kenzior 23c45abd57 ste: Fix out-of-order free
CALLBACK_WITH_FAILURE used data structure freed just beforehand
2015-05-13 15:55:00 -05:00
Alex J Lennon fc3f937a67 udev: Add support for ehs6 name
As with tc65, ehs6 makes use of cinterion plugin
2015-05-13 09:57:53 -05:00
Alex J Lennon 7d4a19b114 cinterion: Register as OFONO_VENDOR_CINTERION
This enables us to take advantage of vendor specific quirks
(e.g. signal strength handling specifics for tc65)
2015-05-13 09:57:53 -05:00
Alex J Lennon b31a3c2390 tc65: Replace tc65 plugin with cinterion plugin
On the basis that tc6x and other Cinterion devices will likely
have similar firmware requirements, provide a generic Cinterion
plugin which is functionally identical to the replaced tc65 plugin.

The udev implementation retains support for "tc65" name for
backwards compatibility, and adds support for the new "cinterion"
name.
2015-05-13 09:57:53 -05:00
Denis Kenzior 8d47f97106 hfp_hf_bluez5: Implement sco_connected_hint 2015-05-13 09:57:53 -05:00
Kuba Pawlak 8e6ebab83b hfp_ag_bluez5: use none prefix for AT+BCC.
iPhone 5s with iOS8.2 sometimes failes to acknowledge AT+BCC
with OK. This means +CIEV events get consumed by this command
and call ended notification is not parsed.

Nov 30 00:00:19 ofonod[938]: > AT+BCC\r
Nov 30 00:00:28 ofonod[938]: < \r\n+CIEV: 2,0\r\n
2015-03-24 09:12:58 -05:00
Cedric Jehasse 151b837428 sierra: add sim state polling after CFUN enable
When pin is queried shortly after a Siera dongle is plugged in,
"AT+CPIN?" responds with "CME ERROR 14: SIM".
Poll the sim, as already done by several other vendor plugins.
2015-01-31 10:20:18 -06:00
Denis Kenzior bb71141d79 phonesim: Instantiate radio-settings in post_sim 2014-12-10 11:03:17 -06:00
Denis Kenzior 4e466f6fec phonesim: Add minimal radio-settings functionality 2014-12-10 11:03:17 -06:00
Denis Kenzior a89f8cd56d phonesim: Add skeleton of radio settings driver 2014-12-10 11:03:16 -06:00
Kuba Pawlak 42ebb69384 he910: Update copyright 2014-10-22 21:23:25 -05:00
Kuba Pawlak 45478b17cf he910: enable location raporting atom 2014-10-22 21:22:33 -05:00
Kuba Pawlak 88f46a9b01 udev: add GPS port definition for HE910 2014-10-22 21:22:24 -05:00
Denis Kenzior 934ea9a9fe hfp_ag_bluez5: Bump HFP version to 1.7 2014-10-20 13:40:28 -05:00
Denis Kenzior cf90f1505d emulator_fuzz: Add test plugin
This plugin creates an org.ofono.test.EmulatorFuzz interface on path
/test.  Currently only one method is implemented, SetIndicatorActive.

SetIndicatorActive("DistractedDrivingReduction", True|False) allows to
activate / deactivate the HF indicator via +BIND unsolicited
notification.
2014-10-20 13:40:28 -05:00
Denis Kenzior 017c1161d4 hfp_hf_bluez5: Use latest HFP version 2014-10-20 13:40:28 -05:00
Denis Kenzior 361eed7b9a ublox: Minor style cleanup 2014-07-08 08:58:48 -05:00
Denis Kenzior 864efe1add ublox: Remove unneeded VENDOR flags
devinfo and netreg atoms don't use vendor specific behavior
2014-07-08 08:56:55 -05:00
Philip Paeps 0d8a06af30 plugins: new driver for u-blox SARA-U270 modems
This driver may also work (perhaps with more or less trivial changes)
with other u-blox modems (SARA, LISA, LEON) but this hasn't been tested.
2014-07-08 08:53:13 -05:00
Philip Paeps 7f29608feb udevng: add detection logic for u-blox modems 2014-07-08 08:50:20 -05:00
Denis Kenzior 1f3e30f1ba quectel: Minor style cleanup 2014-07-08 08:44:21 -05:00
Denis Kenzior 7ab4034bf4 quectel: Remove unneeded VENDOR flags
Only the sim atom has QUECTEL specific code
2014-07-08 08:43:01 -05:00
Philip Paeps bb1984cabb plugins: add a new driver for Quectel UC15 modems 2014-07-08 08:42:05 -05:00
Philip Paeps 5cffd8af95 udevng: add detection logic for Quectel modems 2014-06-30 13:26:51 -05:00
Philip Paeps 532e8020e5 mbpi: add support for provisioning the auth method
Use the authentication method from the mobile-broadband-provider-info
database if it is specified and supported (we support CHAP and PAP).
Default to CHAP if the database does not specify a method (i.e.: the
previous behaviour).
2014-06-24 12:46:18 -05:00
Denis Kenzior 35feae07e5 hfp: Use proper prefix
Otherwise the BCS command can consume unsolicited notifications.

ofonod[3270]: < \r\n+BCS: 2\r\n
ofonod[3270]: > AT+BCS=2\r
ofonod[3270]: < \r\n+CIEV: 1,1\r\n
ofonod[3270]: < \r\n+CIEV: 2,0\r\n
ofonod[3270]: < \r\nOK\r\n
2014-05-21 12:08:37 -05:00
Denis Kenzior 910ec60927 phonesim: Fixup whitespace 2014-03-27 09:51:49 -05:00
Jussi Pakkanen 5f76525961 phonesim: Add conf file override
OFONO_PHONESIM_CONFIG allows the configuration file location to be
overriden from the default $CONFIGDIR/phonesim.conf (typically /etc)
2014-03-27 09:51:49 -05:00
Denis Kenzior 4585969568 he910: Fix unused variable warning
plugins/he910.c: In function ‘qss_query_cb’:
plugins/he910.c:174:21: error: unused variable ‘data’
[-Werror=unused-variable]
2014-03-20 12:55:20 -05:00
Denis Kenzior f8819b588b he910: Switch to permissive parser
Seems the CCFC implementation on Telit firmware is not v.250 compliant:
ofonod[445]: Aux: > AT+CCFC=0,2\r
ofonod[445]: Aux: < \r\n\r\n+CCFC:0,7\r\n\r\nOK\r\n
2014-03-19 10:30:10 -05:00
Denis Kenzior c3f528908d he910: Fixup SIM detection
In certain cases the #QSS notification is never sent, or sent too early.
Make sure that we enable #QSS notification only after the modem has been
set as powered.  Also make sure that we explicitly query #QSS in case we
missed the earlier #QSS notification.
2014-03-19 10:30:05 -05:00
Denis Kenzior c54e4763f8 he910: Fix whitespace 2014-03-10 11:53:22 -05:00
Slava Monich 278dba2ec8 mbpi: Pop subparser stack after mmsc and mmsproxy 2014-02-07 08:56:44 -06:00
Denis Kenzior d6af339c99 git: Fixup messed up permissions 2013-12-21 13:39:54 -06:00
Krzysztof Wilk 9d847687eb phonesim: Enable Siri atom 2013-12-18 00:07:47 -06:00
Krzysztof Wilk c8a3172c00 hfp_hf_bluez5: Enable Siri atom 2013-12-18 00:07:47 -06:00
Krzysztof Wilk 1e14b217b0 hfp_hf_bluez4: Enable Siri atom 2013-12-18 00:07:47 -06:00
Denis Kenzior 7c7cdd8759 he910: tweak initialization logic 2013-11-26 16:25:48 -06:00
Slava Monich a7ba6d1e9e mbpi: Provision mmsc and message_proxy 2013-11-26 15:32:03 -06:00
Denis Kenzior 9b224fff79 hfp_ag_bluez5: Try to support non-phone hardware
For devices which are not 'real' phone modems, the voicecall
initialization can happen outside of the pre-sim state.  In this case
the voicecall atom detection logic fails.  Try to detect the voicecall
atom separately, and register the profile if the SIM atom is already
present and in state 'READY'.

For all other cases, the previous logic still applies.
2013-11-25 11:33:57 -06:00
Denis Kenzior 06598ef47c udevng: Add he910 detection logic 2013-11-25 10:55:59 -06:00
Denis Kenzior 6e52f03f64 plugins: Add initial Telit he910 driver 2013-11-25 10:55:59 -06:00
Denis Kenzior 0aeeaefdce mbm: Fix segfault with hot-plugged MD300 modem 2013-10-17 15:25:52 -05:00
Denis Kenzior 2158249069 hfp_hf_bluez5: Be more pedantic in get_version
If no 'Version' key is found we might be assigning an uninitialized
value.  Return an error in this case as the 'Version' key is required.
2013-10-01 11:35:27 -05:00
Denis Kenzior c49ed15a8f hfp_hf_bluez5: Add version debug info 2013-10-01 11:28:19 -05:00
Vinicius Costa Gomes ff16aed8bd handsfree-audio: Detect transparent SCO in kernel
Deferred SCO setup is not enough for HFP 1.6 wideband codec support.
Wideband speech also requires Transparent SCO to be enabled in the
kernel.
2013-09-12 13:17:40 -05:00
Denis Kenzior 62c2b81db7 hfp_hf_bluez5: Remove Cancel method 2013-09-12 13:17:40 -05:00
Denis Kenzior f2103a7ada hfp_hf_bluez5: Mark Release method as NOREPLY 2013-09-12 13:17:39 -05:00
Jesper Larsen dff2657093 sim900: Use SIM900 quirk for gprs context
Use the module specific quirk for gprs by using the vendor entry
OFONO_VENDOR_SIMCOM_SIM900
2013-07-19 09:01:09 -05:00
Jesper Larsen cf031b11f9 sim900: Fix order of dlc prefixes
The order of the defines for the dlc prefixes does not match
the order of the array containing the strings to print.
2013-07-17 10:28:24 -05:00
Jesper Larsen 33b4645f41 sim900: Enable serial receiver
The read option must be set to 'on' in order for two-way
communication with SIM900 module to work.
2013-07-17 10:19:11 -05:00
Frederic Danis d6a601f8d1 hfp_hf_bluez5: Fix SDP record with correct features 2013-06-26 10:39:11 -05:00
Vinicius Costa Gomes 856a884052 hfp_hf_bluez5: Enable WB only with defer_setup
When setting the SDP features, only enable wideband speech support if
the kernel has defer setup for SCO.

It is possible that even if defer setup is supported the kernel is
not able to use Transparent Mode for SCO.
2013-04-25 17:51:59 -05:00
Denis Kenzior ff27e74eee Revert "hfp_hf_bluez5: UUIDs can change after Pairing"
This reverts commit 456b8c9723.
2013-04-25 17:47:05 -05:00
Vinicius Costa Gomes e1de3c7f2e hfp_hf_bluez5: Register the SDP record with correct features 2013-04-25 03:40:19 -05:00
Vinicius Costa Gomes 48cb2e5249 bluez5: Unify bt_register_profile_* into a single function
It was a cause of confusion for little gain to have separate
functions for registering profiles with extra information, for
example "role" and "features". We remove those helper functions
in favor of a single one with more parameters, "role" and
"feature" when NULL, will be ignored.
2013-04-25 03:38:11 -05:00
Paulo Borges 7b56ca2730 hfp_ag_bluez5: Implement RequestDisconnection()
When a RequestDisconnect() is received, the socket must be closed.
This way, the related emulator will be freed.
2013-04-22 03:55:21 -05:00
Paulo Borges 9332299bb7 hfp_ag_bluez5: Add watch for G_IO_HUP when connect
A watch to G_IO_HUP is added to remove the file descriptor when the
emulator is automatically disconnected when its GAtServer closes.

We use a dupped file descriptor because the events aren't delivered to
the file descriptor who originated them.
2013-04-22 03:54:24 -05:00
Paulo Borges d062d485d6 hfp_ag_bluez5: Create a hash to store connections
We need to store active connections so we can disconnect them at
RequestDisconnect().

When we remove a connection from the hash, we also close it.
2013-04-22 03:53:42 -05:00
Paulo Borges fc7de0f6e1 hfp_ag_bluez5: Remove unused includes 2013-04-18 08:43:25 -05:00
Paulo Borges 4245df6200 hfp_ag_bluez5: Include hfp.h 2013-04-18 08:42:44 -05:00
Paulo Borges f1e29338ba phonesim: Include hfp.h 2013-04-18 08:42:28 -05:00
Vinicius Costa Gomes 456b8c9723 hfp_hf_bluez5: UUIDs can change after Pairing
For example, in the case of a remote-initiated pairing, the device may
be created and Paired first, then the UUID array is emitted later.
2013-04-18 08:37:17 -05:00
Vinicius Costa Gomes 4e7f0690e9 hfp_hf_bluez5: Watch for changes in the selected codec
This patch adds a function to monitor when the AG sends a new codec
before establishing the SCO connection.
2013-04-15 07:00:39 -05:00
Denis Kenzior 4610d3dad2 hfp_hf_bluez5: Include hfp.h 2013-04-09 14:33:41 -05:00
Denis Kenzior 3715103654 hfp_hf_bluez5: Remove redundant parentheses 2013-04-09 14:33:41 -05:00
Vinicius Costa Gomes 3697794f9e hfp_hf_bluez5: Add audio card .connect() for HFP 1.6 2013-04-09 14:33:41 -05:00
Vinicius Costa Gomes a36ffa872a hfp_hf_bluez5: Use 1.6 card driver 2013-04-05 12:25:10 -05:00
Claudio Takahasi dd24a39d2f hfp_hf_bluez5: Add extracting version
This patch parses and reads the profile "Version" that comes in the fd
dictionary of the NewConnection method. "Version" is input for Audio Card
registration.
2013-04-05 12:14:00 -05:00
Forest Bond 692e59f108 huawei: Use AlwaysOnline for CDMA modems 2013-04-01 21:42:44 -05:00
Denis Kenzior 2f50d25ab5 hfp_hf_bluez5: Make sure to call the callback 2013-03-28 09:30:45 -05:00
Vinicius Costa Gomes 759cf25614 hfp_hf_bluez5: Add a card driver for HFP 1.6
This is just the skeleton of a Handsfree Audio Card for the HF side of
HFP 1.6.
2013-03-28 09:29:50 -05:00
Denis Kenzior 93ac1669a0 sim900: Fix disable cleanup procedure 2013-03-26 10:53:41 -05:00
Denis Kenzior 32cece7b09 sim900: Fix compile error
make --no-print-directory all-am
  CC     plugins/sim900.o
  cc1: warnings being treated as errors
  plugins/sim900.c: In function ‘shutdown_device’:
  plugins/sim900.c:180:9: error: unused variable ‘fd’
  make[1]: *** [plugins/sim900.o] Error 1
  make: *** [all] Error 2
2013-03-26 10:36:25 -05:00
Denis Kenzior 548611e939 sim900: Remove unneeded goto / label 2013-03-26 10:35:59 -05:00
Denis Kenzior b4518caa50 sim900: Properly clean up device IOChannel on error 2013-03-26 10:34:09 -05:00
Renat Zaripov 2d09257855 sim900: Add multiplexer support
Also add gprs and call-volume support.
2013-03-26 10:29:08 -05:00
Denis Kenzior d8a9bf776b sim900: Fix leak of options hash table 2013-03-26 10:21:14 -05:00
Denis Kenzior 2864624c56 hfp_ag_bluez5: Fix sanity check
We should be checking that modems != NULL, not modems->data.  This is
because the list can be empty and we would crash.
2013-03-21 10:19:00 -05:00
Denis Kenzior 823215ff66 dun_gw_bluez5: Fix sanity check
We should be checking that modems != NULL, not modems->data.  This is
because the list can be empty and we would crash.
2013-03-21 10:18:11 -05:00
Denis Kenzior 439712a937 dun_gw_bluez5: Fix copy-paste error 2013-03-21 10:15:16 -05:00
Frédéric Danis 770cb38352 dun_gw: Add BlueZ 5 version
This patch adds initial implementation of the D-Bus Profile1
interface and methods responsible for handling Bluetooth connections.

The DUN GW profile interface is registered as soon as a GPRS capable
modem is registered in oFono.
2013-03-21 10:12:42 -05:00
Frédéric Danis 8a1bd0d657 bluetooth: Rename DUN GW plugin
As BlueZ 5 introduced backwards incompatible API changes, and we want to
keep support for BlueZ 4 based DUN GW plugin for some time, we need to
separate DUN GW plugin which is based on BlueZ 4 from the one based on
BlueZ 5.

The dun_gw.c plugin is renamed to dun_gw_bluez4. This will make it easy
to add a DUN GW plugin for BlueZ 5.
2013-03-21 10:08:41 -05:00
Denis Kenzior afb4470558 hfp_hf_bluez5: Set remote and local information 2013-03-18 13:57:30 -05:00
Denis Kenzior 0f973d7150 hfp_hf_bluez5: Update to the new API 2013-03-18 13:42:46 -05:00
Claudio Takahasi b64357f690 hfp_hf_bluez5: Remove duplicated include 2013-03-12 13:03:42 -05:00
Claudio Takahasi e51f734881 hfp_hf_bluez5: Remove SCO handling
This patch moves the SCO socket handling from hfp_hf_bluez5 plugin.  It
will be instead handled by the handsfree-audio functionality. This is
the initial step to be able to support sending the file descriptor
through the Agent NewConnection method.
2013-03-04 16:16:24 -06:00
Claudio Takahasi 3b8d84d19d hfp_hf_bluez5: Use new bluetooth.h header 2013-03-04 16:13:31 -06:00
Claudio Takahasi 3373fae662 bluez5: Remove Bluetooth related utilities 2013-03-04 16:13:18 -06:00
Paulo Borges 08eea76ea8 bluez5: Add bt_register_profile_with_role
This function allows to specify which role is registering when the
profile does not have specific UUIDs for each role.
2013-03-04 12:04:54 -06:00
Paulo Borges 80212a3db2 bluez5: Move ref / unref handsfree audio
This commit moves the ref / unref to hfp_hf_bluez5 to make
bluez5 more generic and reusable.
2013-03-01 13:22:35 -06:00
Claudio Takahasi cf6137c187 hfp_hf_bluez5: Remove Card on RequestDisconnection
For local initiated disconnection the GAtChat disconnect callback is not
called. For this case, Audio Card remove function needs to be called.
2013-02-28 10:11:05 -06:00
Claudio Takahasi bff9432007 hfp_hf_bluez5: Remove Card when modem is disabled 2013-02-28 10:10:54 -06:00
Claudio Takahasi 134b237344 hfp_hf_bluez5: Remove Card if SLC is disconnected
This patch removes previous registered Audio Card when the remote
Bluetooth device triggers the service level disconnection.
2013-02-28 10:10:41 -06:00
Claudio Takahasi 1ee6c6ea09 hfp_hf_bluez5: Remove Card when SLC fails
This patch removes the previously created Audio Card if the service
level negotiation fails.
2013-02-28 10:10:30 -06:00
Claudio Takahasi fb9b54bc2c hfp_hf_bluez5: Add local address to Audio Card 2013-02-28 10:10:13 -06:00
Claudio Takahasi 4ef4d620e4 hfp_hf_bluez5: Add registering Audio Card
This patch registers the Handsfree Audio Card when the service level
connection is established.
2013-02-28 10:09:33 -06:00
Patrik Flykt 71551c98a9 bluez4: Increase Bluez 4 D-Bus timeouts to 60 seconds
RequestAuthorization method call may trigger pairing and/or pop up a
dialog in the remote device to which the user needs to react. Thus
increase D-Bus timeouts to 60 seconds for the Bluez 4 plugin.
2013-02-26 14:15:44 -06:00
Denis Kenzior 2f8b9ab50c bluez5: ref / unref handsfree audio 2013-02-21 08:30:03 -06:00
Claudio Takahasi 28603a98ce hfp_ag_bluez5: Send HFP version when registering 2013-02-20 21:39:06 -06:00
Claudio Takahasi f765427b22 hfp_hf_bluez5: Send HFP version when registering 2013-02-20 21:36:49 -06:00
Claudio Takahasi 6672f41fd6 bluez5: Add profile version argument
This patch adds sending of the Version argument to RegisterProfile
method.  The version is required to create the service record
containing the correct profile version.
2013-02-20 21:35:44 -06:00
Claudio Takahasi 8a1cd911d8 hfp_hf_bluez5: Add local HFP version tracking
Fallback to HFP 1.5 if defer setup is not supported since it is not
possible to proceed with codec negotiation.
2013-02-20 21:31:04 -06:00
Denis Kenzior 7ba9521f10 hfp_hf_bluez5: Ensure active SLC for SCO links
Whenever a SCO connection is attempted, ensure that the SLC link is
already active between us and the same remote peer.
2013-02-14 08:47:10 -06:00
Denis Kenzior 83b43c8abd hfp_hf_bluez5: Remove use of hash table
The number of paired devices is quite small, so the use of the hash
table for lookup seems unnecessary.  The typical user will have no more
than 1-2 devices paired, maybe half a dozen in a less common case.
2013-02-14 08:47:10 -06:00
Denis Kenzior 825feb8cd5 hfp_hf_bluez5: Use faster method of disable() 2013-02-14 08:47:10 -06:00
Claudio Takahasi 39f1480155 hfp_hf_bluez5: Remove unneeded modem hash lookup
Modem object is created when the Device Proxy is added, and it is
paired. Another path is when the Device "Paired" property changes
to True.
2013-02-14 08:47:10 -06:00
Denis Kenzior 4394a362eb hfp_hf_bluez5: Use some tricks to optimize code 2013-02-14 08:47:10 -06:00
Vinicius Costa Gomes 233b1ecca4 hfp_hf_bluez5: Add support for Enabling/Disabling the modem
Now that we have the support for sending the correct messages
to BlueZ, we are able to dynamically power up/down the HFP modem.

We add another property to the modem to be able to get the D-Bus
object path that represents the remote device.
2013-02-14 08:47:10 -06:00
Claudio Takahasi a2b698dc40 hfp_hf_bluez5: Add Profile RequestDisconnection
This patch implements RequestDisconnection method of the Profile1
interface. This method gets called when the profile gets disconnected.
The profile implementation needs to cleanup the resources related to
the informed device.
2013-02-14 08:47:10 -06:00
Vinicius Costa Gomes 22f05f7832 bluez5: Add support for Connecting/Disconnecting per UUID
This adds supports for sending the ConnectProfile() and
DisconnectProfile() messages for the org.bluez.Device1 interface.
2013-02-14 08:47:10 -06:00
Claudio Takahasi 86224f5724 bluez5: Rename BlueZ Profile registration functions
This patch renames external profile registration functions replacing the
prefix from 'bluetooth_' to 'bt_' in order to follow the name convention
adopted for bluez5 functions.
2013-02-14 08:47:10 -06:00
Frédéric Danis e59fed9c96 hfp_ag: Add BlueZ 5 version
This patch adds initial implementation of the D-Bus Profile1
interface and methods responsible for handling Bluetooth connections.

The HFP AG profile interface is registered as soon as a voice capable
modem is registered in oFono.
2013-01-31 16:15:03 -06:00
Claudio Takahasi 39e72e0178 hfp_hf_bluez5: Remove BlueZ devices proxies hash
The hash table to track the devices is not necessary anymore since
dynamic modem registration on NewConnection was removed.
2013-01-31 16:03:48 -06:00
Claudio Takahasi f044c6c1fa hfp_hf_bluez5: Fix registering modem on NewConnection
HFP modem will be registered when Proxy Added callback gets called
or when Pair is True. This patch removes the support for dynamic modem
registration when a new connection is notified and there isn't a modem
associated with the Bluetooth remote device.

BlueZ behaviour has been changed and a NewConnection is not notified
before the service discovery finishes.
2013-01-31 16:01:04 -06:00
Vinicius Costa Gomes 852ea612c8 hfp_hf_bluez5: Remove unneeded error handling
Apart from g_io_channel_unix_new() not setting errno, it never
returns an NULL pointer on error, because in practice it only
calls g_new().
2013-01-31 15:57:55 -06:00
Frédéric Danis 3e9a836afd bluetooth: Rename HFP AG plugin
As BlueZ 5 introduced backwards incompatible API changes, and we want to
keep support for BlueZ 4 based HFP AG plugin for some time, we need to
separate HFP AG plugin which is based on BlueZ 4 from the one based on
BlueZ 5.

The hfp_ag.c plugin is renamed to hfp_ag_bluez4. This will make it easy
to add an HFP AG plugin for BlueZ 5.
2013-01-30 22:09:52 -06:00
Vinicius Costa Gomes 5b56668f1e hfp_hf_bluez5: Only register modems for Paired devices
When there are many devices around that support the HFP AG profile,
we may have a lot of modems that the user will never use.
2013-01-30 21:36:49 -06:00
Claudio Takahasi 5185980fb0 hfp_hf_bluez5: Improve Proxy property changed handling
This patch removes unnecessary GDBusProxy object access when property
changed is triggered. The property name and the argument iterator is
informed in the function callback.
2013-01-30 21:32:47 -06:00
Claudio Takahasi 9496fe8e70 hfp_hf_bluez5: Fix missing fd close
This patch fix an unusual scenario, service_level_connection() fails if
GIOChannel or GAtChat memory allocation fails.
2013-01-29 15:58:39 -06:00
Vinicius Costa Gomes b6f92d3074 hfp_hf_bluez5: Rename 'Address' to 'Remote'
Rename this property to better indicate that it is the remote Address
being referred to.
2013-01-29 15:57:48 -06:00
Claudio Takahasi 368b8816ee bluez5: Add RFCOMM socket address declaration
This patch adds a copy of Bluetooth RFCOMM socket declaration.
2013-01-29 09:03:55 -06:00
Claudio Takahasi 6985c798b2 bluez5: Add bt_bacmp()
Adds a copy of BlueZ bacmp() function.
2013-01-29 09:03:04 -06:00
Claudio Takahasi e8621fe8c2 bluez5: Add bt_ba2str()
Adds a copy of BlueZ ba2str() function.
2013-01-29 09:02:45 -06:00
Claudio Takahasi e05b3dfb4d hfp_hf_bluez5: Add SCO listen socket
This patch adds the initial SCO server socket handling. BtIO and BlueZ
functions should not be used, with the new Profile API the objetive is
to get rid of these dependencies.
2013-01-29 09:01:26 -06:00
Claudio Takahasi 5e84f78869 bluez5: Add bt_bacpy()
Adds a copy of BlueZ bacpy() function.
2013-01-29 08:40:33 -06:00
Claudio Takahasi a2376f6c77 bluez5: Add SCO socket declarations
Adds local copy of SCO Bluetooth sockets declarations, since the
objective to avoid including BlueZ library headers.
2013-01-29 08:39:31 -06:00
Vinicius Costa Gomes 3a3e31eef2 hfp_hf_bluez5: Add SLC establishment procedure
When receiving a NewConnection call from BlueZ, initiates the Service
Level Connection using the received file descriptor. The HFP modem
sub-components (devinfo, voicecall, netreg, handsfree and callvolume)
are created at this point.
2013-01-23 17:28:16 -06:00
Vinicius Costa Gomes a90f0441d6 hfp_hf_bluez5: Handle NewConnection from BlueZ
Parse the essential arguments in the message, in this case only the
file descriptor, and register the modem if it is not already
registered. This is necessary because in some cases, we may receive a
NewConnection call, and the SDP process is still taking place.
2013-01-23 14:19:53 -06:00
Vinicius Costa Gomes 71986b67a3 hfp_hf_bluez5: Follow HFP AG device Alias property
If the device Alias property changes we should also change the name of
the modem.
2013-01-23 14:18:18 -06:00
Vinicius Costa Gomes 67cdf33fe8 hfp_hf_bluez5: Register modem for HFP AG devices
Now that we are able to keep track of devices appearing and
disappearing from BlueZ, we are able to register the modem when a
device that supports the HFP AG UUID appears.
2013-01-23 14:16:54 -06:00
Vinicius Costa Gomes 609f194309 bluez5: Add HFP_AG_UUID 2013-01-23 14:16:38 -06:00
Vinicius Costa Gomes 0de672ca78 hfp_hf_bluez5: Add tracking of bluetooth devices
This patch tracks the GDBusProxy for Bluetooth devices in order to be
able to get their properties.
2013-01-23 14:13:37 -06:00