+ Antworten
Seite 1 von 8 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 73
  1. #1
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,673

    Standard IP-Symcon Anrufbeantworter

    Dieses Skript stammt von „Schlimmerfinger“.
    Es demonstriert, wie ein Anrufbeantworter zu programmieren ist.
    Wer Lust hat kann es weiter ausbauen: z.B. kann man anhand der Rufnummer (Datenbank?) verschiedene, personenbezogene Ansagetexte abspielen…
    Ich freue mich auf Eure Ideen

    MST

    Tipp: http://de3.php.net/manual/de/function.strlen.php
    int strlen ( string str ) / Gibt die Länge der Zeichenkette string zurück.
    Ist $callnum z.B. 2-stellig dann handelt es sich um einen internen Anruf (bei einer TK-Anlage)
    und man kann dies im Skript entsprechend berücksichtigen.
    PHP-Code:
    <?
    /*
    *******************************
     IP-SYNCOM Event Scripting
    *******************************
    */

    //File: Voicemail.ips.php
    // Trigger: "ISDNStatus"
    $buffer GetValueString("ISDNStatus");

    if(
    $buffer=="") {
       exit;
    }
    $items explode(chr(13).chr(10), $buffer);
    foreach(
    $items as $item) {

    // siehe: http://de.php.net/manual/de/function.substr.php
    // substr -- Gibt einen Teil eines Strings zurück
    // string substr ( string string, int start [, int length] )

    // wer hat angerufen?
     
    if (substr($item013) == "CallingNumber"){           // nach "CallingNumber" suchen
       
    $callnum substr($item1420);                    // der Rest ist die Telefonnummer
     
    }

    // hier wird der Status ausgewertet und der eigentliche AB gestartet
       
    if ($item == "Connected"){
       
       
    // SK: Datum und Zeit ermitteln
        
    DEFINE("SK_DATE",Date("d.m.Y"));
        
    DEFINE("SK_TIME",Date("H-i-s"));

       
    ISDN_PlayWave(24606,"C:/Programme/IP-SYMCON/sounds/abansage.wav");     //
       
    IPS_Sleep(4000);
       
    ISDN_PlayWave(24606,"C:/Programme/ip-symcon/sounds/dingdong.wav");
       
    IPS_Sleep(3000);
       
    ISDN_RecordWave(24606"C:/Programme/ip-symcon/sounds/Nachricht von ".$callnum." am ".SK_DATE."_".SK_TIME.".wav");

       }
    }

    // Auflegen erkennen und Aufnahme stoppen
    $items explode(chr(13).chr(10), $buffer);
    foreach(
    $items as $item)

    if(
    $item == "Disconnected") {
       
    ISDN_StopRecord(24606);
       }
    //... und den Status-Buffer löschen
    SetValueString("ISDNStatus""");
    exit;

    ?>
    PS:
    Die im o.g. Skript verwendete Instance–ID muß für Ihre Umgebung angepasst werden.
    Benutzen Sie die Tastenkombination CTRL + I um InstanceID Selector zu öffnen und wählen Sie die entsprechende Instance aus.
    Außerdem müssen die WAV-Dateien vorher mit dem Befehl:
    TTS_GenerateFile(37579, "Dies ist eine Ansagetext….", "C:/Programme/ip-symcon/sounds/abansage.wav", 6);
    generiert werden und die Sleep-Zeiten angepasst werden.
    Bei Fragen, Unklarheiten, Anregungen usw. bitte hier posten!!!!
    Geändert von steiner (17.07.05 um 14:51 Uhr)

  2. #2
    Registriert seit
    Mar 2005
    Ort
    Dortmund
    Beiträge
    204

    Hallo,
    eine kleines ;-))) Fragezeichen bleibt aber noch. Das Script lief soweit ganz gut, solang ich von "Intern" anrufe. Mach ich einen Anruf über "extern", wird erstens nichts angezeigt und auch nachfolgende Anrufe von "intern" werden dann nicht mehr erkannt. Der Dateinname lautet dann einfach "Nachricht von Datum-Uhrzeit".wav.
    Könnt Ihr das nochmals verifizieren.

    Danke

    Schlimmerfinger

  3. #3
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,673

    Hallo Schlimmerfinger,

    überprüfe bitte einmal den ISDN-Status:

    Rechte Maustaste in den „Variables“ dann „Evaluate/Modify“ und „Pinned“, damit das Fenster im Vordergrund bleibt (siehe Bild).
    Meine interne Nummer ist 48 und die beiden ** kamen aus meiner TK-Anlage und
    verursachten logischerweise einen Datei Fehler. Ich habe die ** durch ein „i“ für "Intern"ersetzt.

    http://de.php.net/manual/de/function.strtr.php / $callnum = strtr($callnum, "*", "i");

    Ich hoffe, es hilft Dir weiter.

    MST

  4. #4
    Registriert seit
    Jan 2006
    Beiträge
    208

    Standard Keine Rufannahme

    Hab das Scrtipt probiert, nummer kann nummer sehen usw.. aber keine Rufannahme? Muss ich noch etwas konfigurieren, so das der Ruf angenommen wird?

    Gruß

    Lothar

  5. #5
    Registriert seit
    Mar 2005
    Ort
    Dortmund
    Beiträge
    204

    Hallo Lothar,
    Du mußt in der ISDN Instanz sagen, welche Gespräche er annehmen soll. Wenn er alle gespräche annehmen soll trage unten einfach die 0 ein.

    MfG

    Schlimmerfinger

  6. #6
    Registriert seit
    Sep 2005
    Beiträge
    45

    Standard Fehler im Script?

    Hallo zusammen,
    ich kann kaum glauben, daß das Script so bei euch funktioniert.
    Im Teil "Auflegen erkennen und Aufnahme stoppen" fehlen die geschweiften Klammern die den foreach-Block einschließen. Ansonsten wird die if Anweisung nur ein einziges mal überprüft.
    Außerdem muß das "Status-Buffer löschen" innerhalb des if-Blockes ausgeführt werden.

    Anbei meine Korrekturen.

    PHP-Code:
    // Auflegen erkennen und Aufnahme stoppen
    $items explode(chr(13).chr(10), $buffer);
    foreach(
    $items as $item) {

    if(
    $item == "Disconnected") {
       
    ISDN_StopRecord(27194);

       
    //... und den Status-Buffer löschen
       
    SetValueString("IsdnStatus""");
       exit;
       }
    }
    ?> 

  7. #7
    Registriert seit
    Sep 2005
    Beiträge
    45

    Standard Zeitverzögerte Rufannahme

    Kann man irgendwo einstellen, daß die Rufannahme erst nach einer einstellbaren Zeit erfolgt?
    Jetzt geht der Anrufbeantworter beim ersten Klingeln dran. Ich möchte aber, daß der AB erst nach 20 Sekunden abnimmt, dann kann ich vorher den Telefonhörer abnehmen.

  8. #8
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,824

    Zitat Zitat von Thorsten
    Kann man irgendwo einstellen, daß die Rufannahme erst nach einer einstellbaren Zeit erfolgt?
    Jetzt geht der Anrufbeantworter beim ersten Klingeln dran. Ich möchte aber, daß der AB erst nach 20 Sekunden abnimmt, dann kann ich vorher den Telefonhörer abnehmen.
    Noch nicht. Ich werde aber eine dementsprechende Funktion einbauen.

    Grüße, paresy

  9. #9
    Registriert seit
    Aug 2005
    Ort
    Nordhessen
    Beiträge
    140

    Hallo,

    Zitat Zitat von Thorsten
    Kann man irgendwo einstellen, daß die Rufannahme erst nach einer einstellbaren Zeit erfolgt?
    Jetzt geht der Anrufbeantworter beim ersten Klingeln dran. Ich möchte aber, daß der AB erst nach 20 Sekunden abnimmt, dann kann ich vorher den Telefonhörer abnehmen.
    ich habe das Problem bei mir folgendemaßen gelöst:

    Vorraussetzung: Telefonanlage

    • Reinkommender Anruf wird auf Nebenstelle 11 signalisiert.
    • Wenn keiner abnimmt (30 Sek.), dann wird das Gespräch zusätlich an Nebenstelle 31 signalisiert.
    • Nebenstelle 31 ist eine MSN auf die die ISDN-Karte am internen S0-Bus reagiert (Anrufbeantworterscript).

    Funktioniert ohne Probleme.

    Gruß

    DVB-Freak
    Computer sind Geräte die Menschen arbeiten erleichtern, die man(n) ohne Sie nicht hätte.

    IPS 5 auf Raspberry Pi 3 B (stretch), FHZ1300, FS20 System (8 x FHT80), Onewire Sensoren, 12 x NodeMCU mit ESPEasy, DoorPi, Philips HUE, HomeMatic, Sonos usw.

  10. #10
    Registriert seit
    Nov 2005
    Beiträge
    596

    Hallo,
    habe auch interesse an einen anrufbeantworter. habe das script hier ml probiert, aber es gibt noch einige fragen.
    was bedeutet diese zeile
    ISDN_PlayWave(61930
    muss ich da noch eine variable erstellen, oder welche id ist dies ?
    TTS_GenerateFile(37579, "Dies ist eine Ansagetext….", "C:/Programme/ip-symcon/sounds/abansage.wav", 6);
    habe ich schon fertig.
    wenn ich anrufe bekomme ich unter isdnstatus folgendes
    [17:34:01] = 'CallingNumber:1708560402
    CalledNumber:27048
    Disconnected
    '
    mfg uwe

Ähnliche Themen

  1. IP-SYMCON und Voicemail (Anrufbeantworter)
    Von Schlimmerfinger im Forum Allgemeine Diskussion
    Antworten: 5
    Letzter Beitrag: 27.05.05, 13:04