Zurück   IP-Symcon Community Forum > IP-Symcon 1.0 > Archiv > Anleitungen / Nützliche PHP Scripte

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
  #1 (permalink)  
Alt 17.07.05, 15:38
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,378
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 15:51 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 18.07.05, 10:05
Senior Member
 
Registriert seit: Mar 2005
Ort: Dortmund
Beiträge: 204
Standard

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
Mit Zitat antworten
  #3 (permalink)  
Alt 18.07.05, 11:29
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 3,378
Standard

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
Miniaturansicht angehängter Grafiken
isdnstatus.jpg  
Mit Zitat antworten
  #4 (permalink)  
Alt 19.01.06, 12:41
Senior Member
 
Registriert seit: Jan 2006
Beiträge: 175
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
Mit Zitat antworten
  #5 (permalink)  
Alt 19.01.06, 15:31
Senior Member
 
Registriert seit: Mar 2005
Ort: Dortmund
Beiträge: 204
Talking

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
Mit Zitat antworten
  #6 (permalink)  
Alt 21.01.06, 21:46
Member
 
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;
   }
}
?> 
Mit Zitat antworten
  #7 (permalink)  
Alt 21.01.06, 21:55
Member
 
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.
Mit Zitat antworten
  #8 (permalink)  
Alt 21.01.06, 23:41
Benutzerbild von paresy
Administrator
 
Registriert seit: Feb 2005
Ort: Sarkwitz
Beiträge: 6,370
Standard

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
Mit Zitat antworten
  #9 (permalink)  
Alt 22.01.06, 01:51
Senior Member
 
Registriert seit: Aug 2005
Ort: Nordhessen
Beiträge: 126
Standard

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.
Mit Zitat antworten
  #10 (permalink)  
Alt 22.01.06, 17:55
uwe uwe ist offline
Senior Member
 
Registriert seit: Nov 2005
Beiträge: 416
Standard

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
Mit Zitat antworten
Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
IP-SYMCON und Voicemail (Anrufbeantworter) Schlimmerfinger Allgemeine Diskussion 5 27.05.05 14:04


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0