- case "${line}" in
- 30b1*)
- case "${line:5}" in
- 00*)
- addcard "BN1E1" "" 1 'mode="nt" link="ptp"'
- ;;
- *)
- if [ $(${LSPCI} -n -s "${line:5:3}" | ${WC} -l) -eq 2 ]; then
- addcard "BN2E1" "" 2 'mode="nt" link="ptp"'
- skipnext=1
- else
- addcard "BN1E1" "" 1 'mode="nt" link="ptp"'
- fi
- ;;
- esac
- ;;
- 16b8*)
- addcard "BN8S0" "" 8 'mode="te" link="ptmp"'
- ;;
- 08b4*)
- if ${LSPCI} -n -v -s "${line:5}" | ${GREP} "Subsystem" | ${GREP} "1397:b567" > /dev/null ; then
- addcard "BN1S0" "" 1 'mode="te" link="ptmp"'
- elif ${LSPCI} -n -v -s "${line:5}" | ${GREP} "Subsystem" | ${GREP} "1397:b566\|1397:b569" > /dev/null ; then
- addcard "BN2S0" "" 2 'mode="te" link="ptmp"'
- else
- addcard "BN4S0" "" 4 'mode="te" link="ptmp"'
- fi
- ;;
- esac
- done
- for line in $(${LSPCI} -n | ${GREP} "1397:\(2bd\(0\|6\|7\|8\|9\|a\|b\|c\)\|b100\)\|1043:0675\|0871:ffa\(1\|2\)\|1051:0100\|15b0:2bd0\|114f:007\(0\|1\|2\|3\)\|13d1:2bd1\|182d:3069"); do
- addcard "hfcpci" "" 1 'mode="te" link="ptmp"'
- done
- for line in $(${LSPCI} -n | ${GREP} "1244:\(0a00\|0e00\)"); do
- addcard "avmfritz" "" 1 'mode="te" link="ptmp"'
- done
- for line in $(${LSPCI} -n -d 1050:6692); do
- addcard "w6692pci" "" 1 'mode="te" link="ptmp"'
- done
- if [ -e ${LSUSB} ]; then
- for line in $(${LSUSB} | ${GREP} "0959:2bd0\|0675:1688\|07b0:0007\|0742:200\(7\|8\|9\|A\)\|08e3:0301\|07fa:084\(7\|8\)\|07ba:0006"); do
- addcard "hfcsusb" "" 1 'mode="te" link="ptmp"'
- done
- fi
-}
-
-function write_mISDN_conf
-{
- local NL="
-"
- local TAB=" "
- local HEADER="<?xml version=\"1.0\"?>
-<!--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Card Type: BN2S0, BN4S0, BN8S0
-Card Attributes: ulaw=(yes|no), dtmf=(yes|no), pcm_slave=(yes|no),
- ignore_pcm_frameclock=(yes|no), rxclock=(yes|no),
- crystalclock=(yes|no), watchdog=(yes|no)
-Port Attributes: mode=(te|nt), link=(ptp|ptmp), master-clock=(yes|no),
- capi=(yes|no)
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Card Type: BN2E1
-Card Attributes: ulaw=(yes|no), dtmf=(yes|no), pcm_slave=(yes|no),
- ignore_pcm_frameclock=(yes|no), rxclock=(yes|no),
- crystalclock=(yes|no), watchdog=(yes|no)
-Port Attributes: mode=(te|nt), link=(ptp|ptmp), optical=(yes|no), los=(yes|no),
- ais=(yes|no), slip=(yes|no), nocrc4=(yes|no), capi=(yes|no)
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Card Type: hfcmulti, avmfritz, w6692pci
-Port Attributes: mode=(te|nt), link=(ptp|ptmp), capi=(yes|no)
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Module: hfcmulti
-Options: poll=<number>, pcm=<number>, debug=<number>, timer=(yes|no)
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Module: mISDN_dsp
-Options: debug=<number>, options=<number>, poll=<number>,
- dtmfthreshold=<number>
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-<mISDNconf>
-${TAB}<module poll=\"128\" debug=\"0\" timer=\"no\">hfcmulti</module>
-${TAB}<module debug=\"0\" options=\"0\">mISDN_dsp</module>
-${TAB}<devnode user=\"root\" group=\"root\" mode=\"644\">mISDN</devnode>"
- local FOOTER="</mISDNconf>"
- local i=0 j=0 MAIN=""
-
- echo "Writing ${MISDN_CONF} for ${#SCAN_card[@]} mISDN compatible device(s):"
- while [ ! -z "${SCAN_card[${i}]}" ]; do
- echo ">> ${SCAN_card[${i}]}"
- MAIN="${MAIN}${NL}${TAB}<card type=\"${SCAN_card[${i}]}\"${SCAN_opts[${i}]:+" ${SCAN_opts[${i}]}"}>"
- j=1
- while [ ${j} -le ${SCAN_num_ports[${i}]} ]; do
- MAIN="${MAIN}${NL}${TAB}${TAB}<port${SCAN_port_opts[${i}]:+" ${SCAN_port_opts[${i}]}"}>${j}</port>"
- let "j = ${j} + 1"
- done
- MAIN="${MAIN}${NL}${TAB}</card>"
- let "i = ${i} + 1"
- done
-
- if [ -f ${MISDN_CONF} ]; then
- echo "${MISDN_CONF} already present, saving a backup: ${MISDN_CONF}.bak"
- ${CP} "${MISDN_CONF}" "${MISDN_CONF}.bak" || die "Could not backup your existing ${MISDN_CONF}!"
- fi
- echo "${HEADER}${MAIN}${NL}${FOOTER}" > ${MISDN_CONF}
-}
-
-function print_scan_results
-{
- local i=0
-
- echo "${#SCAN_card[@]} mISDN compatible device(s) found:"
- while [ ! -z "${SCAN_card[${i}]}" ]; do
- echo ">> ${SCAN_card[${i}]}"
- let "i = ${i} + 1"
- done
-}
-
-function mk_misdn_dev
-{
- if [ ! -e /dev/mISDN ]; then
- echo "creating device node: /dev/mISDN"
- ${MKNOD} /dev/mISDN c 46 0
- fi
- ${CHOWN} ${DEVNODE_user}:${DEVNODE_group} /dev/mISDN
- ${CHMOD} ${DEVNODE_mode} /dev/mISDN
-}
-
-#
-# MAIN
-#
-
-case "${1}" in
-
- start|--start)
-
- check_misdn_conf
- parse_config
- run_start_commands
- mk_misdn_dev