Parent Directory
|
Revision Log
Add Video Demo Startup Kit
1 #!/bin/bash 2 # 3 # enter_new_pin_conf.agi 4 # 5 # Find the first open conference in the pin conference database, 6 # set the number of conferees to one, and voice the conference ID 7 # 8 # Return ID in channel var PIN_CONF_ID. 9 # 10 # Use the Linux "lockfile" command to controll concurrent access 11 # 12 #set -x 13 14 declare -a array 15 while read -e ARG && [ "$ARG" ] ; do 16 array=(` echo $ARG | sed -e 's/://'`) 17 export ${array[0]}=${array[1]} 18 done 19 20 checkresults() { 21 while read line 22 do 23 case ${line:0:4} in 24 "200 " ) echo $line >&2 25 return;; 26 "510 " ) echo $line >&2 27 return;; 28 "520 " ) echo $line >&2 29 return;; 30 * ) echo $line >&2;; #keep on reading those Invlid command 31 #command syntax until "520 End ..." 32 esac 33 done 34 } 35 36 37 # Have conference IDs 101 - 106. Our "database" looks like this: 38 # 101 0-N 39 # 102 0-N 40 # 103 0-N 41 # . 42 # . 43 # 2nd column is number of participants currently in conference. 44 # 45 # We want to get a unique ID, so use a lockfile to insure serial access to the 46 # file. 47 48 DBFILE=/var/lib/asterisk/agi-bin/conf_id_db 49 LOCKFILE=/tmp/conf_id_db.lock 50 TMPFILE=/tmp/conf_id_db.tmp 51 52 lockfile $LOCKFILE 53 54 FIRSTFREE=`gawk '{if ($2 == "0") exit} END {if ($2 != 0) print "NONE"; else print $1;}' $DBFILE` 55 56 if [ $FIRSTFREE != "NONE" ] 57 then 58 cat $DBFILE | sed -e "s/$FIRSTFREE 0/$FIRSTFREE 1/" > $TMPFILE 59 mv $TMPFILE $DBFILE 60 fi 61 62 rm -f $LOCKFILE 63 64 if [ $FIRSTFREE != "NONE" ] 65 then 66 DIGONE=`echo $FIRSTFREE | colrm 2 3` 67 DIGTWO=`echo $FIRSTFREE | colrm 1 1 | colrm 2 2` 68 DIGTHREE=`echo $FIRSTFREE | colrm 1 2` 69 sleep 1 70 echo "SAY DIGITS $DIGONE \"\"" 71 checkresults 72 sleep 1 73 echo "SAY DIGITS $DIGTWO \"\"" 74 checkresults 75 sleep 1 76 echo "SAY DIGITS $DIGTHREE \"\"" 77 checkresults 78 sleep 1 79 fi 80 81 # Make ID available to Dialplan 82 echo "SET VARIABLE PIN_CONF_ID $FIRSTFREE" 83 checkresults 84 85 exit 0; 86 87
| No admin address has been configured | ViewVC Help |
| Powered by ViewVC 1.0.8 |