summaryrefslogtreecommitdiff
path: root/board/massive_call/install.sh
blob: 23c7f8b9a4a3c30bbee73eb636edd10e6bd62b0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash

S_HOST="root"
ASTERISK_PATH="/etc/asterisk/"
DAHDI_PATH="/etc/dahdi/"

usage()
{
cat << EOF
usage: $0 OPTION ADDRESS...

This script init at least one target designed by its IP ADDRESS on the NT or TE MODE.

OPTIONS:
   -h         Show this message
   -m=MODE    either 'te' or 'nt'

ADDRESS:
    The IP address of at least one target to update.

EXAMPLE:
    $ $0 -m te 10.42.0.21 10.42.0.23

EOF
}

exit_on_error() {
  if [ ! $? -eq 0 ]
  then
    [ $# -gt 0 ] && echo $*
    exit 1
  fi
}


update()
{
  [ $# -lt 2 ]; exit_on_error "EE update() needs at least two args"
  echo "Updating $2 in $1 mode"

  S_HOST="$TARGET_HOST@$2"

  scp system.conf.$1      $S_HOST:$DAHDI_PATH/system.conf         ; exit_on_error "EE scp system.conf"
  scp chan_dahdi.conf.$1  $S_HOST:$ASTERISK_PATH/chan_dahdi.conf  ; exit_on_error "EE scp chan_d"
  scp extensions.conf     $S_HOST:$ASTERISK_PATH                  ; exit_on_error "EE scp exten"
  ssh -T $S_HOST <<\EOI
dahdi_cfg
/etc/init.d/asterisk restart
exit
EOI
  exit_on_error "Failed to copy files"
}



while getopts ":hm:" OPTION
do
  case $OPTION in
    h)
      usage
      exit
      ;;
    m)
      MODE=$OPTARG
      ;;
    ?)
      usage
      exit 1
      ;;
  esac
done

shift $(( OPTIND -1 ))

if [ $# -lt 1 ]
then
 echo "$0 needs at least one target ADDRESS, exiting"
 usage
 exit 1
fi

TARGET=$*

case "$MODE" in
  "te"|"TE" ) MODE="te";;
  "nt"|"NT" ) MODE="nt";;
  *) echo "Wrong MODE type, exiting"; exit 1;;
esac

set $TARGET
for ip;
do
  update $MODE $ip
done

exit 0

# vim: et:sw=2:sts=2