From: Daniel Wagner <[email protected]>
Hi,
This is the 3rd attempt to get DUN done (pun!). The first and second
attempt was to expose DUN devices through the oFono API. While this
sounds like a reasonable way to go it has some - let's put it
this way - ugliness involved.
- No SIM interface: This is not so bad but still we have to hack around
this problem. Since we need some uniqueness to distinguish between
services, the Serial property of the Modem interface has to be
abused for this.
- No NetworkRegistration interface: DUN only specifies ATD*99# AT command.
All other AT commands might be supported (such as AT+COPS=?) but are not
necessarily there. That means we might not get a name for a network. Whereas
you can rely to get this name for a regular modem you can't on DUN ones.
And guess what you cannot distinguish between real hardware modems and
virtual ones unless...
- Abuse Modem.Type: ... add 'dun' type and adapt the oFono plugin. That
_is_ though a very bad idea. We just introduce a mighty switch for
different oFono API behavior. Denis used strong words against this
approach.
- oFono internal design: oFono is not designed to handle this kind
of modems. The dunmodem implementation is rather obscure. The result
of this is that, as soon as a DUN device pops up, an Serial channel is
opened (rfcomm) and kept alive. Unfortunately, there are phones outside
in the wild which like to close the serial link after PPP stops.
With oFono's separation of concerns this is not easy to get working.
- Technology mess: In order to get DUN modems working you have to enable
Cellular
and Bluetooth technology. This is really really bad because we expose
the implementation details to the user. Sure, DUN is kind of dying etc.
but then, I don't think our standards are so low.
cheers,
daniel
v2: - Project was renamed to Dundee.
v1: - Elect API change: Connect()/Disconect() dropped, instead
SetProperty("Active", TRUE/FALSE)
v0: - initial version
Daniel Wagner (12):
dundee: Add emply plugin
dundee: Watch service on D-Bus
dundee: Monitor DeviceAdded/DeviceRemoved signal
dundee: Get modems when starting
dundee: Parse device properties in add_device
dundee: Create connman device
dundee: Monitor Device.PropertyChanged signal
dundee: Register connman_network at core
dundee: Update network connected status
dundee: Set device active/inactive
dundee: Check ownership of device
bluetooth: Check ownership of device
Makefile.am | 1 +
Makefile.plugins | 13 +
bootstrap-configure | 1 +
configure.ac | 6 +
plugins/bluetooth.c | 17 +-
plugins/dundee.c | 811 +++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 848 insertions(+), 1 deletions(-)
create mode 100644 plugins/dundee.c
--
1.7.8.110.g4cb5d1
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman