AVM BlueFRITZ! » History » Revision 2
Revision 1 (roox, 03/15/2022 10:14 PM) → Revision 2/5 (laforge, 03/16/2022 01:49 PM)
h1. AVM BlueFRITZ!
{{toc}}
In the early 2000s (before WIFI was ubiquitous) "AVM":https://avm.de had a product line called BlueFRITZ!
Via Bluetooth one could access their supported ISDN- and DSL-routers without any cabling.
h2. Supported hardware
|_.Product|_.Description|_.Misc|
|_*USB Adapter*_||
|BlueFRITZ! USB | USB Bluetooth Adapter | VID/PID 057c:2200 |
|BlueFRITZ! USB 2.0 | USB Bluetooth Adapter | VID/PID 057c:3800 |
|_*ISDN Product*_||
|BlueFRITZ! AP-X|Bluetooth enabled ISDN router||
|BlueFRITZ! AP-ISDN|ISDN-"Access Point" - small and powered via the ISDN bus||
|BlueFRITZ! AP-DSL|DSL-/ISDN-router with Bluetooth||
|_*OEM variants*_||
|T-Com Eumex C 200|ariant of the BlueFRITZ! AP-X for the german Telekom||
|Teledat C 120X|Another variant of the BlueFRITZ! AP-X for the german Telekom||
|Teledat C 120data|USB Bluetooth adapter sold for the Teledat C 120X||
|_*Product bundles*_||
|BlueFRITZ! Startpaket v2.0|BlueFRITZ! USB v2.0 + BlueFRITZ! AP-X||
|BlueFRITZ! ISDN Set v2.0|BlueFRITZ! USB v2.0 + BlueFRITZ! AP-ISDN||
|BlueFRITZ! DSL Set v2.0|BlueFRITZ! USB v2.0 + BlueFRITZ! AP-DSL||
These devices expose a CAPI 2.0 interface that can be used on Windows and Linux.
The _Common ISDN Bluetooth Access Profile_ (CIP) offers a uniform way to access the ISDN services of other devices via Bluetooth. This means that all features are made available in the B and D channels. CIP does not define a new ISDN interface, but uses the established Common ISDN API (CAPI 2.0). The CAPI Message Transport Protocol (CMTP) is used to enable CAPI Bluetooth. This protocol defines the uniform transport of CAPI messages over a Bluetooth L2CAP channel.
h2. Linux Support
Linux mainline support (CMTP/Kernel CAPI) and proper tooling for Bluez exists since 2003.
https://ftp.avm.de/archive/cardware/bluefritz.usb/linux/info.txt
https://web.archive.org/web/20080208063930/http://www.holtmann.org/linux/bluetooth/isdn.html (german only)
CMTP (CAPI Message Transport Protocol) is a transport layer for CAPI messages.
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools/parser/cmtp.c
ciptool (used to set up, maintain, and inspect the CIP configuration)
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools/ciptool.c
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools/ciptool.rst
h2. BlueFRITZ! AP-ISDN
Small and lightweight (35g) ISDN Access Point.
16-digit hardcoded Bluetooth PIN is printed on the back of the case.
h3. Hardware
The hardware is built around the folloowing major functional blocks:
|_.Chip|_.Function (expected)|
|AVM ARM VP22437-ZYA0YKN.Z1 03 tS0445 - AVM-UBIK 1.0|ARM based SoC|
|Infineon PSB3186F V1.1 0446|ISDN S/T Interface|
|AVM BLUEJOB.PV18 H2465-018 2CEA18146.1 0446 AA TWN|Bluetooth Interface|
|MX E044211 29LV800BTXBC-70 2K474300 TAIWAN|Flash Memory|
|Samsung K4S641632H-TC75|SDRAM Memory|
|III S1W|RF LNA/PA?|
h3. Configuration example
* Kernel 4.12.14
* BlueFRITZ! AP-ISDN (PIN: 1500750033515501)
* BlueFRITZ! USB 2.0
lsusb
<pre>
Bus 001 Device 002: ID 057c:3800 AVM GmbH BlueFRITZ! Bluetooth Stick
</pre>
hciconfig/hcitool
<pre>
# hciconfig -a
hci0: Type: Primary Bus: USB
BD Address: 00:04:0E:8B:7A:95 ACL MTU: 120:20 SCO MTU: 24:5
DOWN·
RX bytes:5101 acl:32 sco:0 events:172 errors:0
TX bytes:1602 acl:32 sco:0 commands:90 errors:0
Features: 0xff 0xff 0x05 0x00 0x00 0x00 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3·
Link policy:·
Link mode: SLAVE ACCEPT
# hcitool dev
Devices:
hci0 00:04:0E:8B:7A:95
# hcitool -i hci0 scan
Scanning ...
00:04:0E:8B:7E:8D Bluetooth ISDN Access Point
</pre>
bluetoothctl (pairing)
<pre>
[NEW] Controller 00:04:0E:8B:7A:95 leap151 [default]
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:04:0E:8B:7A:95 Discovering: yes
[NEW] Device 00:04:0E:8B:7E:8D 00-04-0E-8B-7E-8D
[CHG] Device 00:04:0E:8B:7E:8D LegacyPairing: no
[CHG] Device 00:04:0E:8B:7E:8D Name: Bluetooth ISDN Access Point
[CHG] Device 00:04:0E:8B:7E:8D Alias: Bluetooth ISDN Access Point
[CHG] Device 00:04:0E:8B:7E:8D LegacyPairing: yes
...
[bluetooth]# trust 00:04:0E:8B:7E:8D
[CHG] Device 00:04:0E:8B:7E:8D Trusted: yes
Changing 00:04:0E:8B:7E:8D trust succeeded
...
[bluetooth]# pair 00:04:0E:8B:7E:8D
Attempting to pair with 00:04:0E:8B:7E:8D
[CHG] Device 00:04:0E:8B:7E:8D Connected: yes
Request PIN code
[Blue1m[agent] Enter PIN code: 1500750033515501
[CHG] Device 00:04:0E:8B:7E:8D UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 00:04:0E:8B:7E:8D UUIDs: 00001103-0000-1000-8000-00805f9b34fb
[CHG] Device 00:04:0E:8B:7E:8D UUIDs: 00001109-0000-1000-8000-00805f9b34fb
[CHG] Device 00:04:0E:8B:7E:8D UUIDs: 00001116-0000-1000-8000-00805f9b34fb
[CHG] Device 00:04:0E:8B:7E:8D UUIDs: 00001128-0000-1000-8000-00805f9b34fb
[CHG] Device 00:04:0E:8B:7E:8D ServicesResolved: yes
[CHG] Device 00:04:0E:8B:7E:8D Paired: yes
Pairing successful
[CHG] Device 00:04:0E:8B:7E:8D ServicesResolved: no
[CHG] Device 00:04:0E:8B:7E:8D Connected: no
...
[bluetooth]# connect 00:04:0E:8B:7E:8D
Attempting to connect to 00:04:0E:8B:7E:8D
[CHG] Device 00:04:0E:8B:7E:8D Connected: yes
[CHG] Device 00:04:0E:8B:7E:8D ServicesResolved: yes
[Bluetooth ISDN Access Point]#
...
[Bluetooth ISDN Access Point]# info 00:04:0E:8B:7E:8D
Device 00:04:0E:8B:7E:8D (public)
Name: Bluetooth ISDN Access Point
Alias: Bluetooth ISDN Access Point
Class: 0x00420214
Icon: phone
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: yes
UUID: Serial Port (00001101-0000-1000-8000-00805f9b34fb)
UUID: Dialup Networking (00001103-0000-1000-8000-00805f9b34fb)
UUID: Cordless Telephony (00001109-0000-1000-8000-00805f9b34fb)
UUID: NAP (00001116-0000-1000-8000-00805f9b34fb)
UUID: Common ISDN Access (00001128-0000-1000-8000-00805f9b34fb)
RSSI: -20
</pre>
ciptool
<pre>
# ciptool search
Searching ...
Checking service for 00:04:0E:8B:7E:8D
Connecting to device 00:04:0E:8B:7E:8D
Local device is not accepting role switch
# ciptool connect
# ciptool show
1 00:04:0E:8B:7E:8D connected
</pre>
capiinfo
<pre>
# capiinfo
capi20.c: 164 CapiDebug():[capi20_isinstalled]: standard loop - module: standard
capi20.c: 164 CapiDebug():[capi20_isinstalled]: capi_fd: 4
Number of Controllers : 1
Controller 1:
Manufacturer: AVM Berlin
CAPI Version: 2.0
Manufacturer Version: 3.11-04 (49.20)
Serial Number: 0753293
BChannels: 2
Global Options: 0x00000031
internal controller supported
Supplementary Services supported
channel allocation supported (leased lines)
B1 protocols support: 0xc000000f
64 kbit/s with HDLC framing
64 kbit/s bit-transparent operation
V.110 asynconous operation with start/stop byte framing
V.110 synconous operation with HDLC framing
B2 protocols support: 0x00000b0b
ISO 7776 (X.75 SLP)
Transparent
LAPD with Q.921 for D channel X.25 (SAPI 16)
ISO 7776 (X.75 SLP) with V.42bis compression
V.120 asyncronous mode
V.120 bit-transparent mode
B3 protocols support: 0x8000000f
Transparent
T.90NL, T.70NL, T.90
ISO 8208 (X.25 DTE-DTE)
X.25 DCE
0100
0200
31000000
0f0000c0
0b0b0000
0f000080
00000000 00000000 00000000 00000000 00000000 00000000
01000001 00020000 00000000 00000000 00000000
Supplementary services support: 0x000003ff
Hold / Retrieve
Terminal Portability
ECT
3PTY
Call Forwarding
Call Deflection
MCID
CCBS
</pre>
dmesg
<pre>
usb 1-1: New USB device found, idVendor=057c, idProduct=3800
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: Bluetooth Device
usb 1-1: Manufacturer: Bluetooth Device
usb 1-1: SerialNumber: 957A8B0E0400
...
Bluetooth: Core ver 2.22
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
usbcore: registered new interface driver btusb
...
... // paired bluetooth
...
Bluetooth: CMTP (CAPI Emulation) ver 1.0
Bluetooth: CMTP socket layer initialized
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: BNEP socket layer initialized
...
... // ciptool connect
...
Bluetooth: Found 1 CAPI controller(s) on device 00:04:0e:8b:7e:8d
kcapi: controller [001]: 00:04:0e:8b:7e:8d attached
kcapi: controller [001] "00:04:0e:8b:7e:8d" ready.
...
... // CAPI initialized (capiinit)
...
CAPI 2.0 started up with major 68 (middleware)
...
... // ciptool release
...
kcapi: controller [001]: 00:04:0e:8b:7e:8d unregistered
</pre>