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