[tools] / trunk / Video_Conferencing_Startup_Kit_Pkg_2 / agi_scripts / enter_new_pin_conf.agi Repository:
ViewVC logotype

View of /trunk/Video_Conferencing_Startup_Kit_Pkg_2/agi_scripts/enter_new_pin_conf.agi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 89 - (download) (annotate)
Wed Sep 7 14:38:33 2011 UTC (20 months, 2 weeks ago) by jhermanski
File size: 1798 byte(s)
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