Status einer externen App in mAirlist verarbeiten

Hi @Tondose,

die Parameter incoming, connect und disconnect sind im D&R Tool einprogrammiert. Phoner ist es gal, was dann in der Batchdatei drin steht. Du kannst eine Batchdatei bei eingehendem Anruf anprechen, in der einfach auch nur Hallo drin steht.

Phoner - Sripteinstellungen

Und somit sendet man dann an das Tool “VoIP-Connect Tool” über die Batchdatei den Parameter mit dem Befehl.

Abendliche Grüße
Nick

1 Like

Was haltet ihr denn davon, einfach mal den Entwickler (Heiko Sommerfeldt) zu fragen?
Da gibt es sogar ein eigenes Forum: Phoner(Lite) Forum - Index

Ja, ich weiß, eine vollkommen abwegige Idee, ich mein’ ja nur…
Einer von euch könnte zum Beispiel… ihr wisst schon.

Einfache Suche: Phoner(Lite) Forum - Phoner und Arduino Uno

Die Antwort war grundsätzlich positiv, aber dann dieser Abschlussatz:

mAirList sagt mir gar nichts.

:cry:

Hi @UliNobbe,

den Beitrag im Forum kenne ich. Daraufhin hatte ich den Entwickler mal angeschrieben und er sagte mir, es über den Weg zu machen, welcher hier ja schon beschrieben wurde (eine Batchdatei über Phoner über den Menüpunkt “externe Applikationen aufzurufen”). Er meinte dann, was über die Batchdatei dann an die Anwendung geschickt wird, muß die Anwendung dann interpretieren können. Daher hatte ich dann damals über das D&R Forum einen der Entwickler angeschrieben und dann ging es los daß er das “VoIP-Connect Tool” von D&R umprogrammiert hat.

Abendliche Grüße
Nick

Wenn ich die Diskussion bis hierhin aber korrekt verstanden habe, lautet die Kernfrage:

“Wie lautet der von PhonerLite ausgesendete Trigger?”

Um den geht es doch. Wenn das mAirList Script auf den “hört” und ihn abfangen kann, sollte der Rest kein Problem sein.
Es geht ja nicht darum, dass mAirList (oder was anderes) gestartet wird, sondern darum, was PhonerLite an Zeichen nach außen sendet - und wie.

Ganz genau, um mehr geht es nicht.

Lg

Hi @UliNobbe,

den Trigger kann man selber festlegen. Phoner schickt den ohne zu fragen raus wie z.B. “incoming, connected, disconnected”.

Phoner schickt den Trigger direkt an die Anwendung selbst.

Abendliche Grüße
Nick

Hm ok, das wusste ich jetzt nicht, dann bliebe also die Frage, wie man in mAirlist eben diesen Trigger “abfängt” um ihn weiter verarbeiten zu können.

Also: Phoner soll beim eingehenden Anruf die Batchdatei 1.bat starten. In dieser steht:

@echo off
set PFAD=C:\Pfad\zur\Datei\
set DATEI=ring.txt
set INHALT=1
echo %INHALT% > %PFAD%%DATEI%

Beim Abheben startet Phoner die Batchdatei 0.bat. In dieser steht:

@echo off
set PFAD=C:\Pfad\zur\Datei\
set DATEI=ring.txt
set INHALT=0
echo %INHALT% > %PFAD%%DATEI%

In mAirList installiere folgendes Skript:

const
  PATH = 'C:\Pfad\zur\Datei\';
  FILENAME = 'ring.txt';

var
  sl: TStringList;

procedure OnLoad;
begin
  EnableTimer(1000);
end;
  
procedure OnTimer;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile(PATH + FILENAME);
    if sl.Text = '1' then
    begin
      // do something;
    end
    else
    begin
      // do something else;
    end;
  finally
    sl.Free;
  end;
end;

begin
end.

Das Skript schaut jetzt sekündlich nach, was sich in der Datei ring.txt tut. Ist der Inhalt 1, geht ein Anruf ein, und es können Maßnahmen ergriffen werden.

Angerufene Grüße

TSD

1 Like

Hi @Tondose

na das werde ich gleich mal testen und schnellstmöglich Rückmeldung geben.

Lg

So richtig scheint das noch nicht zu klappen.

So sieht das komplette Script zum Testen jetzt mal aus

const
  PATH = 'D:\Test\';
  FILENAME = 'ring.txt';

var
  sl: TStringList;

procedure OnLoad;
begin
  EnableTimer(1000);
end;
  
procedure OnTimer;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile(PATH + FILENAME);
    if sl.Text = '1' then
    begin
      ExecuteCommand('PHONE BACKGROUNDCOLOR #00ff00');
    end
    else
    begin
      ExecuteCommand('PHONE BACKGROUNDCOLOR #ff0000');
    end;
  finally
    sl.Free;
  end;
end;

begin
end.

Er schreibt zwar bei Anruf eine 1 und bei abheben eine 0 rein, aber die “if else” Geschichte im Script lässt das ziemlich kalt.

Hmm, ich hatte

SystemLog(sl.Text);

zum Testen eingesetzt, was einwandfrei funktioniert …

Wie gesagt, er schreibt die 1 und die 0 in die ring.txt, aber laut dem Script soll ein einfacher statischer Text bei eingehenden Anrufen auf “grün” wechseln, beim Abheben auf rot. Und das meine ich mit “es funktioniert noch nicht so richtig”

Lg

Mag sein, aber das Skript funktioniert: Setze obige Zeile statt der beiden Kommentare ein.

Ja, hab ich unf soweit funktioniert es. Sagte ja, er schreibt die 1 und die 0 in die ring.txt.
Ich suche mal noch nach ner möglichen Fehlerquelle. Dir auf jeden Fall schon mal ganz großes Danke.

Lg

1 Like

Hi @Tondose ,

der Befehl für das “VoIP-Connect Tool” muss da auch noch irgendwie untergebracht werden, da ja das Airlite auch reagieren soll. Theoretisch bräuchte man dann auch drei Skripte für mein Verständnis, da ja das Airlite auch bedient werden muss für incoming, connected und disconnected.

Mit Phoner selber kann man ja nur eine Datei pro Status ansprechen. Mairlist bräuchte theoretisch auch 3 Zustände.

Button normal grau -> kein Anruf oder Anruf beendet
Button grün oder gelb -> Anruf kommt rein
Button rot -> Anruf ist gerade aktiv

Ich hoffe, daß ich da keinen Denkfehler habe.

Abendliche Grüße
Nick

Aber Du könntest doch Phoner eine Batchdatei starten lassen, die ihrerseits wiederum drei weitere Batchdateien abfeuert.

Stimmt, das Tool müsste da dann auch mit rein und ja, es bedarf 3 Batch Dateien.
Hatte das Script schon entsprechend erweitert, aber Farben ändern sich dennoch nicht.

const
  PATH = 'D:\Test\';
  FILENAME = 'ring.txt';

var
  sl: TStringList;

procedure OnLoad;
begin
  EnableTimer(1000);
end;
  
procedure OnTimer;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile(PATH + FILENAME);
    if sl.Text = '1' then
    begin
    SystemLog(sl.Text);
      ExecuteCommand('PHONE BACKGROUNDCOLOR #00ff00');
    end
    else if sl.Text = '0' then
    begin
    SystemLog(sl.Text);
      ExecuteCommand('PHONE BACKGROUNDCOLOR #ff0000');
     end
    else
    begin
    SystemLog(sl.Text);
      ExecuteCommand('PHONE BACKGROUNDCOLOR #ffffff');       
    end;
  finally
    sl.Free;
  end;
end;

begin
end.

Hi @Tondose,

Du meinst also alle 3 Zustände über eine Datei erfassen und dann über die Datei quasi den Zustand an Mairlist und das VoIP-Connect Tool weiterleiten?

Das wäre natürlich optimal. Ich weiß nur nicht wie das funktionieren soll, da ja leider die Batchdatei bei jeder Statusänderung neu aufgerufen wird und somit dann diese nicht weiss, welchen Status sie jetzt verarbeiten soll?

Abendliche Grüße
Nick

Nein, meine ich nicht. Mehr später.

[Anmerkung]

Lasst mal die Airlite-Kiste an der Stelle bitte außen vor, das haben wir schon in einem anderen Thread.
@deadpool2016xx hat das als extra Thread eröffnet - nicht zuletzt auf meine Bitte hin -, weil es um die Anzeige des Anrufs in mAirList ging. Das wiederum kann ganz unabhängig vom Airlite erfolgen.

Mir ging da so eine Idee von einem erweiterten Button “Anruf” im Kopf rum, und ich dachte, das Script könnte den Status “Klingeln” bzw. “Gespräch” von PhonerLite abgreifen und an den erweiterten Button übergeben.

Die Airlite-spezifischen Kopfschmerzen sollten weiterhin in dem anderen Thread behandelt werden, sonst wird’s chaotisch.
Gerüchteweise soll es hier noch Anwender mit anderen Pulten geben. :wink: