Linux Grand Unified ISDN Theory » History » Version 1
laforge, 09/18/2022 03:49 PM
1 | 1 | laforge | h1. Linux Grand Unified ISDN Theory |
---|---|---|---|
2 | |||
3 | This is some random ideas about how to achieve some kind of _grand unified_ scheme of ISDN drivers on Linux, where one can write an application that works wity virtually all available ISDN adapters out there |
||
4 | |||
5 | h2. existing method of using CAPI application against mISDN supported hardware |
||
6 | |||
7 | {{graphviz_link() |
||
8 | digraph G { |
||
9 | application [label="application linked\nagainst libcapi20"]; |
||
10 | capid [label="capid using mISDN plugin"]; |
||
11 | mISDNuser [label="mISDNuser\nCAPI intf + Q.931"]; |
||
12 | mISDN [label="mISDN in kernel\nQ.921 + drivers"]; |
||
13 | |||
14 | subgraph cluster_hw { |
||
15 | label = "Kernel"; |
||
16 | hfcs [label="HFC-S (PCI)"]; |
||
17 | hfce1 [label="HFC-E1 (PCI)"]; |
||
18 | hfcusb [label="HFC-S (USB)"]; |
||
19 | |||
20 | mISDN -> hfcs; |
||
21 | mISDN -> hfce1; |
||
22 | mISDN -> hfcusb; |
||
23 | } |
||
24 | |||
25 | application -> capid; |
||
26 | capid -> mISDNuser; |
||
27 | mISDNuser -> mISDN [label="PF_ISDN socket"] |
||
28 | |||
29 | } |
||
30 | }} |
||
31 | |||
32 | h2. proposed method of using CAPI application against hardware with DAHDI drivers |
||
33 | |||
34 | {{graphviz_link() |
||
35 | digraph G { |
||
36 | application [label="application linked\nagainst libcapi20"]; |
||
37 | capid [label="capid using mISDN plugin"]; |
||
38 | mISDNuser [label="mISDNuser\nCAPI intf + Q.931"]; |
||
39 | mISDNdahdi [label="mISDNdahdi\nQ.921 + DAHDI interface",color=red,style=dashed]; |
||
40 | dahdi [label="DAHDI in kernel"]; |
||
41 | |||
42 | subgraph cluster_hw { |
||
43 | label = "Kernel"; |
||
44 | digium [label="Digium 1/2/4/8port E1/T1 (PCI or PCIe)"]; |
||
45 | icE1usb [label="icE1usb (USB)"]; |
||
46 | trunkdev [label="trunkdev (TDMoIP)"]; |
||
47 | |||
48 | dahdi -> digium; |
||
49 | dahdi -> icE1usb; |
||
50 | dahdi -> trunkdev; |
||
51 | } |
||
52 | |||
53 | application -> capid; |
||
54 | capid -> mISDNuser; |
||
55 | mISDNuser -> mISDNdahdi; |
||
56 | mISDNdahdi -> dahdi [label="/dev/dahdi/..."]; |
||
57 | |||
58 | } |
||
59 | }} |