Für die Befehlszeile ists doch ein wenig viel, aber mit ein paar Tricks lässt sich auch das machen. erstelle eine *.vbs-datei mit folgendem Inhalt:
Code: Alles auswählen
Dim LastState, CallEnded, Nummer1, Nummer2, Nummer3
Nummer1 = "<Person1>"
Nummer2 = "<Person2>"
Nummer3 = "<Person3>"
RunMPE "action=dial number=" & Nummer1
WScript.Sleep 15000 '10 Sekunden warten + 5 Sekunden für Anrufaufbau (evt. testen und korrigieren)
ParseLog CallEnded, LastState
If CallEnded = False Then 'Wenn Anruf noch läuft dann auflegen
RunMPE "action=directcommand command=AT+CHUP"
End If
If LastState <> "3" Then 'Wenn Anruf nicht angenommen wurde dann weitere Aktionen starten
RunMPE "action=dial number=" & Nummer2
WScript.Sleep 10000
RunMPE "action=dial number=" & Nummer3
End If
Function ParseLog(CallEnded, LastState) 'Diese Funktion sucht in der Logdatei von MyPhoneExplorer nach den letzten Anrufinfos
Dim fso, f, data, pos
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\Dokumente und Einstellungen\<user>\Anwendungsdaten\MyPhoneExplorer\Debug.txt", 1, True) 'Dieser Pfad muss angepasst werden
data = f.ReadAll
f.Close
CallEnded = False
LastState = ""
pos = InstrRev(data,"[RX]: *ECAV:")
If pos > 0 Then
If Mid(data,pos + 15,1) = "0" Then 'Anruf wurde bereits beendet, vorletzten Eintrag suchen um zu sehen warum
CallEnded = True
pos = InstrRev(data,"[RX]: *ECAV:",pos)
If pos > 0 Then LastState = Mid(data,pos + 15,1) Else LastState = "0"
Else
LastState = Mid(data,pos + 15,1)
End If
ParseLog = True
End If
End Function
Function RunMPE(Arguments)
set shell = CreateObject("WScript.Shell")
shell.run "myphoneexplorer " & Arguments ,3
End Function
Wenn du dieses Script startest dann wird die erste Person angerufen. nach 15 Sekunden wird in der logdatei nachgesehen wie der Anruf verlaufen ist. Wenn er noch läuft dann wird aufgelegt. Danach wird überprüft ob der erste Anruf angenommen wurde, wenn nicht dann werden die anderen Nummern auch noch angewählt. Bei "Besetzt" hätte LastState den Wert "7".
Prinzipiell gibts dabei aber noch drei mögliche Probleme:
- beim ersten Handy sollte die Mailbox deaktiviert werden, weil wenn die Mailbox rangeht dann wird das vom handy als angenommener Anruf gewertet
- Wenn innerhalb der Prozedur das Script nochmal gestartet wird dann könnte es durcheinander kommen
- Es wird immer die komplette Logdatei eingelesen, deshalb sollte sie klein gehalten werden. das kann man erreichen indem man die Einstellung "Verbindungserkennung deaktivieren" setzt und indem man das Programm hin und wieder neustartet.