#!/bin/bash # SCRIPT_VERSION=1.0.14 SCRIPT_DATE="13 Febuary 2007" # # This program is free software, distributed under the terms of # the GNU General Public License # # Usual caveats apply, so make sure you have backups: BEFORE YOU START!. # Well not that the script at this time change any files, # but it will do that in the fucture # # Writtten by RoadKill (please ask questions via TrixBox forum) # http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=497&forum=7 # # If you copy code, please remember to credit the author. # Well thanks to W1zz for the update funktion that I copyed ;-) # # # This script is explicitly designed to detect any voice hardware # # It was written and tested against AAH 2.5 & TrixBox 1.0 (from ISO) # # # ------------------------------------------- # V 1.0.0 - 19 June 2006 # - First release have support for 65 cards # - Will send a e-mail to the developer the first the script is run # for all hardware that has not been actively verified with the script # - Have support for both text and html # - recomented use is that the script is added during boot # - detectVoiceHW -h > /var/www/html/detectetVoiceHW.html # - if you have change the hardware in your server, # and wish to report the change us the -r option # # ------------------------------------------- # V 1.0.1 - 20 june 2006 # - added a 10 sec timeout on Check_For_Updates (suggested by mailaender) # - will now say drivers ststus UNKNOWN if we dont know the name # - added subversion for Tiger Jet Network - TDM400P # ------------------------------------------- # V 1.0.2 - 20 june 2006 # - added missinf Rename_File() # - removed write to logfile # ------------------------------------------- # V 1.0.3 - 20 june 2006 # - added subversion for Sangoma - A101 # ------------------------------------------- # V 1.0.4 - 20 june 2006 # - fixed bug in "Sangoma - A101" (reported by UnDeRDoG) # ------------------------------------------- # V 1.0.5 - 20 june 2006 # - added subversion for Sangoma - ? # - added subversion for Tiger Jet Network - X100P # ------------------------------------------- # V 1.0.6 - 20 june 2006 # - fixed bug in "UNKNOWN" module (reported by ccataldo) # - added subversion for Tiger Jet Network - TDM400P # ------------------------------------------- # V 1.0.7 - 21 june 2006 # - now support for 95 different cards # - fixed display bug in Rename_File() # - added subversion for Tiger Jet Network - TE110P # - added subversion for Tiger Jet Network - T100P # - added subversion for Tiger Jet Network - X100P clone # - added subversion for Sangoma - A104 # - added subversion for Cologne Chip Designs GmbH - BN8S0 # - added subversion for Cologne Chip Designs GmbH - HFC-4S # - added subversion for Cologne Chip Designs GmbH - HFC-PCI # - added subversion for Digium - Wildcard TE410P # - added subversion for Motorola - X100P # - added subversion for Foxconn International, Inc - T400P # - added subversion for Realtek Semiconductor Co., Ltd - TE405P # - updatet MODULE for Tiger Jet Network - X100P # ------------------------------------------- # V 1.0.8 - 21 june 2006 # - now support for 115 different cards # - added GNU License information # - added subvision for Cologne Chip Designs GmbH - BN2S0 # - added subvision for Cologne Chip Designs GmbH - BN4S0 # - added install_script for Eicon Networks Corporation # - added install_script for AVM Audiovisuelles MKTG & Computer System GmbH - B1 # - added subvision for zaptel cards (code analycing) # - added subvision for bristuff cards (code analycing) # ------------------------------------------- # V 1.0.9 - 22 june 2006 # - added a md5sum check when upgrading # ------------------------------------------- # V 1.0.10 - 22 june 2006 # - fixed missing voice=1 for many cards (reported by Bryce @ Rhino Equiment Corp) # ------------------------------------------- # V 1.0.11 - 30 june 2006 # - improved Check_For_Update() # - added display list of modules # - added silent option (do not upgrade) # ------------------------------------------- # V 1.0.12 - 30 june 2006 # - added subvision for vISDN cards (code analyse) # ------------------------------------------- # V 1.0.13 - 26 july 2006 # - updated card info based on reports form users # - added script output mode # ------------------------------------------- # V 1.0.14 - 13 febuary 2007 # - added support for Intel Dialogic d4pciuf (reportet by Li Pengfei) # - added description for Traverse Technologies NetJet (reportet by Grant Parnell ELX) # - added spell patch (Gregory McLean) #-------------------------------------------- # static parameters # ------------------------------------------- TMP="/tmp" REPORT_FILE="$TMP/detectVoiceHW.log" DEBUG="" FILE="" MODUL="" UPDATE=1 EMAIL="detectVoiceHW@zombie.dk" CURRENT_DIRECTORY=`pwd` PROGRAM=`basename $0` REPORT_ERROR="UNKNOWN please report to detectVoiceHW@zombie.dk" # ------------------------------------------- # Functions # ------------------------------------------- Check_For_Update() { Debug "Check_For_Update()" SCRIPT_SOURCE=$PROGRAM SCRIPT_LOCATION=`dirname $0` RELEASED=$SCRIPT_VERSION VERSION_FILE="$PROGRAM.released" BTL_SOURCE="http://asterisk.dencro.net/TrixBox-Scripts" cd $SCRIPT_LOCATION if [ -f $TMP/$VERSION_FILE ] ; then rm $TMP/$VERSION_FILE; fi wget -t 10 -c -N -P $TMP $BTL_SOURCE/$VERSION_FILE > /dev/null 2>&1 Debug "wget -t 10 -c -N -P $TMP $BTL_SOURCE/$VERSION_FILE" source $TMP/$VERSION_FILE if [ -f $TMP/$VERSION_FILE ] ; then rm $TMP/$VERSION_FILE; fi if [ $SCRIPT_VERSION != $RELEASED ] then Say "\n-----------------------------------------------------" Say "There is an update to this script available.\n" Say "Current version: $SCRIPT_VERSION" Say "Updated version: $RELEASED" Say "\nWould you like to download it now?" Say "-----------------------------------------------------" echo -e -n "Download? [y/N] :" read CONTINUE if [ P$CONTINUE = Py -o P$CONTINUE = PY ] then Say "OK...." #Rename_File $PROGRAM if [ -f $TMP/$PROGRAM.md5 ] ; then rm $TMP/$PROGRAM.md5; fi # go get the update wget -t 10 -c -N -q -P $TMP $BTL_SOURCE/$PROGRAM > /dev/null 2>&1 wget -t 10 -c -N -q -P $TMP $BTL_SOURCE/$PROGRAM.md5 > /dev/null 2>&1 if [ -f $TMP/$PROGRAM ] then if [ -f $TMP/$PROGRAM.md5 ] then Say "Verifying download...." if [ "`md5sum -c $TMP/$PROGRAM.md5`" = "$TMP/$PROGRAM: OK" ] then Say "md5sum is corect" if [ -f $TMP/$PROGRAM.md5 ] ; then rm -f $TMP/$PROGRAM.md5; fi mv -f $TMP/$PROGRAM $SCRIPT_LOCATION/$PROGRAM chmod 0777 $SCRIPT_LOCATION/$PROGRAM Say "Script updated........restarting" $0 $@ Exit_Script else Say "md5sum do not match" Say "Download error" Say "Update failed. Please download manually from:" Say "$BTL_SOURCE/$PROGRAM" Say "$BTL_SOURCE/$PROGRAM.md5" # restore the original version of the script #mv -f $TMP/$PROGRAM $PROGRAM if [ -f $PROGRAM.md5 ] ; then rm -f $PROGRAM.md5; fi Exit_Script fi else Say "Unable to verify md5sum" Say "md5sum download error" #mv -f $PROGRAM.$COUNT $PROGRAM if [ -f $TMP/$PROGRAM.md5 ] ; then rm -f $TMP/$PROGRAM.md5; fi if [ -f $TMP/$PROGRAM ] ; then rm -f $TMP/$PROGRAM; fi Exit_Script fi else Say "Update failed. Please download manually from:" Say "$BTL_SOURCE/$PROGRAM" # restore the original version of the script #mv $PROGRAM.$COUNT $PROGRAM Exit_Script fi else Say "OK. Continuing ......." fi fi } Rename_File() { Debug "Rename_File()" # Rename an existing file by suffixing a number .1, .2 etc. # The highest number being the oldest. COUNT=1 while [ -f $1 ] do if [ -f $1.$COUNT ] then ((COUNT++)) else mv $1 $1.$COUNT fi done } Voice_Card_Type() { Debug "Voice_Card_Type() VENDOR DEVICE SUBVENDOR SUBDEVICE" VENDOR=$1 DEVICE=$2 SUBSYSTEM="$3 $4" SUBVENDOR=$3 SUBDEVICE=$4 SUBSYSTEM1=$3 SUBSYSTEM2=$4 PCI_VOICE="" PCI_VERIFY=1 PCI_VENDOR="$VENDOR $REPORT_ERROR" PCI_NAME="$DEVICE $REPORT_ERROR" PCI_SUBVERSION="$SUBSYSTEM $REPORT_ERROR" PCI_DESCRIPTION="$REPORT_ERROR" PCI_DRIVER="$REPORT_ERROR" PCI_INSTALL="" PCI_MODUL="" VOICE_INTERFACE="" # PRI, BRI, FXO, FXS, FXX (FXX = FXO+FXS) VOICE_LINES="" #max number of interfaces TDM400P=4 TE110P=1 CHAN_ZAP="" # 1 if supportet by zaptel CHAN_vISDN="" #1 if supportet by vISDN CHAN_mISDN="" # 1 if supportet by mISDN CHAN_SIRRIX="" # 1 if supportet by Sirrix CHAN_CAPI="" # 1 if used by chan_capi case $VENDOR in 1397 ) PCI_VENDOR="Cologne Chip Designs GmbH" case $DEVICE in 2bd0 ) PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 case $SUBSYSTEM in "1397 2bd0" ) PCI_VERIFY="" PCI_SUBVERSION="CCD/Billion/Asuscom" ;; "1075 c101" ) PCI_VERIFY="" PCI_SUBVERSION="Advanced Integrations Research: PLANET IA1281P-STD" ;; "15b0 2bd0" ) PCI_VERIFY="" PCI_SUBVERSION="Zoltrix International Ltd" ;; esac ;; b000 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_SUBVERSION="Billion" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b006 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_SUBVERSION="Billion" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b007 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_SUBVERSION="Billion" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b008 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_SUBVERSION="Billion" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b009 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_SUBVERSION="Billion" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b00a) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_SUBVERSION="Billion" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b00c ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_SUBVERSION="Billion" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b100 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-PCI]" PCI_SUBVERSION="Billion" PCI_DESCRIPTION="1xBRI, Pasive, TE/NT" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; 08b4 ) PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-4S]" PCI_DESCRIPTION="2xBRI, Pasive, TE/NT" case $SUBDEVICE in 08b4 ) PCI_VERIFY="" PCI_SUBVERSION="CologneChip HFC-4S evaluation board" PCI_DRIVER="Bristuff from Junghanns" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="qozap" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b520 ) #SUBSYSTEM1==1397 PCI_VERIFY="" PCI_SUBVERSION="Junghanns quadBRI" PCI_DRIVER="Bristuff from Junghanns" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="qozap" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b550 ) PCI_VERIFY="" PCI_SUBVERSION="Junghanns quadBRI (Version 2.0)" PCI_DRIVER="Bristuff from Junghanns" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="qozap" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b560 ) #SUBSYSTEM1==1397 PCI_VERIFY="" PCI_SUBVERSION="beroNET BN4S0" PCI_DRIVER="http://www.beronet.com/index.php?option=com_remository&Itemid=38&func=selectfolder&cat=1&lang=en" CHAN_vISDN=1 CHAN_mISDN=1 ;; b566 ) #SUBSYSTEM1==1397 PCI_VERIFY="" PCI_SUBVERSION="beroNET BN2S0" PCI_DRIVER="http://www.beronet.com/index.php?option=com_remository&Itemid=38&func=selectfolder&cat=1&lang=en" CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; 16b8 ) PCI_VOICE=1 PCI_NAME="ISDN network controller [HFC-8S]" PCI_DESCRIPTION="4xBRI, Pasive, TE/NT" case $SUBDEVICE in b552 ) #SUBSYSTEM1==1397 PCI_VERIFY="" PCI_SUBVERSION="Junghanns OctoBRI" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="qozap" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; b562 ) #SUBSYSTEM1==1397 PCI_VERIFY="" PCI_SUBVERSION="beroNET BN8S0" PCI_DRIVER="http://www.beronet.com/index.php?option=com_remository&Itemid=38&func=selectfolder&cat=1&lang=en" CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; esac ;; e159) PCI_VENDOR="Tiger Jet Network Inc." case $DEVICE in 0001 ) PCI_VOICE=1 PCI_NAME="Tiger3XX Modem/ISDN interface" PCI_DRIVER="default zaptel driver" case $SUBVENDOR in # "b1d9 0003" ) e159|a159 ) PCI_VERIFY="" PCI_SUBVERSION="Wildcard S400P Prototype" PCI_DESCRIPTION="1/2/3/4xPSTN, FXO/FXS" PCI_MODUL="wctdm" CHAN_ZAP=1 ;; b1d9|b119 ) PCI_VERIFY="" PCI_SUBVERSION="TDM400P Wildcard TDM400P REV I" PCI_DESCRIPTION="1/2/3/4xPSTN, FXO/FXS" PCI_MODUL="wctdm" CHAN_ZAP=1 ;; a9fd|a8fd|a800|a801|a908|a901 ) PCI_VERIFY="" PCI_SUBVERSION="Wildcard TDM REV H" PCI_DESCRIPTION="1/2/3/4xPSTN, FXO/FXS" PCI_MODUL="wctdm" CHAN_ZAP=1 ;; b100 ) PCI_VERIFY="" PCI_SUBVERSION="Wildcard TDM400P REV E/F" PCI_DESCRIPTION="1/2/3/4xPSTN, FXO/FXS" PCI_MODUL="wctdm" CHAN_ZAP=1 ;; 8085 ) PCI_VERIFY="" PCI_SUBVERSION="X101P / Intel AMI-IA92 56K PCI modem" PCI_DESCRIPTION="1xPSTN, FXO" PCI_MODUL="wcfxo" CHAN_ZAP=1 ;; 8086 ) PCI_VERIFY="" PCI_SUBVERSION="X100P Generic Clone" PCI_DESCRIPTION="1xPSTN, FXO" PCI_MODUL="wcfxo" CHAN_ZAP=1 ;; 8087 ) PCI_VERIFY="" PCI_SUBVERSION="X100P Generic Clone" PCI_DESCRIPTION="1xPSTN, FXO" PCI_MODUL="wcfxo" CHAN_ZAP=1 ;; 6159 ) PCI_VERIFY="" PCI_SUBVERSION="Digium Wildcard T100P T1/PRI or E100P E1/PRA Board" PCI_DESCRIPTION="1xPRI, T1 or E1 " PCI_MODUL="wct1xxp" CHAN_ZAP=1 ;; e16b ) PCI_VERIFY="" PCI_SUBVERSION="PCIRADIO" PCI_DESCRIPTION="" PCI_MODUL="pciradio" CHAN_ZAP=1 ;; 71fe|79fe|795e|79de|797e ) PCI_VERIFY="" PCI_SUBVERSION="Digium Wildcard TE110P T1/E1 Board" PCI_DESCRIPTION="Single Span T1/E1 Card" PCI_MODUL="wcte11xp" CHAN_ZAP=1 ;; a100|a120 ) PCI_VERIFY="" PCI_SUBVERSION="VoiSmart GSM" PCI_DRIVER="vISDN" PCI_MODUL="vgsm" CHAN_vISDN=1 ;; 0100 ) PCI_SUBVERSION="Ncipher Corp Ltd or NetJet" PCI_DESCRIPTION="NetJet ISDN card from Traverse Technologies" PCI_DRIVER="mISDN or vISDN" ;; 0059 ) PCI_SUBVERSION="128k ISDN-S/T Adapter" ;; esac ;; esac ;; 10b5 ) PCI_VENDOR="PLX Technology, Inc" case $DEVICE in d44d ) PCI_NAME="V401P-E" PCI_VOICE=1 PCI_DESCRIPTION="Tormenta III 4 Port E1" PCI_DRIVER="http://www.govarion.com/tor3" PCI_MODUL="tor3e" CHAN_ZAP=1 ;; d33d ) PCI_VOICE=1 PCI_NAME="V401P-T" PCI_DESCRIPTION="Tormenta III 4 Port T1" PCI_DRIVER="http://www.govarion.com/tor3" PCI_MODUL="tor3t" CHAN_ZAP=1 ;; 9050 ) PCI_VOICE=1 PCI_NAME="OpenSwitch Telephony card" case $SUBDEVICE in 2036 ) #SUBSYSTEM1=5654 PCI_SUBVERSION="OpenSwitch 6 Telephony card" PCI_DESCRIPTION="6xPSTN, FXO & FXS, CallerID" PCI_DRIVER="http://www.voicetronix.com/downloads.htm" ;; 3132 ) #SUBSYSTEM1=5654 PCI_SUBVERSION="OpenSwitch 12 Telephony card" PCI_DESCRIPTION="12xPSTN, FXO & FXS, CallerID" PCI_DRIVER="http://www.voicetronix.com/downloads.htm" ;; 5634 ) #SUBSYSTEM1=5654 PCI_SUBVERSION="OpenLine4 Telephony Card" PCI_DESCRIPTION="4xPSTN, FXO, CallerID" PCI_DRIVER="http://www.voicetronix.com/downloads.htm" ;; esac ;; esac ;; affe) PCI_VENDOR="Sirrix AG" case $DEVICE in dead ) PCI_VOICE=1 PCI_NAME="PCI4S0 - four port BRI PCI card" PCI_DESCRIPTION="4xISDN2" PCI_SUBVERSION="" #PCI_DRIVER="http://www.sirrix.de/content/pages/srx-pci4s0-driver" PCI_DRIVER="http://www.sirrix.de" PCI_MODUL="sirrix_pfic" CHAN_SIRRIX=1 ;; esac ;; 1923 ) PCI_VENDOR="Sangoma Technologies Corp" case $DEVICE in 0100 ) PCI_VOICE=1 PCI_NAME="A104d QUAD T1/E1 AFT card" #SUBDEVICE="a200 0100" PCI_SUBVERSION="NEC Corporation" PCI_DRIVER="ftp://ftp.sangoma.com/linux/current_wanpipe/" PCI_MODUL="wanpipe" ;; 0040 ) PCI_VOICE=1 PCI_NAME="A200d" case $SUBSYSTEM in "a200 0600" ) PCI_SUBSYSTEM="NEC Corporation" ;; "a200 0500" ) PCI_SUBSYSTEM="NEC Corporation" ;; esac PCI_DRIVER="ftp://ftp.sangoma.com/linux/current_wanpipe/" PCI_MODULE="wanpipe" ;; 0300 ) PCI_VOICE=1 PCI_NAME="A101" PCI_DRIVER="ftp://ftp.sangoma.com/linux/current_wanpipe/" PCI_MODULE="wanpipe" case $SUBSYSTEM in "0008 0000" ) PCI_VERIFY="" PCI_SUBVERSION="" ;; "a010 2400" ) PCI_VERIFY=1 PCI_SUBVERSION="" ;; "a011 2500" ) PCI_VERIFY="" PCI_SUBVERSION="" ;; esac ;; 0400 ) PCI_VERIFY=1 PCI_NAME="A104" PCI_DRIVER="ftp://ftp.sangoma.com/linux/current_wanpipe/" PCI_MODULE="wanpipe 0400" case $SUBSYSTEM in "a013 1400" ) PCI_VERIFY="" PCI_VOICE=1 PCI_SUBVERSION="" ;; "a013 1100" ) PCI_VERIFY="" PCI_VOICE=1 PCI_SUBVERSION="" ;; esac ;; esac ;; 1133 ) PCI_VENDOR="Eicon Networks Corporation" PCI_DRIVER="http://www.eicon.com/support/helpweb/slnxen/asterisk.asp" PCI_MODUL="divadidd" PCI_INSTALL="install-EiconDiva" case $DEVICE in e010 ) PCI_VOICE=1 PCI_NAME="Diva Server BRI-2M PCI" PCI_DESCRIPTION="1xISDN2, PCI 3.3 / 5.0 V, 32 Bit RISC 100Mhz, 8 Mb SDRAM, 2 x ADSP 2185" case $SUBSYSTEM in "110a 0021" ) PCI_SUBVERSION="Fujitsu Siemens ISDN S0" PCI_DESCRIPTION="1xISDN2" ;; "1133 e010" ) PCI_SUBVERSION="" PCI_VERIFY="" esac ;; e011 ) PCI_VOICE=1 PCI_NAME="Diva Server BRI S/T Rev 2" PCI_DESCRIPTION="1xISDN2" ;; e012 ) PCI_VOICE=1 PCI_NAME="Diva Server 4BRI-8M PCI" PCI_DESCRIPTION="4xISDN2, PCI 3.3 / 5.0 V, 32 Bit RISC 100Mhz, 16 Mb SDRAM, 8 x ADSP 2185" ;; e013 ) PCI_VOICE=1 PCI_NAME="Diva Server 4BRI Rev 2" PCI_DESCRIPTION="4xISDN2" case $SUBDEVICE in 1300 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server V-4BRI-8" ;; e013 ) #SUBSYSTEM1=1133 PCI_VERIFY="" PCI_SUBVERSION="Diva Server 4BRI-8M 2.0 PCI" ;; esac ;; e014 ) PCI_VOICE=1 PCI_NAME="Diva Server PRI-30M PCI" PCI_DESCRIPTION="1xPRI" ;; e015 ) PCI_VOICE=1 PCI_NAME="DIVA Server PRI Rev 2" PCI_DESCRIPTION="1xPRI, PCI 3.3 / 5.0 V, 64 Bit RISC CPU 180 MHz, 8 Mb SDRAM, 2/4/8/30 ADSPs 2185" case $SUBDEVICE in e015 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI 2.0 PCI" ;; esac ;; e016 ) PCI_VOICE=1 PCI_VERIFY="" PCI_NAME="Diva Server Voice 4BRI PCI" PCI_SUBVERSION="" PCI_DESCRIPTION="4xBRI" ;; e017 ) PCI_VOICE=1 PCI_NAME="Diva Server Voice 4BRI Rev 2" PCI_DESCRIPTION="4xISDN2, PCI 3.3 / 5.0 V, 32 Bit RISC 100Mhz, 16 Mb SDRAM, 8 x ADSP 2185" case $SUBDEVICE in e017 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server Voice 4BRI-8M 2.0 PCI" ;; esac ;; e018 ) PCI_VOICE=1 PCI_NAME="Diva Server BRI-2M 2.0 PCI" PCI_DESCRIPTION="ISDN2" case $SUBDEVICE in 1800 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server V-BRI-2" ;; e018 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server BRI-2M 2.0 PCI" ;; esac ;; e019 ) PCI_VOICE=1 PCI_NAME="Diva Server Voice PRI Rev 2" PCI_DESCRIPTION="1xPRI, PCI 3.3 / 5.0 V, 64 Bit RISC CPU 180 MHz, 8 Mb SDRAM, 4/8/30 ADSPs 2185" case $SUBDEVICE in e019 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server Voice PRI 2.0 PCI" ;; esac ;; e01a ) PCI_VOICE=1 PCI_NAME="Diva Server 2FX" PCI_DESCRIPTION="ISDN2, PCI 3.3 / 5.0 V, 32 Bit RISC 133Mhz, 8 Mb SDRAM" ;; e01b ) PCI_VOICE=1 PCI_NAME="Diva Server Voice BRI-2M 2.0 PCI" PCI_DESCRIPTION="1xISDN2" case $SUBDEVICE in e01b ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server Voice BRI-2M 2.0 PCI" ;; esac ;; e01c ) PCI_VOICE=1 PCI_NAME="Diva Server PRI Rev 3" PCI_DESCRIPTION="1xPRI" case $SUBDEVICE in 1c01 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI/E1/T1-8" ;; 1c02 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI/T1-24" ;; 1c03 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI/E1-30" ;; 1c04 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI/E1/T1" ;; 1c05 ) #SUBSYSTEM1=1133 PCI_NAME="Diva Server V-PRI/T1-24" ;; 1c06 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server V-PRI/E1-30" ;; 1c07 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI/E1/T1-8 Cornet NQ" ;; 1c08 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI/T1-24 Cornet NQ" ;; 1c09 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI/E1-30 Cornet NQ" ;; 1c0a ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server PRI/E1/T1 Cornet NQ" ;; 1c0b ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server V-PRI/T1-24 Cornet NQ" ;; 1c0c ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server V-PRI/E1-30 Cornet NQ" ;; esac ;; e01e ) PCI_VOICE=1 PCI_NAME="Diva Server 2PRI" PCI_DESCRIPTION="1xPRI" ;; e020 ) PCI_VOICE=1 PCI_NAME="Diva Server 4PRI" PCI_DESCRIPTION="1xPRI" ;; e022 ) PCI_VOICE=1 PCI_NAME="Diva Server Analog-2P" PCI_DESCRIPTION="2xPSTN" ;; e024 ) PCI_VOICE=1 PCI_NAME="Diva Server Analog-4P" PCI_DESCRIPTION="4xPSTN" case $SUBDEVICE in 2400 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server V-Analog-4P" ;; e024 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server Analog-4P" ;; esac ;; e028 ) PCI_VOICE=1 PCI_NAME="Diva Server Analog-8P" PCI_DESCRIPTION="8xPSTN" case $SUBDEVICE in 2800 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server V-Analog-8P" ;; e028 ) #SUBSYSTEM1=1133 PCI_SUBVERSION="Diva Server Analog-8P" ;; esac ;; e02a ) PCI_VOICE=1 PCI_NAME="Diva Server IPM-300" ;; e02c ) PCI_VOICE=1 PCI_NAME="Diva Server IPM-600" ;; esac ;; 1244 ) PCI_VENDOR="AVM Audiovisuelles MKTG & Computer System GmbH" case $DEVICE in 0e00 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="Fritz!PCI v2.0 ISDN" #SUBVERSION="1244 0e00" PCI_SUBVERSION="" PCI_DESCRIPTION="uses chan_CAPI" PCI_DRIVER="http://asteriskguru.com/tutorials/avm_b1.html \n http://www.centos.org/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=3780&forum=29&move=next&topic_time=1149507651" PCI_MODUL="fcpci" CHAN_CAPI=1 ;; 0700 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="B1 ISDN" #SUBVERSION=" " PCI_SUBVERSION="" PCI_DESCRIPTION="uses chan_CAPI" PCI_DRIVER="http://asteriskguru.com/tutorials/avm_b1.html \n http://www.centos.org/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=3780&forum=29&move=next&topic_time=1149507651" PCI_INSTALL="install-AVMB1ISDN" CHAN_CAPI=1 ;; esac ;; d161 ) PCI_VENDOR="Digium, inc." case $DEVICE in 0205 ) PCI_VOICE=1 PCI_VERIFY="" PCI_NAME="Wildcard TE205P" #SUBDEVICE=" " PCI_SUBVERSION="" PCI_DESCRIPTION="2xBRI E1/T1/J1 5.5v" PCI_DRIVER="Zapata default" PCI_MODUL="wct2xxp" CHAN_ZAP=1 ;; 0210 ) PCI_VOICE=1 PCI_NAME="Wildcard TE210P" PCI_DESCRIPTION="2xPRI E1/T1/J1 3.3v" PCI_DRIVER="Zapata default" PCI_MODUL="wct2xxp" CHAN_ZAP=1 ;; 0405 ) PCI_VOICE=1 PCI_NAME="Wildcard TE405P (2nd Gen)" PCI_DESCRIPTION="4xBRI, E1/T1/J1, 5.0v" PCI_DRIVER="Zapata default" PCI_MODUL="wct4xxp" CHAN_ZAP=1 ;; 0406 ) PCI_VOICE=1 PCI_NAME="Wildcard TE406P" PCI_DESCRIPTION="4xPRI, E1/T1/J1, EchoHW, 5.0v" PCI_DRIVER="Zapata default" PCI_MODUL="wct4xxp" CHAN_ZAP=1 ;; 0410 ) PCI_VOICE=1 PCI_NAME="Wildcard TE410P (2nd Gen)" PCI_DESCRIPTION="4xPRI, E1/T1/J1, 3.3v" PCI_DRIVER="Zapata default" PCI_MODUL="wct4xxp" CHAN_ZAP=1 case $SUBSYSTEM in " " ) PCI_VERIFY="" PCI_VOICE=1 PCI_SUBVERSION="" ;; esac ;; 0411 ) PCI_VOICE=1 PCI_NAME="Wildcard TE411P" PCI_DESCRIPTION="4xPRI, E1/T1/J1, EchoHW, 3.3v" PCI_DRIVER="Zapata default" PCI_MODUL="wct4xxp" CHAN_ZAP=1 ;; 2400 ) PCI_VOICE=1 PCI_NAME="Wildcard TDM2400P" #SUBSYSTEM="d161 2400" PCI_SUBVERSION="" PCI_DESCRIPTION="4/8/12/16/20/24xPSTN, FXO/FXS" PCI_DRIVER="" PCI_MODUL="wctdm24xxp" CHAN_ZAP=1 ;; esac ;; 1057 ) PCI_VENDOR="Motorola" case $DEVICE in 5608 ) PCI_VOICE=1 PCI_NAME="Wildcard X100P" PCI_DESCRIPTION="1xPSTN, FXO" PCI_DRIVER="Zapata default" PCI_MODUL="wcfxo" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 case $SUBSYSTEM in " " ) PCI_VERIFY="" PCI_VOICE=1 PCI_SUBVERSION="" ;; "1057 0000" ) PCI_VERIFY="" PCI_VOICE=1 PCI_SUBVERSION="" ;; "1057 0400" ) PCI_VERIFY="" PCI_VOICE=1 PCI_SUBVERSION="" ;; "1055 0000" ) PCI_VERIFY="" PCI_VOICE=1 PCI_SUBVERSION="Efar Microsystems" ;; esac ;; esac ;; 0b0b ) PCI_VENDOR="Rhino Equiment Corp" PCI_DRIVER="ftp://ftp.rhinoequipment.com" case $DEVICE in 0105 ) #SUBSYSTEM1="" #SUBSYSTEM2="" PCI_VOICE=1 PCI_VERIFY="" PCI_NAME="Rhino R1T1" PCI_SUBVERSION="" PCI_DESCRIPTION="R1T1 - Singel port T1/E1 PRI card" PCI_MODUL="r1t1" ;; 0205 ) #SUBSYSTEM1="" #SUBSYSTEM2="" PCI_VOICE=1 PCI_VERIFY="" PCI_NAME="Rhino R4FXO" PCI_SUBVERSION="" PCI_DESCRIPTION="R4FXO - 4 channel (FXO)" PCI_MODUL="r4fxo" ;; 0305 ) PCI_VOICE=1 PCI_NAME="Rhino R4T1" PCI_DESCRIPTION="R4T1 - Quad port T1/E1 PRI card" PCI_MODUL="rxt1" ;; 0405 ) PCI_VOICE=1 PCI_NAME="Rhino R8FXX" PCI_DESCRIPTION="R8FXX - 8 channel (FXO or FXS)" PCI_MODUL="rxfxx" ;; 0505 ) PCI_VOICE=1 PCI_NAME="Rhino R24FXX" PCI_DESCRIPTION="R24FXX - 24 channel (FXO or FXS)" PCI_MODUL="rxfxx" ;; 0605 ) PCI_VOICE=1 PCI_NAME="Rhino R2T1" PCI_DESCRIPTION="R2T1 - Dual port T1/E1 PRI card" PCI_MODUL="rxt1" ;; 0705 ) PCI_VOICE=1 PCI_NAME="Rhino R24FXS" PCI_DESCRIPTION="R24FXS - 24 channel (FXS)" PCI_MODUL="r24fxs" ;; esac ;; 10b5) PCI_VENDOR="Foxconn International, Inc" case $DEVICE in d00d ) PCI_VOICE=1 PCI_NAME="T400P" PCI_DESCRIPTION="Quad Span T1 Card" PCI_DRIVER="zaptel default" PCI_MODUL="tor2" CHAN_ZAP=1 ;; esac ;; 10ee ) PCI_VENDOR="Realtek Semiconductor Co., Ltd" case $DEVICE in 0314 ) PCI_VOICE=1 PCI_NAME="Wildcard TE410P/TE405P (1st Gen)" PCI_DESCRIPTION="Quad Span T1/E1 Card (5v version)" PCI_DRIVER="zaptel default" PCI_MODUL="wct4xxp" CHAN_ZAP=1 ;; esac ;; 13D1 ) PCI_VENDOR="Abocom/Magitek" case $DEVICE in 2BD1 ) PCI_VOICE=1 PCI_NAME="" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; 1043 ) PCI_VENDOR="ASUSTeK Computer Inc/Askey" case $DEVICE in 0675 ) PCI_VOICE=1 PCI_NAME="ISDNLink P-IN100-ST-D" #SUBDEVICE="0675 1704" PCI_SUBVERSION="ISDNLink P-IN100-ST-D" PCI_DESCRIPTION="ISDN network controller [HFC-PCI]" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; 0871 ) PCI_VENDOR="German telekom" case $DEVICE in ffa2 ) PCI_VOICE=1 PCI_NAME="T-Concept" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; ffa1 ) PCI_VOICE=1 PCI_NAME="A1T" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; 1051 ) PCI_VENDOR="Motorola" case $DEVICE in 0100 ) PCI_VOICE=1 PCI_NAME="MC145575" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; 15b0 ) PCI_VENDOR="Zoltrix" case $DEVICE in 2bd0 ) PCI_VOICE=1 PCI_NAME="" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; 114f ) PCI_VENDOR="Digi International" case $DEVICE in 0070 ) PCI_VOICE=1 PCI_NAME="DataFire Micro V IOM2 (Europe)" PCI_SUBVERSION="Hauppauge computer works Inc.:ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; 0071 ) PCI_VOICE=1 PCI_NAME="Digi DataFire Micro V (Europe)" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; 0072 ) PCI_VOICE=1 PCI_NAME="Digi DataFire Micro V IOM2 (North America)" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; 0073 ) PCI_VOICE=1 PCI_NAME="Digi DataFire Micro V (North America)" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; 182d ) PCI_VENDOR="Sitecom" case $DEVICE in 3069 ) PCI_VOICE=1 PCI_VERIFY="" PCI_NAME="DC-105 V2" PCI_SUBVERSION="ISDN network controller [HFC-PCI]" PCI_DESCRIPTION="" PCI_DRIVER="Bristuff from Junghanns or mISDN" PCI_INSTALL="install-ZAPHFC" PCI_MODUL="zaphfc" CHAN_ZAP=1 CHAN_vISDN=1 CHAN_mISDN=1 ;; esac ;; 12c7 ) PCI_VENDOR="Intel Dialogic" case $DEVICE in 0676 ) PCI_VERIFY="" PCI_VOICE=1 PCI_NAME="d4pciud" PCI_SUBVERSION="Intel Dialogic D/4PCIUF and D/4PCIU4S Combined Media Boards" PCI_DESCRIPTION="FAX only" #SUBSYSTEM="0676 0676" PCI_DRIVER="" PCI_MODUL="" ;; esac ;; # ) # PCI_VENDOR="" # case $DEVICE in # ) # #PCI_VERIFY="" # PCI_NAME="" # PCI_SUBVERSION # PCI_DESCRIPTION="" # PCI_DRIVER="" # PCI_MODUL="" # ;; # esac # ;; esac } Voice_Card_Detect() { Debug "Voice_Card_Detect()" # Check lspci and see if there is one or more voice cards listed... This may not be foolproof. VOICE_CARD_NUMBER=0 PORT_NUMBER=0 NUMBER_CARD_TYPE=0 for SLOT in `lspci -m -n |cut -d \" -f 1` do Debug "SLOT=$SLOT" VENDOR=`lspci -m -n -s $SLOT|cut -d \" -f 4` DEVICE=`lspci -m -n -s $SLOT|cut -d \" -f 6` SVENDOR=`lspci -m -n -s $SLOT|cut -d \" -f 8` SDEVICE=`lspci -m -n -s $SLOT|cut -d \" -f 10` Voice_Card_Type $VENDOR $DEVICE $SVENDOR $SDEVICE if [ $PCI_VOICE ] then ((VOICE_CARD_NUMBER++)) Debug "VOICE_CARD_NUMBER=$VOICE_CARD_NUMBER" PCI_VOICE_SLOT[$VOICE_CARD_NUMBER]=$SLOT PCI_VOICE_VENDOR[$VOICE_CARD_NUMBER]=$PCI_VENDOR PCI_VOICE_NAME[$VOICE_CARD_NUMBER]=$PCI_NAME PCI_VOICE_SUBVERSION[$VOICE_CARD_NUMBER]=$PCI_SUBVERSION PCI_VOICE_DESCRIPTION[$VOICE_CARD_NUMBER]=$PCI_DESCRIPTION PCI_VOICE_DRIVER[$VOICE_CARD_NUMBER]=$PCI_DRIVER PCI_VOICE_INSTALL[$VOICE_CARD_NUMBER]=$PCI_INSTALL PCI_VOICE_MODUL[$VOICE_CARD_NUMBER]=$PCI_MODUL PCI_VOICE_VERIFY[$VOICE_CARD_NUMBER]=$PCI_VERIFY if [ $PCI_MODUL ] then if [ `lsmod | grep -c -w $PCI_MODUL` -eq 0 ] then MOD_VOICE_INSTALLED[$VOICE_CARD_NUMBER]="NO" if [ $PCI_INSTALL ] then INSTALL_SCRIPT[$VOICE_CARD_NUMBER]=$PCI_INSTALL fi else MOD_VOICE_INSTALLED[$VOICE_CARD_NUMBER]="YES" fi else MOD_VOICE_INSTALLED[$VOICE_CARD_NUMBER]="UNKNOWN" fi Debug "PCI_VENDOR=$PCI_VENDOR" Debug "PCI_NAME=$PCI_NAME" Debug "PCI_SUBVERSION=$PCI_SUBVERSION" Debug "PCI_DESCRIPTION=$PCI_DESCRIPTION" Debug "PCI_DRIVER=$PCI_DRIVER" Debug "PCI_INSTALL=$PCI_INSTALL" Debug "PCI_MODUL=$PCI_MODUL" else Debug "SLOT=$SLOT" Debug "VENDOR=$VENDOR" Debug "DEVICE=$DEVICE" Debug "SVENDOR=$SVENDOR" Debug "SDEVICE=$SDEVICE" fi done } Voice_Modul_Detect() { Debug "Voice_Modul_Detect()" # Check lspci and see if there is one or more voice cards listed... This may not be foolproof. VOICE_MODUL_NUMBER=0 PORT_NUMBER=0 NUMBER_MODULE_TYPE=0 for SLOT in `lspci -m -n |cut -d \" -f 1` do Debug "SLOT=$SLOT" VENDOR=`lspci -m -n -s $SLOT|cut -d \" -f 4` DEVICE=`lspci -m -n -s $SLOT|cut -d \" -f 6` SVENDOR=`lspci -m -n -s $SLOT|cut -d \" -f 8` SDEVICE=`lspci -m -n -s $SLOT|cut -d \" -f 10` Voice_Card_Type $VENDOR $DEVICE $SVENDOR $SDEVICE if [ $PCI_VOICE ] then if [ $PCI_MODUL ] then Debug "Modul $PCI_MODUL detectet, checking for duplicats" Debug "VOICE_MODUL_NUMBER =$VOICE_MODUL_NUMBER" if [ $VOICE_MODUL_NUMBER -eq 0 ] then Debug "First Modul =$PCI_MODUL" ((VOICE_MODUL_NUMBER++)) PCI_MODUL[$VOICE_MODUL_NUMBER]=$PCI_MODUL Debug "${PCI_MODUL[$VOICE_MODUL_NUMBER]}" else COUNT=1 while [ $COUNT -le $VOICE_MODUL_NUMBER ] do Debug "COUNT =$COUNT" Debug "PCI_MODUL[$COUNT]}=${PCI_MODUL[$COUNT]}" Debug "PCI_MODUL =$PCI_MODUL" if [ ${PCI_MODUL[$COUNT]} != $PCI_MODUL ] then Debug "New Modul Found $PCI_MODUL" ((VOICE_MODUL_NUMBER++)) PCI_MODUL[$VOICE_MODUL_NUMBER]=$PCI_MODUL COUNT=$VOICE_MODUL_NUMBER fi ((COUNT++)) done fi fi fi done } Display_Modul(){ Debug "Display_Modul()" if [ $VOICE_MODUL_NUMBER -eq 0 ] then Debug "No Modules detectet" return fi COUNT=1 while [ $COUNT -le $VOICE_MODUL_NUMBER ] do Debug "VOICE_MUDUL_NUMBER = $COUNT" Debug "MODUL = ${PCI_MODUL[$COUNT]}" Say ${PCI_MODUL[$COUNT]} ((COUNT++)) done } Voice_Card_Display() { Debug "Voice_Card_Display()" # ------------------------------------------- # Display and confirm what we are about to build # ------------------------------------------- if [ $HTML ] then Html_Header fi Say "-----------------------------------------------------" if [ $VOICE_CARD_NUMBER -eq 0 ] then Say "No Voice interface found" Say "" Say "If you have a Voice interface installed" Say "then plaes e-mail to $EMAIL" Say "with these information" Say "" Say "Name of the card" Say "Manufactor of the card" Say "lspci" Say "lspci -n -m" Say "lsmod" Say "-----------------------------------------------------" fi COUNT=1 while [ $COUNT -le $VOICE_CARD_NUMBER ] do Say "VOICE_CARD_NUMBER = $COUNT" Say "PCI_ID = ${PCI_VOICE_SLOT[$COUNT]}" Say "VENDOR = ${PCI_VOICE_VENDOR[$COUNT]}" Say "NAME = ${PCI_VOICE_NAME[$COUNT]}" Say "SUBVERSION = ${PCI_VOICE_SUBVERSION[$COUNT]}" Say "DESCRIPTION = ${PCI_VOICE_DESCRIPTION[$COUNT]}" Say "DRIVER = ${PCI_VOICE_DRIVER[$COUNT]}" Say "INSTALL SCRIPT = ${PCI_VOICE_INSTALL[$COUNT]}" Say "MODUL = ${PCI_VOICE_MODUL[$COUNT]}" Say "LOADED = ${MOD_VOICE_INSTALLED[$COUNT]}" Say "-----------------------------------------------------" if [ $REPORT ] then `lspci -n -m -s ${PCI_VOICE_SLOT[$COUNT]} >> $FILE` Say "-----------------------------------------------------" `lspci -v -s ${PCI_VOICE_SLOT[$COUNT]} >> $FILE` Say "-----------------------------------------------------" fi if [ ${PCI_VOICE_VERIFY[$COUNT]} ] then Debug "Card not verifyed" if [ -f $REPORT_FILE ] then Debug "Reportet Do not auto send report" else Debug "Unreportet, auto send report" NEW_CARD=1 fi fi ((COUNT++)) done if [ $REPORT ] then `lsmod >> $FILE` fi if [ $HTML ] then Html_Footer fi } Voice_Card_Report() { FILE=$REPORT_FILE HTML="" rm -f $FILE 2>&1 Voice_Card_Display Debug "#####################################################" Debug "HTML_FILE=$FILE" Debug `cat $FILE` Debug "#####################################################" mail -s "" $EMAIL < $FILE FILE="" Say "Report is sendt to the developer" Say "-----------------------------------------------------" } Html_Header() { Debug "Html_Header" echo -e "" 2>&1 echo -e "" 2>&1 echo -e "" 2>&1 echo -e "Detectet Asterisk Hardware" 2>&1 echo -e "" 2>&1 echo -e "" 2>&1 } Html_Footer() { Debug "Html_Footer" echo -e "" 2>&1 echo -e "" 2>&1 } Exit_Script() { Debug "Exit_Script()" cd $CURRENT_DIRECTORY exit 0 } Say() { if [ $HTML ] then echo -e "$@
" 2>&1 else if [ $FILE ] then echo -e "$@" >> $FILE 2>&1 else echo -e "$@" 2>&1 fi fi } Debug() { if [ $DEBUG ];then echo -e "$@" 2>&1;fi } Set_Program_Options() { Debug "Set_Program_Options()" while getopts 'a;h;f;m;s;\?;V' ARGUMENTS do case "$ARGUMENTS" in a ) Debug "Option -a AUTO" AUTO=1 ;; h ) Debug "Option -h HELP" HTML=1 ;; r ) Debug "Option -r REPORT" REPORT=1 ;; m ) Debug "Option -r MODUL" MODUL=1 ;; s ) Debug "Do not update" UPDATE="" ;; \? ) Debug "Option ? HELP" Display_Usage ;; V ) Debug "Option V VERSION" Say "$PROGRAM $SCRIPT_VERSION ($SCRIPT_DATE)" Exit_Script ;; * ) Say "Option $ARGUMENTS INVALID" Display_Usage ;; esac done shift $(( $OPTIND-1 )) if [ $# != 0 ] then Say "\n******************************************************************************" Say "$PROGRAM: Unexpected parameters on command line ($@)" Say "******************************************************************************" Display_Usage fi } Display_Usage() { Debug "Display_Usage()" cat <