Parent Directory
|
Revision Log
Revision 89 - (view) (download)
| 1 : | jhermanski | 89 | #!/bin/bash |
| 2 : | # | ||
| 3 : | # validate_controlled_conf.agi | ||
| 4 : | # | ||
| 5 : | # See if the desired ID is in the controlled conference database. | ||
| 6 : | # Return boolean VALID_PIN and numerical id CONTROLLED_CONF_ID if | ||
| 7 : | # it is found. | ||
| 8 : | # | ||
| 9 : | # Use the Linux "lockfile" command to control concurrent access | ||
| 10 : | # | ||
| 11 : | #set -x | ||
| 12 : | |||
| 13 : | declare -a array | ||
| 14 : | while read -e ARG && [ "$ARG" ] ; do | ||
| 15 : | array=(` echo $ARG | sed -e 's/://'`) | ||
| 16 : | export ${array[0]}=${array[1]} | ||
| 17 : | done | ||
| 18 : | |||
| 19 : | checkresults() { | ||
| 20 : | while read line | ||
| 21 : | do | ||
| 22 : | case ${line:0:4} in | ||
| 23 : | "200 " ) echo $line >&2 | ||
| 24 : | return;; | ||
| 25 : | "510 " ) echo $line >&2 | ||
| 26 : | return;; | ||
| 27 : | "520 " ) echo $line >&2 | ||
| 28 : | return;; | ||
| 29 : | * ) echo $line >&2;; #keep on reading those Invlid command | ||
| 30 : | #command syntax until "520 End ..." | ||
| 31 : | esac | ||
| 32 : | done | ||
| 33 : | } | ||
| 34 : | |||
| 35 : | |||
| 36 : | # Have conference IDs 111 - 116. Our "database" looks like this: | ||
| 37 : | # 111 0-N | ||
| 38 : | # 112 0-N | ||
| 39 : | # 113 0-N | ||
| 40 : | # . | ||
| 41 : | # . | ||
| 42 : | # 2nd column is number of people currently in the conference | ||
| 43 : | |||
| 44 : | DBFILE=/var/lib/asterisk/agi-bin/controlledconf_id_db | ||
| 45 : | LOCKFILE=/tmp/controlledconf_id_db.lock | ||
| 46 : | TMPFILE=/tmp/controlledconf_id_db.tmp | ||
| 47 : | |||
| 48 : | IDWANTED=$1 | ||
| 49 : | |||
| 50 : | lockfile $LOCKFILE | ||
| 51 : | |||
| 52 : | echo "SET VARIABLE VALID_PIN F" | ||
| 53 : | checkresults | ||
| 54 : | |||
| 55 : | while read DBLINE | ||
| 56 : | do | ||
| 57 : | THISID=`echo $DBLINE | awk '{print $1}'` | ||
| 58 : | if [ $THISID = $IDWANTED ] | ||
| 59 : | then | ||
| 60 : | NUMCONFEREES=`echo $DBLINE | awk '{print $2}'` | ||
| 61 : | if [ $NUMCONFEREES -gt 0 ] | ||
| 62 : | then | ||
| 63 : | echo "SET VARIABLE VALID_PIN T" | ||
| 64 : | checkresults | ||
| 65 : | echo "SET VARIABLE CONTROLLED_CONF_ID $IDWANTED" | ||
| 66 : | checkresults | ||
| 67 : | fi | ||
| 68 : | fi | ||
| 69 : | done < $DBFILE | ||
| 70 : | |||
| 71 : | rm -f $LOCKFILE | ||
| 72 : | exit 0; | ||
| 73 : | |||
| 74 : |
| No admin address has been configured | ViewVC Help |
| Powered by ViewVC 1.0.8 |