diff options
Diffstat (limited to 'services/dect_cron_asterisk.php')
-rwxr-xr-x | services/dect_cron_asterisk.php | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/services/dect_cron_asterisk.php b/services/dect_cron_asterisk.php new file mode 100755 index 00000000..06ff2d50 --- /dev/null +++ b/services/dect_cron_asterisk.php @@ -0,0 +1,120 @@ +<?PHP + +include ("./inc/db.php"); +include ("./inc/config.php"); + +//ausfuerungs Ruetmuss (in s) +$StartTimeBeforEvent = (60/4)*60; +$DebugDECT=FALSE; + +//Setting Asterisk +$Content="Engelsystem"; +$IAXserver="Engelsystem:engelengel@10.1.1.1"; + +function DialNumber( $DECTnumber, $TimeH, $TimeM, $Room, $Engeltype) +{ + global $Content, $IAXserver, $ModemEnable; + + $CallFile = "/tmp/call_". date("Ymd_His"). "_$DECTnumber"; + if( $ModemEnable) + { + $file = fopen( $CallFile, 'w' ); + if( $file != FALSE) + { + fputs( $file, "Channel: IAX2/$IAXserver/Engelserver@$Content\n"); + fputs( $file, "Callerid: $Content\n"); + fputs( $file, "Context: $Content\n"); + fputs( $file, "Extension: s\n"); + fputs( $file, "MaxRetries: 3\n"); + fputs( $file, "RetryTime: 10\n"); + fputs( $file, "SetVar: TimeH=$TimeH\n"); + fputs( $file, "SetVar: TimeM=$TimeM\n"); + fputs( $file, "SetVar: DECTnumber=$DECTnumber\n"); + fputs( $file, "SetVar: Room=$Room\n"); + fputs( $file, "SetVar: Engeltype=$Engeltype\n"); + fclose($file); + + system( "cat $CallFile"); + system( "chmod 777 $CallFile"); + system( "mv $CallFile /var/spool/asterisk/outgoing"); + } + } + else + echo "Modem is Disable, number:'$DECTnumber' with the Parameter, Time:'$TimeH:$TimeM', Room:'$Room', Type:'$Engeltype' was called<br>\n"; +} + +function UID2DECT($UID) +{ + global $con; + $SQL = "SELECT DECT FROM `User` WHERE UID='$UID'"; + $Erg = mysql_query($SQL, $con); + return mysql_result($Erg, 0); +} +function RID2Room($RID) +{ + global $con; + $SQL = "SELECT Name FROM `Room` WHERE RID='$RID'"; + $Erg = mysql_query($SQL, $con); + return mysql_result($Erg, 0); +} + +function TID2Engeltype($TID) +{ + global $con; + $SQL = "SELECT Name FROM `EngelType` WHERE TID='$TID'"; + $Erg = mysql_query($SQL, $con); + return mysql_result($Erg, 0); +} + + + +$SQL = "SELECT Shifts.DateS, Shifts.RID, ShiftEntry.UID, ShiftEntry.TID ". + "FROM `Shifts` INNER JOIN `ShiftEntry` ON `Shifts`.`SID` = `ShiftEntry`.`SID` "; +if( $DebugDECT) + $SQL .= "WHERE (Shifts.DateS>'2004-12-27 10:45:00' AND ". + "Shifts.DateS<='2004-12-27 11:00:00');"; +else + $SQL .= "WHERE ((`Shifts`.`DateS`>'". gmdate("Y-m-d H:i:s", time()+3600+120). "') AND ". + "(`Shifts`.`DateS`<='". gmdate("Y-m-d H:i:s", time()+3600+120+$StartTimeBeforEvent). "') );"; + +$Erg = mysql_query($SQL, $con); + +echo mysql_error($con); + +for( $i=0; $i<mysql_num_rows($Erg); $i++) +{ +// echo mysql_result($Erg, $i, "UID"); + if( mysql_result($Erg, $i, "UID")>0) + { + $SQL2 = "SELECT DECT FROM `User` WHERE ( `UID`='". mysql_result($Erg, $i, "UID"). "');"; + $Erg2 = mysql_query($SQL2, $con); + + $Number = mysql_result($Erg2, 0, "DECT"); + if( $Number!="") + { + $TimeH = substr( mysql_result($Erg, $i, "DateS"), 11, 2); + $TimeM = substr( mysql_result($Erg, $i, "DateS"), 14, 2); + $TimeM = substr( mysql_result($Erg, $i, "DateS"), 14, 2) - 5; + if( $TimeM < 0 ) + { + $TimeM += 60; + $TimeH -= 1; + } + if( $TimeH < 0 ) + $TimeH += 24; + + if( strlen( $TimeH) == 1) + $TimeH = "0".$TimeH; + + $Room = RID2Room( mysql_result($Erg, $i, "RID")); + $EngelType = TID2Engeltype( mysql_result($Erg, $i, "TID")); + DialNumber( $Number, $TimeH, $TimeM, $Room, $EngelType); + } + } +} + +return 0; + + +?> + |