+ Antworten
Ergebnis 1 bis 1 von 1
  1. #1
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,673

    Standard IP-Symcon Mega Vote Event

    … oder Sprachausgabe Teil 3

    Das folgende Beispiel zeigt, wie man einen über die ISDN Capi und DTMF Tönen
    Steuerungsaufgaben mit IP-Symcon realisieren kann.

    Um die Funktionen des folgenden Skripts live zu testen, könnt Ihr folgende Nummer wählen:
    04504 / 715165
    Mit einer Eingabe einer -3- gelangt der Anrufer in das „Vote Menü“, hier kann er abstimmen,
    wie ihm IP-Symcon gefällt. Es kann eine Schulnote von 1 bis 6 vergeben werden und das
    Ergebnis wird auf unserer Webcam - Seite: http://ipswitch.mine.nu/webcam.php veröffentlicht.
    Man könnte auch FS20 Komponenten schalten …

    Die Variable „Flag_ISDN“ dient der Steuerung der Menüführung.
    Mit Hilfe weiterer switch($flagisdn) { case xxx: Anweisungen, kann dieses
    Demoprogramm für eigene Zwecke erweitert werden.
    In „Instances“ wurde zuvor das „ISDN Modul“ hinzugefügt und in unserem Beispiel
    „Accept Calls“ auf „0“ gesetzt, damit das Modul alle Anrufer entgegennimmt.



    Dieses Skript prüft, ab ein Anruf kommt, berechnet den Notendurchschnitt und erzeugt eine WAV-Datei:
    PHP-Code:
    <?
    /*
    *******************************
     IPSwitch Event Scripting
    *******************************
    */
    //File: ISDNStatus.ips.php
    // getriggert druch die Variable: "ISDNStatus"
    $buffer GetValueString("ISDNStatus");
    echo 
    "Buffer: $buffer$";
    if(
    $buffer=="") {
       exit;
    }
    $items explode(chr(13).chr(10), $buffer);
    foreach(
    $items as $item) {
    echo 
    $item;
    // hier wirdder Status ausgewertet...
       
    if ($item == "Connected"){
          
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/wilkommen.wav");
          
    IPS_Sleep(2000);
          
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/hauptmenue.wav");
          
    IPS_Sleep(2000);
          
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/wahl.wav");
          
    SetValueInteger("Flag_ISDN",1);     // Connected
       
    }
       if (
    $item == "Disconnected"){
          
    $flag GetValueInteger("Flag_ISDN");
          if (
    $flag == 32){
             
    $counter GetValueInteger("Vote_Anrufer");
             
    $last =  GetValueInteger("Vote_Last");
             
    $votges GetValueInteger("Vote_Gesamt") + $last;
             
    SetValueInteger("Vote_Gesamt"$votges);
             
    $note = ($votges $counter);
             
    $note number_format($note 1",""," );
             
    SetValueString("Vote_Durchschnitt",  $note);
            
    // echo $counter;
             
    TTS_GenerateFile(37579"Sie waren Anrufer Nummer " .$counter -"!""C:/Programme/ip-symcon/sounds/anrufer.wav"6);
             }
       }
    }
    //... und den Status-Buffer löschen
    SetValueString("ISDNStatus""");
    ?>
    Dieses Skript wertet die DTMF Töne aus:
    PHP-Code:
    <?
    //DTMF Puffer auslesen
    $flagisdn GetValueInteger("Flag_ISDN");
    $buf GetValueString("ISDNDTMFChar");
    //echo "Buffer I: $buf\r\n";
    //echo "Flag: $flagisdn\r\n";

    //Exit bei leeren Buffer
    if ($buf=="") {
     exit;
    }

    //Puffer löschen bei "*"
    if(!(strpos($buf"*") === FALSE)) {
      
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/clear.wav");
      
    ClearBuf();
      
    SetValueInteger("Flag_ISDN",1);      // IPS-Forum
      
    exit;
    }

    //Befehl abarbeiten bei "#"  > # dient als "ENTER"
    //if(!(strpos($buf, "#") === FALSE)) {
       //$buf=substr($buf, 0, strlen($buf)-1); //# löschen
         
    ClearBuf();   //Buffer löschen
          
    switch($flagisdn) {
             case 
    1:                                    // Connected
                
    switch((int)$buf) {
                   case 
    3:
                      
    SetValueInteger("Flag_ISDN",31);      // IPS-Forum
                      
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/voteevent.wav");
                      
    IPS_Sleep(4000);
                      
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/zahl1bis6.wav");
                      
    $vgesamt GetValueInteger("Vote_Anrufer") + 1;
                      
    SetValueInteger("Vote_Anrufer",$vgesamt);
                      exit;
                   default:
                      
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/nofunction.wav");
                }
                exit;
             case 
    31:
                if((int)
    $buf 7) {
                 
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/eingegeben.wav");
                 
    IPS_Sleep(2000);
                 
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/".$buf.".wav");
                 
    IPS_Sleep(1000);
                 
    SetValueInteger("Flag_ISDN",32);      // IPS-Forum
                 
    SetValueInteger("Vote_Last",(int)$buf);
                 
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/registriert.wav");
                 
    IPS_Sleep(2000);
                 
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/anrufer.wav");
                 
    IPS_Sleep(2000);
                 
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/ende.wav");
                 
    IPS_Sleep(2000);
                } else {
                 
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/falsch.wav");
               
    //  SetValueInteger("Flag_ISDN",31);      // IPS-Forum
                
    }
                exit;
             case 
    32:
                
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/auflegen.wav");
                exit;
          }
    //Wenn hier gelandet, falscher Befehl
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/falsch.wav");

    //} // keine # Eingabe

    //Puffer löschen function deklarieren
    function ClearBuf() {
       
    //DTMF Puffer löschen
       
    SetValueString("ISDNDTMFChar","");
    }
    ?>
    Geändert von steiner (10.06.08 um 18:30 Uhr)