main/astobj2: Make REF_DEBUG a menuselect item; improve REF_DEBUG output
[asterisk/asterisk.git] / contrib / scripts / autosupport
1 #!/bin/sh
2 #
3 # Autosupport Version 2.1.0
4 # Collect support information
5 #
6 # Copyright (C) 2005-2013, Digium, Inc.
7 #
8 # Written by John Bigelow (support@digium.com)
9 #            Charles Moye (cmoye@digium.com)
10 #            Trey Blancher (trey@digium.com)
11 #
12 # Distributed under the terms of the GNU General Public
13 # License
14 #
15 # usage:
16 # autosupport [prefix]
17 # ARGUMENTS:
18 # prefix - Prefix to tarball. (Referenced as $1)
19 #      Example: autosupport <Your Digium Technical Support Ticket number>
20
21 # Ensure the PATH variable includes '/usr/sbin' and '/sbin'
22 PATH=/usr/sbin:/sbin:${PATH}
23
24 DATE_STAMP=$(date +%F)
25 OUTPUT_FILE=digiuminfo.txt
26 TARBALL_OUTPUT_FILE="digium-info_${DATE_STAMP}.tar"
27 VAR_LIB_LIST_FILE="list-of-varlibasterisk.txt"
28 FILE_PREFIX=
29 FOLDER_PREFIX="${HOME}/"
30 files="n";
31 NONINTERACTIVE=0
32
33
34 # If a prefix is specified on command-line, add it.
35 if (set -u; : $1) 2> /dev/null
36 then
37   if [ $1 = "-h" ] || [ $1 = "--help" ]; then
38     echo
39     echo "Digium autosupport script"
40     echo "Copyright (C) 2005-2013, Digium, Inc."
41     echo "Licensed under the terms of the GNU General Public License"
42     echo
43     echo "usage: autosupport [prefix]"
44     echo "Valid Options:"
45     echo "   [prefix]                   Prefix to apply to output files"
46     echo "                              May be your existing Digium Technical Support Ticket ID"
47     echo "   -n, --non-interactive      Run without requiring user input"
48     echo "   -h, --help                 Show help about options"
49     echo
50     echo "Example:"
51     echo "    autosupport XXXXXXXX"
52     echo "Generates:"
53     echo "    XXXXXXXX_${OUTPUT_FILE}"
54     echo "    XXXXXXXX_${TARBALL_OUTPUT_FILE}"
55     echo
56     exit
57   elif [ $1 = "-n" ] || [ $1 = "--non-interactive" ]; then
58     FILE_PREFIX=
59     NONINTERACTIVE=1
60   else
61     FILE_PREFIX="${FILE_PREFIX}${1}_";
62   fi
63 fi
64
65 MYUID=$(id -u);
66
67 if [ $MYUID -ne  0 ]; then
68   echo "You must be root to run this."
69   exit 1
70 fi
71
72 SUPPORTED_MODULES="wcb4xxp wct4xxp wctc4xxp wctdm wctdm24xxp wcte11xp wcte12xp"
73 RELATED_MODULES="$SUPPORTED_MODULES dahdi_dummy dahdi_transcode dahdi_vpmadt032_loader zaptel ztdummy zttranscode";
74
75 OUTPUT_FILE="${FILE_PREFIX}${OUTPUT_FILE}"
76 TARBALL_OUTPUT_FILE="${FILE_PREFIX}${TARBALL_OUTPUT_FILE}"
77 VAR_LIB_LIST_FILE="${FILE_PREFIX}${VAR_LIB_LIST_FILE}"
78
79 OUTPUT="${FOLDER_PREFIX}${OUTPUT_FILE}"
80 TARBALL_OUTPUT="${FOLDER_PREFIX}${TARBALL_OUTPUT_FILE}"
81 VAR_LIB_LIST="${FOLDER_PREFIX}${VAR_LIB_LIST_FILE}"
82
83 # Done with setup, now start gathering information.
84
85 # function not implemented yet
86 determine_paths()
87 {
88   ASTERISK_PROCESS=$(ps -o cmd -C asterisk | grep asterisk 2> /dev/null)
89 echo "detected process: $ASTERISK_PROCESS";
90   # split on whitespace? or use sed/awk to parse
91   # get first arg which will be path to Asterisk binary - add this to PATH
92   # look for a '-C' if that is present, get the arg after it, and make the tarball collect that directory
93   ## in addition to /etc/asterisk/ or instead of it?
94 }
95
96 collect_digiuminfo()
97 {
98 # Delete existing OUTPUT
99 [ -f $OUTPUT ] && rm -rf $OUTPUT
100
101 # Sanity Checks
102 echo "------------------" >> $OUTPUT;
103 echo "Sanity" >> $OUTPUT;
104 echo "------------------" >> $OUTPUT;
105 md5sum $0 >> $OUTPUT;
106 grep "Autosupport Version" $0 | head -n1 >> $OUTPUT
107 echo >> $OUTPUT;
108 echo >> $OUTPUT;
109 echo -n "Working";
110
111 echo "------------------" >> $OUTPUT;
112 echo "UPTIME : uptime" >> $OUTPUT;
113 echo "------------------" >> $OUTPUT;
114 uptime >> $OUTPUT;
115 echo >> $OUTPUT;
116 echo >> $OUTPUT;
117 echo -n "."
118
119 echo "------------------" >> $OUTPUT;
120 echo "MEMORY : free" >> $OUTPUT;
121 echo "------------------" >> $OUTPUT;
122 free >> $OUTPUT;
123 echo >> $OUTPUT;
124 echo >> $OUTPUT;
125 echo -n "."
126
127 echo "------------------" >> $OUTPUT;
128 echo "KERNEL VERSION : uname -a" >> $OUTPUT;
129 echo "------------------" >> $OUTPUT;
130 uname -a >> $OUTPUT;
131 echo >> $OUTPUT;
132 echo >> $OUTPUT;
133 echo -n "."
134
135 echo "------------------" >> $OUTPUT;
136 echo "VERSION INFO : cat /proc/version" >> $OUTPUT;
137 echo "------------------" >> $OUTPUT;
138 cat /proc/version >> $OUTPUT;
139 echo >> $OUTPUT;
140 echo >> $OUTPUT;
141 echo -n "."
142
143 echo "------------------" >> $OUTPUT;
144 echo "CMDLINE INFO : cat /proc/cmdline" >> $OUTPUT;
145 echo "------------------" >> $OUTPUT;
146 cat /proc/cmdline >> $OUTPUT;
147 echo >> $OUTPUT;
148 echo >> $OUTPUT;
149 echo -n "."
150
151 # Check for loaded Zaptel/DAHDI modules
152 for module in dahdi zaptel; do
153   if [ -d /sys/module/$module ]; then
154     echo "------------------" >> $OUTPUT
155     echo "$module version:" >> $OUTPUT
156     echo "------------------" >> $OUTPUT
157     echo "/sys/module/$module/version: " >> $OUTPUT
158     cat /sys/module/$module/version 2> /dev/null >> $OUTPUT
159     echo "" >> $OUTPUT;
160     echo -n "."
161   fi
162 done
163
164 echo "------------------" >> $OUTPUT;
165 echo "DAHDI TOOLS : dahdi_cfg --help" >> $OUTPUT;
166 echo "------------------" >> $OUTPUT;
167 dahdi_cfg --help 2>&1 | grep "Version" >> $OUTPUT;
168 echo >> $OUTPUT;
169 echo >> $OUTPUT;
170 echo -n "."
171
172 echo "------------------" >> $OUTPUT;
173 echo "DAHDI HARDWARE : dahdi_hardware" >> $OUTPUT;
174 echo "------------------" >> $OUTPUT;
175 dahdi_hardware >> $OUTPUT;
176 echo >> $OUTPUT;
177 echo >> $OUTPUT;
178
179 echo "------------------" >> $OUTPUT;
180 echo "ASTERISK INFO : asterisk -V" >> $OUTPUT;
181 echo "------------------" >> $OUTPUT;
182 echo "asterisk -V:" >> $OUTPUT;
183 asterisk -V >> $OUTPUT;
184 echo >> $OUTPUT;
185 # Add check to see if asterisk is running.
186 if [ -e /var/run/asterisk.ctl ] || [ -e /var/run/asterisk/asterisk.ctl ]; then
187   for command in "show version" "core show version" "pri show version" "dahdi show version" "transcoder show" \
188       "core show uptime" "pri show spans" "misdn show stacks" "zap show channels" "dahdi show status" "dahdi show channels" \
189       "dahdi show channel 1" "core show channels" "skype show version" "skype show licenses" "skype show users" \
190       "skype show hostid" "show g729" "g729 show version" "g729 show licenses" "g729 show hostid" "fax show version" \
191       "fax show licenses" "fax show hostid" "fax show stats" "digium_phones show version" "digium_phones show alerts" \
192                         "digium_phones show applications" "digium_phones show firmwares" "digium_phones show lines" "digium_phones show networks" \
193                         "digium_phones show phones" "digium_phones show sessions" "digium_phones show settings" "digium_phones show translations" ;
194         do
195     echo "asterisk -rx \"$command\"" >> $OUTPUT;
196     asterisk -rx "$command" >> $OUTPUT;
197     echo >> $OUTPUT;
198     echo -n "."
199   done
200   echo >> $OUTPUT;
201 fi
202
203
204 for type in alerts applications firmwares lines networks phones translations; 
205 do 
206         echo "------------------" >> $OUTPUT; 
207         echo "DIGIUM PHONE: $type " >> $OUTPUT; 
208         echo "------------------" >> $OUTPUT; 
209         TEMP=$(asterisk -rx "digium_phones show $type"); 
210         if [ "$type" = "lines" ];
211         then
212                 NUM=$(echo $TEMP | tail -n 1 | awk -F' ' '{print $(NF-4)}');
213                 if [ $NUM -gt 0 ];
214                 then
215                         for l in $(echo $TEMP | sed 's/^--- [[:alpha:]]\+ --- //; 
216                                 s/Lines \(Un-\)\?Mapped to Phones --- //g; 
217                                 s/ Internal//g; 
218                                 s/---- [a-zA-Z0-9 ]\+ ----$//;
219                                 s/--- //g');
220                         do
221                                 asterisk -rx "digium_phones show line $l" >> $OUTPUT;                                                                      
222                                 echo "--------" >> $OUTPUT;                                                                                                                         
223                                 echo >> $OUTPUT; 
224                         done
225                 else
226                         echo "No configurations of type $type..." >> $OUTPUT;
227                         echo >> $OUTPUT;
228                 fi;
229         elif [ "$type" = "firmwares" ];
230         then
231                 for f in $(echo $TEMP | sed 's/--- Configured Firmware Options --- //');
232                 do
233                         asterisk -rx "digium_phones show firmware $f" >> $OUTPUT;
234                         echo "--------" >> $OUTPUT;                                                                                                                         
235                         echo >> $OUTPUT; 
236                 done
237         elif [ "$type" = "translations" ];
238         then
239                 for t in $(echo $TEMP | sed 's/--- Translation tables ---//');
240                 do
241                         asterisk -rx "digium_phones show translation $t" 
242                 done
243         else
244                 NUM=$(echo $TEMP | tail -n 1 | awk -F' ' '{print $(NF-3)}'); 
245                 if [ $NUM -gt 0 ]; 
246                 then   
247                         for t in $(echo $TEMP | sed 's/^--- [[:alpha:]]\+ --- //; 
248                                                                                                                                          s/---- [a-zA-Z0-9 ]\+ ----$//
249                                                                                                                                          s/---- Digium Phones ---- //'); 
250                         do 
251                                 asterisk -rx "digium_phones show $(echo $type | sed 's/s\b//') $t" >> $OUTPUT; 
252                                 echo "--------" >> $OUTPUT; 
253                                 echo >> $OUTPUT; 
254                         done; 
255                 else 
256                         echo "No configurations of type $type..." >> $OUTPUT;
257                         echo >> $OUTPUT;
258                 fi;
259         fi;
260 done;
261 echo >> $OUTPUT;
262
263
264 echo "------------------" >> $OUTPUT;
265 echo "OTHER INFO : cat /etc/*{issue,release,version}*" >> $OUTPUT;
266 echo "------------------" >> $OUTPUT;
267 for file in $(ls /etc/*issue* /etc/*release* /etc/*version* \
268   /etc/*motd* /etc/asterisknow-version /dev/zap/ /dev/dahdi/ \
269   2> /dev/null); do
270   if [ -f $file ]; then
271     echo "$file:" >> $OUTPUT;
272     cat $file >> $OUTPUT;
273     echo >> $OUTPUT;
274     echo -n "."
275   fi
276 done
277 echo >> $OUTPUT;
278
279 echo "------------------" >> $OUTPUT;
280 echo "TOP : top -bn1" >> $OUTPUT;
281 echo "------------------" >> $OUTPUT;
282 top -bn1 >> $OUTPUT;
283 echo >> $OUTPUT;
284 echo >> $OUTPUT;
285 echo -n "."
286
287 echo "------------------" >> $OUTPUT;
288 echo "RUNNING PROCESSES : ps aux" >> $OUTPUT;
289 echo "------------------" >> $OUTPUT;
290 ps aux >> $OUTPUT;
291 echo >> $OUTPUT;
292 echo >> $OUTPUT;
293 echo -n "."
294
295 echo "------------------" >> $OUTPUT;
296 echo "INTERRUPTS : cat /proc/interrupts" >> $OUTPUT;
297 echo "------------------" >> $OUTPUT;
298 cat /proc/interrupts >> $OUTPUT;
299 echo -n "."
300 sleep 2;
301 echo "---------- sleep(2) ----------" >> $OUTPUT;
302 cat /proc/interrupts >> $OUTPUT;
303 echo >> $OUTPUT;
304 echo >> $OUTPUT;
305 echo -n "."
306
307 echo "------------------" >> $OUTPUT;
308 echo "DAHDI SCAN : dahdi_scan" >> $OUTPUT;
309 echo "------------------" >> $OUTPUT;
310 dahdi_scan >> $OUTPUT;
311 echo >> $OUTPUT;
312 echo >> $OUTPUT;
313 echo -n "."
314
315 echo "----------------------------" >> $OUTPUT;
316 echo "CAT OF DAHDI/ZAPTEL CHANNELS : cat /proc/dahdi/" >> $OUTPUT;
317 echo "----------------------------" >> $OUTPUT;
318 for tech in dahdi zaptel zap; do
319   if [ -d /proc/$tech/ ]; then
320     for file in $(ls /proc/$tech/ 2> /dev/null); do
321       echo "----------------------------" >> $OUTPUT;
322       echo "/proc/$tech/$file:" >> $OUTPUT;
323       cat /proc/$tech/$file >> $OUTPUT;
324       echo >> $OUTPUT;
325       echo -n "."
326     done
327   fi
328 done
329 echo >> $OUTPUT;
330
331 echo "------------------" >> $OUTPUT;
332 echo "DMESG OUTPUT : dmesg" >> $OUTPUT;
333 echo "------------------" >> $OUTPUT;
334 dmesg >> $OUTPUT;
335 echo >> $OUTPUT;
336 echo >> $OUTPUT;
337 echo -n "."
338
339 echo "------------------" >> $OUTPUT;
340 echo "LOADED MODULES : lsmod" >> $OUTPUT;
341 echo "------------------" >> $OUTPUT;
342 lsmod >> $OUTPUT;
343 echo >> $OUTPUT;
344 echo >> $OUTPUT;
345 echo -n "."
346
347 # Grab the parameters for each module
348 for mod in $SUPPORTED_MODULES; do
349   if [ -d /sys/module/$mod ]; then
350     echo "------------------" >> $OUTPUT
351     echo "$mod parameters" >> $OUTPUT
352     echo "------------------" >> $OUTPUT
353     echo "/sys/module/$mod/parameters:" >> $OUTPUT
354     for param in $(ls /sys/module/$mod/parameters/ /sys/module/$mod/ 2> /dev/null); do
355       if [ -f /sys/module/$mod/parameters/$param ]; then
356         echo -n "$param:  " >> $OUTPUT
357         cat /sys/module/$mod/parameters/$param 2> /dev/null >> $OUTPUT
358       elif [ -f /sys/module/$mod/$param ]; then
359         # Handle Zaptel doing it differently
360         echo -n "$param:  " >> $OUTPUT
361         cat /sys/module/$mod/$param 2> /dev/null >> $OUTPUT
362       fi
363       echo -n "."
364     done
365     echo >> $OUTPUT
366   fi
367 done
368
369 echo "------------------------" >> $OUTPUT;
370 echo "DAHDI/ZAPTEL MODULE INFO : modinfo" >> $OUTPUT;
371 echo "------------------------" >> $OUTPUT;
372 for file in $(ls /lib/modules/$(uname -r)/dahdi/*.ko \
373   /lib/modules/$(uname -r)/dahdi/*/*.ko\
374   /lib/modules/$(uname -r)/extra/*.ko \
375   /lib/modules/$(uname -r)/extra/*/*.ko \
376   /lib/modules/$(uname -r)/misc/*.ko \
377   /lib/modules/$(uname -r)/misc/*/*.ko 2> /dev/null); do
378   if [ -f $file ]; then
379     echo "------------------------" >> $OUTPUT;
380     modinfo $file >> $OUTPUT;
381     echo >> $OUTPUT;
382     echo -n "."
383   fi
384 done
385 echo "------------------------" >> $OUTPUT;
386 echo >> $OUTPUT;
387
388 echo "------------------" >> $OUTPUT;
389 echo "PCI LIST : lspci -vvvb" >> $OUTPUT;
390 echo "------------------" >> $OUTPUT;
391 lspci -vvvb >> $OUTPUT;
392 echo >> $OUTPUT;
393 echo >> $OUTPUT;
394 echo -n "."
395
396 echo "------------------" >> $OUTPUT;
397 echo "PCI LIST(no lookup) : lspci -vvvbn" >> $OUTPUT;
398 echo "------------------" >> $OUTPUT;
399 lspci -vvvbn >> $OUTPUT;
400 echo >> $OUTPUT;
401 echo >> $OUTPUT;
402 echo -n "."
403
404 echo "------------------" >> $OUTPUT;
405 echo "CPU INFO : cat /proc/cpuinfo" >> $OUTPUT;
406 echo "------------------" >> $OUTPUT;
407 cat /proc/cpuinfo >> $OUTPUT;
408 echo >> $OUTPUT;
409 echo >> $OUTPUT;
410 echo -n "."
411
412 echo "----------------------" >> $OUTPUT;
413 echo "VPM FIRMWARE INSTALLED : ls -la /lib/firmware" >> $OUTPUT;
414 echo "----------------------" >> $OUTPUT;
415 $(ls -la /lib/firmware 2> /dev/null >> $OUTPUT);
416 echo >> $OUTPUT;
417 echo >> $OUTPUT;
418 echo -n "."
419
420 echo "------------------" >> $OUTPUT;
421 echo "NETWORK INFO : route -n; iptables -L; ifconfig -a" >> $OUTPUT;
422 echo "------------------" >> $OUTPUT;
423 route -n 2> /dev/null >> $OUTPUT;
424 echo >> $OUTPUT;
425 echo "------------------" >> $OUTPUT;
426 iptables -L 2> /dev/null >> $OUTPUT;
427 echo >> $OUTPUT;
428 echo "------------------" >> $OUTPUT;
429 ifconfig -a 2> /dev/null >> $OUTPUT;
430 echo >> $OUTPUT;
431 echo >> $OUTPUT;
432 echo -n "."
433
434 echo "------------------" >> $OUTPUT;
435 echo "DMIDECODE : dmidecode" >> $OUTPUT;
436 echo "------------------" >> $OUTPUT;
437 dmidecode >> $OUTPUT;
438 echo >> $OUTPUT;
439 echo >> $OUTPUT;
440 echo -n "."
441
442 echo "------------------" >> $OUTPUT;
443 echo "KERNEL CONFIG : cat /path/.config" >> $OUTPUT;
444 echo "------------------" >> $OUTPUT;
445 for file in /lib/modules/$(uname -r)/build/.config /usr/src/linux/.config; do
446   if [ -f $file ]; then
447     echo "------------------" >> $OUTPUT;
448     echo "$file:" >> $OUTPUT;
449     cat $file >> $OUTPUT;
450     echo >> $OUTPUT;
451     echo -n "."
452   fi
453 done
454 echo >> $OUTPUT;
455
456 FIRMWARE_DIR=`grep firmware_package_directory /etc/asterisk/res_digium_phone.conf|sed 's/;.*$//;'|grep firmware|sed 's/firmware_package_directory=//;'`;
457 if [ `echo $FIRMWARE_DIR|egrep -v '^$'|wc -l` -eq "0" ]
458 then
459   FIRMWARE_DIR="/var/www/firmware_package_directory"
460 fi
461 echo "------------------" >> $OUTPUT;
462 echo "FIRMWARE LISTING: ls -al $FIRMWARE_DIR" >> $OUTPUT;
463 echo "------------------" >> $OUTPUT;
464 ls -al $FIRMWARE_DIR >> $OUTPUT;
465 echo >> $OUTPUT;
466
467 FIRMWARE_URLS=`grep file_url_prefix /etc/asterisk/res_digium_phone.conf|sed 's/;.*$//;'|grep file|sed 's/file_url_prefix=//;'`;
468 for FIRMWARE_URL in $FIRMWARE_URLS; do
469   echo "------------------" >> $OUTPUT;
470   echo "REMOTE FIRMWARE LISTING: wget $FIRMWARE_URL" >> $OUTPUT;
471   echo "------------------" >> $OUTPUT;
472   wget "$FIRMWARE_URL" -O- 2>/dev/null >> $OUTPUT;
473   echo >> $OUTPUT;
474 done
475
476 echo "done!"
477 }
478
479 collect_var_lib_list()
480 {
481   # Delete existing VAR_LIB_LIST
482   [ -f $VAR_LIB_LIST ] && rm -rf $VAR_LIB_LIST
483   DIR_LISTING="/var/lib/asterisk/"
484   if [ -d /var/lib/digium ]; then
485     DIR_LISTING="/var/lib/digium/ ${DIR_LISTING}"
486   fi
487   if [ -d /usr/lib/asterisk/modules/ ]; then
488     DIR_LISTING="/usr/lib/asterisk/modules/ ${DIR_LISTING}"
489   fi
490   echo "ls -1aAR $DIR_LISTING > $VAR_LIB_LIST"
491   $(ls -1aR ${DIR_LISTING} | sed -e '/^\.\.*$/d' > $VAR_LIB_LIST);
492 }
493
494 collect_config_backup()
495 {
496   collect_var_lib_list
497   # Include the /etc/asterisk directory, modprobe.conf, and the modprobe.d directory
498   TAR_FILES="/etc/asterisk/ /etc/modprobe.*"
499
500   # Check if any Asterisk licenses are installed
501   # G.729, Fax, ABE, Cepstral, Skype, etc.
502   if [ -d /var/lib/asterisk/licenses/ ]; then
503     TAR_FILES="$TAR_FILES /var/lib/asterisk/licenses/*"
504   fi
505
506   # Check if any Digium licenses are installed
507   # HPEC
508   if [ -d /var/lib/digium/licenses/ ]; then
509     TAR_FILES="$TAR_FILES /var/lib/digium/licenses/*"
510   fi
511
512   # Check if DAHDI is installed
513   if [ -d /etc/dahdi ]; then
514     TAR_FILES="$TAR_FILES /etc/dahdi*"
515   fi
516
517   # Check for Zaptel Module configuration
518   if [ -f /etc/sysconfig/zaptel ]; then
519     TAR_FILES="$TAR_FILES /etc/sysconfig/zaptel*"
520   fi
521
522   # Check for Zaptel Module configuration (alternate location)
523   if [ -f /etc/default/zaptel ]; then
524     TAR_FILES="$TAR_FILES /etc/default/zaptel*"
525   fi
526
527   # Grab the dahdi/zaptel init scripts, in case they have been modified
528   for driver in dahdi zaptel; do
529     if [ -f /etc/init.d/$driver ]; then
530       TAR_FILES="$TAR_FILES /etc/init.d/$driver"
531     fi
532   done
533
534   # Check for zaptel.conf
535   if [ -f /etc/zaptel.conf ]; then
536     TAR_FILES="$TAR_FILES /etc/zaptel*"
537   fi
538
539   # Check for fxotune.conf
540   if [ -f /etc/fxotune.conf ]; then
541     TAR_FILES="$TAR_FILES /etc/fxotune.conf*"
542   fi
543
544   # Check for misdn-init.conf
545   if [ -f /etc/misdn-init.conf ]; then
546     TAR_FILES="$TAR_FILES /etc/misdn-init.conf*"
547   fi
548
549   # Check for digiuminfo.txt
550   if [ -f $HOME/$OUTPUT_FILE ]; then
551     TAR_FILES="$TAR_FILES $OUTPUT_FILE"
552   fi
553
554   # Check for asterisk listing
555   if [ -f $VAR_LIB_LIST ]; then
556     TAR_FILES="$TAR_FILES $VAR_LIB_LIST_FILE"
557   fi
558
559   # Collect System Log Files
560   if [ -f /var/log/dmesg ]; then
561     TAR_FILES="$TAR_FILES /var/log/dmesg"
562   fi
563   if [ -f /var/log/messages ]; then
564     TAR_FILES="$TAR_FILES /var/log/messages"
565   fi
566
567   [ -f $TARBALL_OUTPUT ] && rm -rf $TARBALL_OUTPUT
568   [ -f $TARBALL_OUTPUT.gz ] && rm -rf $TARBALL_OUTPUT.gz
569
570   echo "tarring: tar -chvf ${TARBALL_OUTPUT} $TAR_FILES"
571   cd $HOME && tar -chvf $TARBALL_OUTPUT $TAR_FILES
572   echo "gzipping $TARBALL_OUTPUT"
573   gzip $TARBALL_OUTPUT
574 }
575
576 collect()
577 {
578   echo "This may take up to half a minute to run. Please be patient."
579   collect_digiuminfo;
580   collect_config_backup;
581
582   # ensure the output was written
583   if [ -f $TARBALL_OUTPUT.gz ]; then
584     clear;
585     echo;
586     echo;
587     echo "Tarball has been stored to:"
588     echo "$TARBALL_OUTPUT.gz"
589     echo "Please send this file to an email case you already"
590     echo "have open with Digium Tech Support."
591   else
592     echo;
593     echo;
594     echo "An error has occurred in capturing information."
595     echo "$TARBALL_OUTPUT.gz was not found."
596     echo;
597     echo "Please investigate your system, and send the output"
598     echo "above to your Digium Technical Support Ticket."
599   fi
600 }
601
602 clear;
603
604 if [ $NONINTERACTIVE -eq 1 ]; then
605   collect;
606 else
607   echo
608   echo "This script will try to collect the following pieces of"
609   echo "information from your system."
610   echo
611   echo "1. Information about your system such as:"
612   echo "pci listing, dmesg, running processes, and kernel version"
613   echo
614   echo "2. A backup of elements of your configuration such as:"
615   echo "asterisk config files, license files, loaded dahdi/zaptel module"
616   echo "parameters, and other asterisk/dahdi/zaptel related files."
617   echo
618   echo "Collect this information [y/n] ? "
619   read files;
620
621   if [ "$files" = "y" ] || [ "$files" = "yes" ]; then
622     collect;
623   else
624     clear;
625     echo;
626     echo "User selected not to continue."
627   fi
628 fi
629 exit