Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| voip:asterisk18:isdn [04.08.2011 06:13. ] – [automatischer Programmstart] django | voip:asterisk18:isdn [20.04.2018 09:00. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Asterisk Anbindung ans ISDN ====== | ||
| + | |||
| + | {{voip: | ||
| + | \\ | ||
| + | Da wir mit unserem Asterisk nicht nur // | ||
| + | ===== Installation ===== | ||
| + | Dank des [[voip: | ||
| + | Wir installieren uns also die folgenden Pakete: **asterisk16-misdn**, | ||
| + | # yum install asterisk18-misdn mISDN mISDNuser kmod-mISDN | ||
| + | Was uns die Pakete alles mitbringt, offenbart uns jeweils der Aufruf von **rpm -iql** *PAKETNAME*. | ||
| + | ==== asterisk18-misdn ==== | ||
| + | # rpm -iql asterisk18-misdn | ||
| + | < | ||
| + | Version  | ||
| + | Release  | ||
| + | Install Date: Mo 29 Nov 2010 15:29:42 CET Build Host: localhost.localdomain | ||
| + | Group       : Utilities/ | ||
| + | Size        : 1101048  | ||
| + | Signature  | ||
| + | Packager  | ||
| + | URL         : http:// | ||
| + | Summary  | ||
| + | Description : | ||
| + | mISDN channel driver for Asterisk | ||
| + | / | ||
| + | ==== mISDN ==== | ||
| + | # rpm -iql mISDN | ||
| + | < | ||
| + | Version  | ||
| + | Release  | ||
| + | Install Date: Mo 29 Nov 2010 15:29:42 CET Build Host: localhost.localdomain | ||
| + | Group       : Utilities/ | ||
| + | Size : 65785 License: GPL | ||
| + | Signature  | ||
| + | Packager  | ||
| + | URL         : http:// | ||
| + | Summary  | ||
| + | Description : | ||
| + | The mISDN project | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | ==== mISDNuser ==== | ||
| + | # rpm -iql mISDNuser | ||
| + | < | ||
| + | Version  | ||
| + | Release  | ||
| + | Install Date: Mo 29 Nov 2010 15:29:32 CET Build Host: localhost.localdomain | ||
| + | Group       : Utilities/ | ||
| + | Size        : 859322  | ||
| + | Signature  | ||
| + | Packager  | ||
| + | URL         : http:// | ||
| + | Summary  | ||
| + | Description : | ||
| + | The open source mISDNuser project | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | ==== kmod-mISDN ==== | ||
| + | # rpm -iql kmod-mISDN | ||
| + | < | ||
| + | Version  | ||
| + | Release  | ||
| + | Install Date: Mo 29 Nov 2010 15:29:37 CET Build Host: localhost.localdomain | ||
| + | Group       : System Environment/ | ||
| + | Size        : 8466730  | ||
| + | Signature  | ||
| + | Packager  | ||
| + | URL         : http:// | ||
| + | Summary  | ||
| + | Description : | ||
| + | This package provides the mISDN kernel modules built for the Linux | ||
| + | kernel 2.6.18-194.26.1.el5 for the i686 family of processors. | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | ===== Konfiguration ===== | ||
| + | Als erstes suchen wir nach unserer/ | ||
| + | # service mISDN scan | ||
| + | < | ||
| + | >> avmfritz</ | ||
| + | Als nächstes legen wir die Konfigurationsdatei für mISDN unter // | ||
| + | # service mISDN config | ||
| + | < | ||
| + | >> avmfritz</ | ||
| + | Mit Hilfe des vorgenannten Aufrufes wird automatisch folgende Konfigurationsdatei angelegt: | ||
| + | < | ||
| + | <!-- | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: BN2S0, BN4S0, BN8S0 | ||
| + | Card Attributes: ulaw=(yes|no), | ||
| + |                   | ||
| + |                   | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: BN2E1 | ||
| + | Card Attributes: ulaw=(yes|no), | ||
| + |                   | ||
| + |                   | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: hfcmulti, avmfritz, w6692pci | ||
| + | Port Attributes: mode=(te|nt), | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: hfcmulti | ||
| + | Options: poll=< | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: hfcsusb | ||
| + | Options: debug=< | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: xhfc | ||
| + | Options: debug=< | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: mISDN_dsp | ||
| + | Options: debug=< | ||
| + |           | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | --> | ||
| + | < | ||
| + |         <module poll=" | ||
| + |         <module debug=" | ||
| + |         <devnode user=" | ||
| + |         <card type=" | ||
| + |                 <port mode=" | ||
| + |         </ | ||
| + | </ | ||
| + | Damit es später beim Betrieb keine Probleme mit den Zugriffsrechten auf die Gerätedatei gibt passen wir noch den **user** und die **group** des // | ||
| + | Ansonsten könnte es Bsp. zu folgender Fehlermeldung kommen: | ||
| + | < | ||
| + | [Nov 30 10:35:53] ERROR[5043]: | ||
| + | setup SRTP session. | ||
| + |     -- Executing [08936046666@default: | ||
| + | " | ||
| + | [Nov 30 10:35:53] WARNING[7281]: | ||
| + | for ' | ||
| + | [Nov 30 10:35:53] WARNING[7281]: | ||
| + | of type ' | ||
| + |   == Everyone is busy/ | ||
| + |     -- Executing [08936046666@default: | ||
| + |   == Spawn extension (default, 08936046666, | ||
| + | asterisk*CLI> | ||
| + | </ | ||
| + | Wir ändern also \\ | ||
| + | **< | ||
| + | in \\ | ||
| + | // | ||
| + | # vim /etc/mISDN | ||
| + | < | ||
| + | <!-- | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: BN2S0, BN4S0, BN8S0 | ||
| + | Card Attributes: ulaw=(yes|no), | ||
| + |                   | ||
| + |                   | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: BN2E1 | ||
| + | Card Attributes: ulaw=(yes|no), | ||
| + |                   | ||
| + |                   | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: hfcmulti, avmfritz, w6692pci | ||
| + | Port Attributes: mode=(te|nt), | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: hfcmulti | ||
| + | Options: poll=< | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: hfcsusb | ||
| + | Options: debug=< | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: xhfc | ||
| + | Options: debug=< | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: mISDN_dsp | ||
| + | Options: debug=< | ||
| + |           | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | --> | ||
| + | < | ||
| + |         <module poll=" | ||
| + |         <module debug=" | ||
| + |         <devnode user=" | ||
| + |         <card type=" | ||
| + |                 <port mode=" | ||
| + |         </ | ||
| + | </ | ||
| + | </ | ||
| + | ===== mISDN Daemon starten ===== | ||
| + | ==== erster Programmstart ==== | ||
| + | Zum Laden der Kernelmodule und zum Starten des **mISDN**-Daemon erfolgt mit: | ||
| + | # service mISDN start | ||
| + | < | ||
| + | >> / | ||
| + | >> / | ||
| + | >> / | ||
| + | >> / | ||
| + | >> / | ||
| + | >> / | ||
| + | >> / | ||
| + | >> / | ||
| + | Der Start wird uns im **syslog** entsprechend positiv vermerkt. | ||
| + | < | ||
| + | Nov 29 15:47:24 office kernel: ISDN L1 driver version 1.20 | ||
| + | Nov 29 15:47:24 office kernel: ISDN L2 driver version 1.32 | ||
| + | Nov 29 15:47:24 office kernel: mISDN: DSS1 Rev. 1.47 | ||
| + | Nov 29 15:47:24 office kernel: mISDN Capi 2.0 driver file version 1.21 | ||
| + | Nov 29 15:47:24 office kernel: ISAC module $Revision: 1.18 $ | ||
| + | Nov 29 15:47:24 office kernel: AVM Fritz PCI/PnP driver Rev. 1.43 | ||
| + | Nov 29 15:47:24 office kernel: PCI: Enabling device 0000: | ||
| + | Nov 29 15:47:24 office kernel: ACPI: PCI Interrupt 0000: | ||
| + | Nov 29 15:47:24 office kernel: mISDN_fcpcipnp: | ||
| + | Nov 29 15:47:24 office kernel: AVM PCI V2: stat 0x240020e | ||
| + | Nov 29 15:47:24 office kernel: AVM PCI V2: Class E Rev 2 | ||
| + | Nov 29 15:47:24 office kernel: AVM PnP: HDLC version 2 | ||
| + | Nov 29 15:47:24 office kernel: mISDN: AVM Fritz!PCIv2 config irq:177 base:0xD000 | ||
| + | Nov 29 15:47:24 office kernel: AVM PCI/PnP: reset | ||
| + | Nov 29 15:47:24 office kernel: AVM PCI/PnP: S0/S1 40/2 | ||
| + | Nov 29 15:47:24 office kernel: mISDN_isac_init: | ||
| + | Nov 29 15:47:24 office kernel: AVM Fritz!PCI: IRQ 177 count 2 | ||
| + | Nov 29 15:47:24 office kernel: fritz 1 cards installed | ||
| + | Nov 29 15:47:24 office kernel: mISDN_dsp: Audio DSP Rev. 1.29 (debug=0x0) EchoCancellor MG2 dtmfthreshold(100) | ||
| + | Nov 29 15:47:24 office kernel: mISDN_dsp: DSP clocks every 64 samples. This equals 8 jiffies.</ | ||
| + | Mit **misdnportinfo** kann nun zum einen geprüft werden, ob die Module korrekt geladen wurden, und zum anderen die momentane Portkonfiguration ausgegeben werden:  | ||
| + | # misdnportinfo | ||
| + | < | ||
| + | Port 1: TE-mode BRI S/T interface line (for phone lines) | ||
| + | -> Protocol: DSS1 (Euro ISDN) | ||
| + | -> childcnt: 2 | ||
| + | -------- | ||
| + | |||
| + | mISDN_close: | ||
| + | </ | ||
| + | |||
| + | ==== automatischer Programmstart ==== | ||
| + | Damit unser mISDN-Daemon automatisch bei jedem Systemstart starten kann ergänzen wir noch das startscript // | ||
| + | < | ||
| + | # | ||
| + | # mISDN Start up mISDN subsystem | ||
| + | # | ||
| + | # chkconfig: 2345 10 90 | ||
| + | # description: | ||
| + | # | ||
| + | ### BEGIN INIT INFO | ||
| + | # Provides: $mISDN | ||
| + | ### END INIT INFO</ | ||
| + |    # vim / | ||
| + | Somit ergibt sich folgendes Startscript in Gänze: | ||
| + | < | ||
| + | |||
| + | # Django: 29.11.2010 | ||
| + | # | ||
| + | # mISDN Start up mISDN subsystem | ||
| + | # | ||
| + | # chkconfig: 2345 10 90 | ||
| + | # description: | ||
| + | # | ||
| + | ### BEGIN INIT INFO | ||
| + | # Provides: $mISDN | ||
| + | ### END INIT INFO | ||
| + | |||
| + | # | ||
| + | # | ||
| + | # CONFIGURATION: | ||
| + | # | ||
| + | MISDN_CONF="/ | ||
| + | MISDN_CONF_XSL="/ | ||
| + | # | ||
| + | # | ||
| + | |||
| + | SELF=" | ||
| + | USAGE=" | ||
| + | |||
| + | function die { | ||
| + | echo "[!!] ${1}" | ||
| + | exit 1 | ||
| + | } | ||
| + | |||
| + | function check_cmd | ||
| + | { | ||
| + |         if ! which " | ||
| + |                 if [ " | ||
| + | return | ||
| + | fi | ||
| + |                 if [ "$(id -u)" != " | ||
| + | die "$1 not in path, please install and/or be root." | ||
| + | else | ||
| + |                         die "$1 not in path, please install." | ||
| + | fi | ||
| + | exit 1 | ||
| + | else | ||
| + | local var=$(echo ${1} | tr a-z A-Z) | ||
| + |                 eval " | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | function check_misdn_conf | ||
| + | { | ||
| + | if [ ! -f ${MISDN_CONF} ]; then | ||
| + |                 die " | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | check_cmd sed | ||
| + | check_cmd cut | ||
| + | check_cmd cp | ||
| + | check_cmd wc | ||
| + | check_cmd grep | ||
| + | check_cmd xsltproc | ||
| + | check_cmd modprobe | ||
| + | check_cmd sleep | ||
| + | check_cmd lspci | ||
| + | check_cmd lsusb opt | ||
| + | check_cmd mknod | ||
| + | check_cmd chown | ||
| + | check_cmd chmod | ||
| + | |||
| + | declare -a START_COMMANDS | ||
| + | declare -a STOP_COMMANDS | ||
| + | |||
| + | declare -a HFCMULTI_card | ||
| + | declare -a HFCMULTI_type | ||
| + | declare -a HFCMULTI_protocol | ||
| + | declare -a HFCMULTI_layermask | ||
| + | HFCMULTI_options='' | ||
| + | MISDNDSP_options='' | ||
| + | L1OIP_options='' | ||
| + | |||
| + | AVMFRITZ_protocol='' | ||
| + | AVMFRITZ_layermask='' | ||
| + | |||
| + | HFCPCI_protocol='' | ||
| + | HFCPCI_layermask='' | ||
| + | |||
| + | HFCSUSB_protocol='' | ||
| + | HFCSUSB_layermask='' | ||
| + | HFCSUSB_options='' | ||
| + | |||
| + | XHFC_protocol='' | ||
| + | XHFC_layermask='' | ||
| + | XHFC_options='' | ||
| + | |||
| + | L1OIP_type='' | ||
| + | L1OIP_protocol='' | ||
| + | L1OIP_layermask='' | ||
| + | L1OIP_codec='' | ||
| + | L1OIP_ip='' | ||
| + | L1OIP_port='' | ||
| + | L1OIP_localport='' | ||
| + | L1OIP_ondemand='' | ||
| + | L1OIP_id='' | ||
| + | |||
| + | DEVNODE_user=' | ||
| + | DEVNODE_group=' | ||
| + | DEVNODE_mode=' | ||
| + | |||
| + | declare -a SCAN_card | ||
| + | declare -a SCAN_opts | ||
| + | declare -a SCAN_num_ports | ||
| + | declare -a SCAN_port_opts | ||
| + | |||
| + | function parse_config | ||
| + | { | ||
| + | local CONFIG=$(${XSLTPROC} ${MISDN_CONF_XSL} ${MISDN_CONF}) | ||
| + | local t p l line i tmpcmd curr tmpstr extra_modules val | ||
| + |         local IFS=$' | ||
| + | |||
| + |         START_COMMANDS[${# | ||
| + |         START_COMMANDS[${# | ||
| + |         START_COMMANDS[${# | ||
| + |         START_COMMANDS[${# | ||
| + |         START_COMMANDS[${# | ||
| + |         START_COMMANDS[${# | ||
| + | |||
| + | for line in ${CONFIG}; do | ||
| + |                 case " | ||
| + |                         DEVNODE: | ||
| + |                                 tmpstr=$(echo ${line} | ${SED} -n ' | ||
| + |                                 if [ ! -z " | ||
| + |                                         DEVNODE_user=" | ||
| + | fi | ||
| + |                                 tmpstr=$(echo ${line} | ${SED} -n ' | ||
| + |                                 if [ ! -z " | ||
| + |                                         DEVNODE_group=" | ||
| + | fi | ||
| + |                                 tmpstr=$(echo ${line} | ${SED} -n ' | ||
| + |                                 if [ ! -z " | ||
| + |                                         DEVNODE_mode=" | ||
| + | fi | ||
| + | ;; | ||
| + |                         MODULE: | ||
| + |                                 HFCMULTI_options=${line: | ||
| + | ;; | ||
| + |                         MODULE: | ||
| + |                                 HFCSUSB_options=${line: | ||
| + | ;; | ||
| + |                         MODULE: | ||
| + |                                 XHFC_options=${line: | ||
| + | ;; | ||
| + |                         MODULE: | ||
| + |                                 extra_modules[${# | ||
| + | ;; | ||
| + |                         MODULE: | ||
| + |                                 MISDNDSP_options=${line: | ||
| + | ;; | ||
| + |                         MODULE: | ||
| + |                                 L1OIP_options=${line: | ||
| + | ;; | ||
| + | CARD:BN*) | ||
| + |                                 curr=' | ||
| + |                                 i=${# | ||
| + |                                 let "t = $(echo ${line} | ${SED} -n ' | ||
| + |                                 HFCMULTI_type[${i}]=$(printf " | ||
| + | |||
| + | # this is for the BN2E1 card that needs two type numbers | ||
| + |                                 t=$(echo ${line} | ${SED} -n ' | ||
| + |                                 if [ ! -z " | ||
| + | let "t = ${t}" | ||
| + |                                         HFCMULTI_type[${i}]=" | ||
| + | fi | ||
| + | |||
| + | HFCMULTI_card[${i}]=$(echo ${line:5} | ${CUT} -d" " -f1) | ||
| + | ;; | ||
| + |                         CARD: | ||
| + |                                 curr=' | ||
| + | ;; | ||
| + |                         CARD: | ||
| + |                                 curr=' | ||
| + | ;; | ||
| + | CARD:xhfc*) | ||
| + |                                 curr=' | ||
| + | ;; | ||
| + |                         CARD: | ||
| + |                                 curr=' | ||
| + | ;; | ||
| + |                         CARD: | ||
| + |                                 curr=' | ||
| + | ;; | ||
| + | PORT*) | ||
| + |                                 case " | ||
| + | hfcmulti) | ||
| + |                                                 let "p = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 HFCMULTI_protocol[${i}]=" | ||
| + |                                                 let "l = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 HFCMULTI_layermask[${i}]=" | ||
| + | ;; | ||
| + | hfcpci) | ||
| + |                                                 let "p = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 HFCPCI_protocol=" | ||
| + |                                                 let "l = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 HFCPCI_layermask=" | ||
| + | ;; | ||
| + | hfcsusb) | ||
| + |                                                 let "p = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 HFCSUSB_protocol=" | ||
| + |                                                 let "l = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 HFCSUSB_layermask=" | ||
| + | ;; | ||
| + | xhfc) | ||
| + |                                                 let "p = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 XHFC_protocol=" | ||
| + |                                                 let "l = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 XHFC_layermask=" | ||
| + | ;; | ||
| + | avmfritz) | ||
| + |                                                 let "p = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 AVMFRITZ_protocol=" | ||
| + |                                                 let "l = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 AVMFRITZ_layermask=" | ||
| + | ;; | ||
| + | l1oip) | ||
| + |                                                 let "val = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 L1OIP_type=" | ||
| + |                                                 let "val = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 L1OIP_protocol=" | ||
| + |                                                 let "val = $(echo ${line} | ${SED} -n ' | ||
| + |                                                 L1OIP_layermask=" | ||
| + |                                                 val=" | ||
| + |                                                 L1OIP_codec=" | ||
| + |                                                 val=" | ||
| + |                                                 L1OIP_ip=" | ||
| + |                                                 val=" | ||
| + |                                                 L1OIP_port=" | ||
| + |                                                 val=" | ||
| + |                                                 L1OIP_localport=" | ||
| + |                                                 val=" | ||
| + |                                                 L1OIP_ondemand=" | ||
| + |                                                 val=" | ||
| + |                                                 L1OIP_id=" | ||
| + | ;; | ||
| + | esac | ||
| + | ;; | ||
| + | esac | ||
| + | done | ||
| + | |||
| + |         if [ ! -z " | ||
| + |                 tmpcmd=" | ||
| + | i=1 | ||
| + |                 while [ ! -z " | ||
| + |                         tmpcmd=" | ||
| + | let "i = ${i} + 1" | ||
| + | done | ||
| + |                 tmpcmd=" | ||
| + | i=1 | ||
| + |                 while [ ! -z " | ||
| + |                         tmpcmd=" | ||
| + | let "i = ${i} + 1" | ||
| + | done | ||
| + |                 tmpcmd=" | ||
| + | i=1 | ||
| + |                 while [ ! -z " | ||
| + |                         tmpcmd=" | ||
| + | let "i = ${i} + 1" | ||
| + | done | ||
| + |                 START_COMMANDS[${# | ||
| + | fi | ||
| + | |||
| + |         if [ ! -z " | ||
| + |                 START_COMMANDS[${# | ||
| + | fi | ||
| + | |||
| + |         if [ ! -z " | ||
| + |                 START_COMMANDS[${# | ||
| + | fi | ||
| + | |||
| + |         if [ ! -z " | ||
| + |                 START_COMMANDS[${# | ||
| + | fi | ||
| + | |||
| + |         if [ ! -z " | ||
| + |                 START_COMMANDS[${# | ||
| + | fi | ||
| + | |||
| + |         if [ ! -z " | ||
| + |                 START_COMMANDS[${# | ||
| + | fi | ||
| + | |||
| + |         START_COMMANDS[${# | ||
| + | |||
| + | i=1 | ||
| + |         while [ ! -z " | ||
| + |                 START_COMMANDS[${# | ||
| + | let "i = ${i} + 1" | ||
| + | done | ||
| + | } | ||
| + | |||
| + | function run_start_commands | ||
| + | { | ||
| + | local i=0 | ||
| + | |||
| + | echo "-- Loading mISDN modules --" | ||
| + |         while [ ! -z " | ||
| + |                 echo ">> | ||
| + |                 eval " | ||
| + | let "i = ${i} + 1" | ||
| + | done | ||
| + | } | ||
| + | |||
| + | function run_stop_commands | ||
| + | { | ||
| + | local mod i=0 | ||
| + | |||
| + |         for mod in $(lsmod | ${SED} -ne '/ | ||
| + |                 case " | ||
| + | mISDN_capi | mISDN_dsp | l3udss1 | mISDN_l2 | mISDN_l1 | mISDN_isac | hfcmulti | hfcpci | hfcsusb | xhfc | avmfritz | l1oip) | ||
| + |                                 STOP_COMMANDS[0]=" | ||
| + | ;; | ||
| + | mISDN_debugtool) | ||
| + |                                 STOP_COMMANDS[1]=" | ||
| + | ;; | ||
| + | mISDN_core) | ||
| + |                                 STOP_COMMANDS[2]=" | ||
| + | ;; | ||
| + | esac | ||
| + | done | ||
| + | |||
| + | echo "-- Unloading mISDN modules --" | ||
| + | for i in `seq 0 1 2`; do | ||
| + |                 if [ ! -z " | ||
| + |                         echo ">> | ||
| + |                         eval " | ||
| + | fi | ||
| + | done | ||
| + | } | ||
| + | |||
| + | function scan_devices | ||
| + | { | ||
| + |         local skipnext=0 IFS=$' | ||
| + | local NL=" | ||
| + | " | ||
| + | |||
| + | function addcard { | ||
| + |                 SCAN_card[${# | ||
| + |                 SCAN_opts[${# | ||
| + |                 SCAN_num_ports[${# | ||
| + |                 SCAN_port_opts[${# | ||
| + | } | ||
| + | |||
| + |         for line in $(${LSPCI} -n -d 0xd161: | ||
| + |                 addcard " | ||
| + | done | ||
| + | |||
| + |         for line in $(${LSPCI} -n | ${SED} -n ' | ||
| + | if [ ${skipnext} -eq 1 ]; then | ||
| + | skipnext=0 | ||
| + | continue | ||
| + | fi | ||
| + |                 case " | ||
| + | 30b1*) | ||
| + |                                 case " | ||
| + | 00*) | ||
| + |                                                 addcard " | ||
| + | ;; | ||
| + | *) | ||
| + |                                                 if [ $(${LSPCI} -n -s " | ||
| + |                                                         addcard " | ||
| + | skipnext=1 | ||
| + | else | ||
| + |                                                         addcard " | ||
| + | fi | ||
| + | ;; | ||
| + | esac | ||
| + | ;; | ||
| + | 16b8*) | ||
| + |                                 addcard " | ||
| + | ;; | ||
| + | 08b4*) | ||
| + |                                 if ${LSPCI} -n -v -s " | ||
| + |                                         addcard " | ||
| + |                                 elif ${LSPCI} -n -v -s " | ||
| + |                                         addcard " | ||
| + | else | ||
| + |                                         addcard " | ||
| + | fi | ||
| + | ;; | ||
| + | esac | ||
| + | done | ||
| + |         for line in $(${LSPCI} -n | ${GREP} " | ||
| + |                 addcard " | ||
| + | done | ||
| + |         for line in $(${LSPCI} -n -d 0x1397: | ||
| + |                 addcard " | ||
| + | done | ||
| + |         for line in $(${LSPCI} -n | ${GREP} " | ||
| + |                 addcard " | ||
| + | done | ||
| + | for line in $(${LSPCI} -n -d 1050:6692); do | ||
| + |                 addcard " | ||
| + | done | ||
| + | if [ -e ${LSUSB} ]; then | ||
| + |                 for line in $(${LSUSB} | ${GREP} " | ||
| + |                         addcard " | ||
| + | done | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | function write_mISDN_conf | ||
| + | { | ||
| + | local NL=" | ||
| + | " | ||
| + |         local TAB="  | ||
| + |         local HEADER="<? | ||
| + | <!-- | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: BN2S0, BN4S0, BN8S0 | ||
| + | Card Attributes: ulaw=(yes|no), | ||
| + |                   | ||
| + |                   | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: BN2E1 | ||
| + | Card Attributes: ulaw=(yes|no), | ||
| + |                   | ||
| + |                   | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Card Type: hfcmulti, avmfritz, w6692pci | ||
| + | Port Attributes: mode=(te|nt), | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: hfcmulti | ||
| + | Options: poll=< | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: hfcsusb | ||
| + | Options: debug=< | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: xhfc | ||
| + | Options: debug=< | ||
| + | Port Attributes: mode=(te|nt), | ||
| + |                   | ||
| + |                   | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | Module: mISDN_dsp | ||
| + | Options: debug=< | ||
| + |           | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | --> | ||
| + | < | ||
| + | ${TAB}< | ||
| + | ${TAB}< | ||
| + | ${TAB}< | ||
| + |         local FOOTER="</ | ||
| + |         local i=0 j=0 MAIN="" | ||
| + | |||
| + |         echo " | ||
| + |         while [ ! -z " | ||
| + |                 echo ">> | ||
| + |                 MAIN=" | ||
| + | j=1 | ||
| + | while [ ${j} -le ${SCAN_num_ports[${i}]} ]; do | ||
| + |                         MAIN=" | ||
| + | let "j = ${j} + 1" | ||
| + | done | ||
| + |                 MAIN=" | ||
| + | let "i = ${i} + 1" | ||
| + | done | ||
| + | |||
| + | if [ -f ${MISDN_CONF} ]; then | ||
| + |                 echo " | ||
| + |                 ${CP} " | ||
| + | fi | ||
| + |         echo " | ||
| + | } | ||
| + | |||
| + | function print_scan_results | ||
| + | { | ||
| + | local i=0 | ||
| + | |||
| + |         echo " | ||
| + |         while [ ! -z " | ||
| + |                 echo ">> | ||
| + | let "i = ${i} + 1" | ||
| + | done | ||
| + | } | ||
| + | |||
| + | function mk_misdn_dev | ||
| + | { | ||
| + | if [ ! -e /dev/mISDN ]; then | ||
| + |                 echo " | ||
| + | ${MKNOD} /dev/mISDN c 46 0 | ||
| + | fi | ||
| + |         ${CHOWN} ${DEVNODE_user}: | ||
| + | ${CHMOD} ${DEVNODE_mode} /dev/mISDN | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # MAIN | ||
| + | # | ||
| + | |||
| + | case " | ||
| + | |||
| + | start|--start) | ||
| + | |||
| + | check_misdn_conf | ||
| + | parse_config | ||
| + | run_start_commands | ||
| + | mk_misdn_dev | ||
| + | ;; | ||
| + | |||
| + | stop|--stop) | ||
| + | |||
| + | run_stop_commands | ||
| + | ;; | ||
| + | |||
| + | restart|--restart) | ||
| + | |||
| + | check_misdn_conf | ||
| + | parse_config | ||
| + | run_stop_commands | ||
| + | ${SLEEP} 2 | ||
| + | run_start_commands | ||
| + | mk_misdn_dev | ||
| + | ;; | ||
| + | |||
| + | config|--config) | ||
| + | |||
| + | scan_devices | ||
| + | write_mISDN_conf | ||
| + | ;; | ||
| + | |||
| + | scan|--scan) | ||
| + | |||
| + | scan_devices | ||
| + | print_scan_results | ||
| + | ;; | ||
| + | |||
| + | help|--help) | ||
| + |                 echo " | ||
| + | exit 0 | ||
| + | ;; | ||
| + | |||
| + | *) | ||
| + |                 echo " | ||
| + | exit 2 | ||
| + | ;; | ||
| + | |||
| + | esac | ||
| + | |||
| + | </ | ||
| + | Der Automatische Start kann nun durch Aufruf des folgenden Befehles erreicht werden: | ||
| + | # chkconfig mISDN on | ||
| + | Ein Überprüfung ob der Dienst (Daemon) mISDN wirklich bei jedem Systemstart automatisch mit gestartet wird, kann durch folgenden Befehl erreicht werden: | ||
| + | # chkconfig --list | grep mISDN | ||
| + |   mISDN            0:Aus    | ||
| + | |||
| + | Wichtig ist jeweils der Schalter **on** bei den Runleveln - **3 4 5**. | ||
| + | |||