Blame view

Documentation/isdn/README.diversion 6.08 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
  The isdn diversion services are a supporting module working together with
  the isdn4linux and the HiSax module for passive cards. 
  Active cards, TAs and cards using a own or other driver than the HiSax 
  module need to be adapted to the HL<->LL interface described in a separate 
  document. The diversion services may be used with all cards supported by 
  the HiSax driver.
  The diversion kernel interface and controlling tool divertctrl were written
  by Werner Cornelius (werner@isdn4linux.de or werner@titro.de) under the
  GNU General Public License.
  
      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
      (at your option) any later version.
  
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.
  
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  
  Table of contents
  =================
  
  1. Features of the i4l diversion services 
     (Or what can the i4l diversion services do for me)
  
  2. Required hard- and software
  
  3. Compiling, installing and loading/unloading the module  
     Tracing calling and diversion information 
  
  4. Tracing calling and diversion information
   
  5. Format of the divert device ASCII output
   
  
  1. Features of the i4l diversion services 
     (Or what can the i4l diversion services do for me)
  
     The i4l diversion services offers call forwarding and logging normally 
     only supported by isdn phones. Incoming calls may be diverted 
     unconditionally (CFU), when not reachable (CFNR) or on busy condition 
     (CFB). 
     The diversions may be invoked statically in the providers exchange
     as normally done by isdn phones. In this case all incoming calls
     with a special (or all) service identifiers are forwarded if the 
     forwarding reason is met. Activated static services may also be 
     interrogated (queried).
     The i4l diversion services additionally offers a dynamic version of
     call forwarding which is not preprogrammed inside the providers exchange
     but dynamically activated by i4l.
     In this case all incoming calls are checked by rules that may be
     compared to the mechanism of ipfwadm or ipchains. If a given rule matches
     the checking process is finished and the rule matching will be applied
     to the call.
     The rules include primary and secondary service identifiers, called 
     number and subaddress, callers number and subaddress and whether the rule
     matches to all filtered calls or only those when all B-channel resources
     are exhausted.
     Actions that may be invoked by a rule are ignore, proceed, reject, 
     direct divert or delayed divert of a call.
     All incoming calls matching a rule except the ignore rule a reported and
     logged as ASCII via the proc filesystem (/proc/net/isdn/divert). If proceed
     is selected the call will be held in a proceeding state (without ringing)
     for a certain amount of time to let an external program or client decide
     how to handle the call. 
              
  
  2. Required hard- and software
     
     For using the i4l diversion services the isdn line must be of a EURO/DSS1
     type. Additionally the i4l services only work together with the HiSax 
     driver for passive isdn cards. All HiSax supported cards may be used for
     the diversion purposes.
     The static diversion services require the provider having static services
     CFU, CFNR, CFB activated on an MSN-line. The static services may not be 
     used on a point-to-point connection. Further the static services are only
     available in some countries (for example germany). Countries requiring the 
     keypad protocol for activating static diversions (like the netherlands) are
     not supported but may use the tty devices for this purpose.
     The dynamic diversion services may be used in all countries if the provider
     enables the feature CF (call forwarding). This should work on both MSN- and
     point-to-point lines.
     To add and delete rules the additional divertctrl program is needed. This
     program is part of the isdn4kutils package.   
  
  3. Compiling, installing and loading/unloading the module  
     Tracing calling and diversion information 
  
  
     To compile the i4l code with diversion support you need to say yes to the 
     DSS1 diversion services when selecting the i4l options in the kernel 
     config (menuconfig or config).
     After having properly activated a make modules and make modules_install all
     required modules will be correctly installed in the needed modules dirs.
     As the diversion services are currently not included in the scripts of most
     standard distributions you will have to add a "insmod dss1_divert" after
     having loaded the global isdn module.
     The module can be loaded without any command line parameters.
     If the module is actually loaded and active may be checked with a 
     "cat /proc/modules" or "ls /proc/net/isdn/divert". The divert file is 
     dynamically created by the diversion module and removed when the module is
     unloaded.
  
  
  4. Tracing calling and diversion information
   
     You also may put a "cat /proc/net/isdn/divert" in the background with the
     output redirected to a file. Then all actions of the module are logged.
     The divert file in the proc system may be opened more than once, so in 
     conjunction with inetd and a small remote client on other machines inside
     your network incoming calls and reactions by the module may be shown on 
     every listening machine. 
     If a call is reported as proceeding an external program or client may 
     specify during a certain amount of time (normally 4 to 10 seconds) what
     to do with that call.      
     To unload the module all open files to the device in the proc system must
     be closed. Otherwise the module (and isdn.o) may not be unloaded. 
  
  5. Format of the divert device ASCII output
   
     To be done later