[Gelöst] Bei Anruf einen HTTP-Befehl auslösen

insidERR

Neuer User
Mitglied seit
23 Jan 2020
Beiträge
156
Punkte für Reaktionen
19
Punkte
18
Hallo zusammen,
ich habe als Türöffner per PIN folgendes gebastelt.

Auf einem Server läuft ein kleines, selbstprogrammiertes Tool, welches die Leitung von einem Telefon im Eingangsbereich (Foyer, Nr.888) überwacht.
Die Tür hat einen elektrischen "Schlossschnapper" (wie man es von Haustüren kennt), welcher geöffnet werden kann, wenn man zwei Pins überbrückt.
In der TK (Mitel 470, Office 400) habe ich einen virtuellen Teilnehmer (Türöffner) mit der Durchwahl z.B. 1234 angelegt. Dieser wird auch vom OIP überwacht.

Wenn man nun vom Foyertelefon als Telefonnummer 1234 wählt, registiert das Tool auf dem Server, dass von der Nr im Foyer die Nummer 12345 gewählt wird und schickt ein HTTP-Befehl an ein Gerät im Netzwerk, welches daraufhin ein Relais für 20 Sekunden ansteuert. Das Relais schließt den Schlossschnapper und die Tür kann geöffnet werden.

Problem: das Tool auf dem Server kriegt es nicht immer mit, dass aus dem Foyer die eine bestimmte Nummer gewählt wurde. Passiert z.B. wenn das Foyertelefon neugestartet wurde.
Frage: kann man dieses Konstrukt "WENN Anschluss 888 wählt Nr 1234 DANN HTTP-Befehl http://192.161.4.111/GO-GO-GADGET" auslösen irgendwo in der TK-Anlage realisieren?
Könnte auch damit leben, dass egal von welcher Nr die 1234 gewählt wird der HTTP-Befehl ausgelöst wird.
 
Wenn, dann über i/o über den OIP. Das habe ich aber noch nie gemacht.

Da du ohnehin einen Server dafür im Einsatz hast, könnte als Alternative Asterisk herhalten. Du richtest ein SIP Telefon (1234) ein an dem sich Asterisk registriert. Geht dann ein Anruf auf 1234 ein, lässt du Asterisk auswerten, ob der Ruf von 888 kommt und in dem Fall den HTTP Request ausführen. Das kann z.B. über einen externen Aufruf von curl sein.
 
  • Like
Reaktionen: insidERR
Dafür muss man gar nicht unbedingt so große Geschütze wie Asterisk auffahren. Nur für diese eine kleine Miniaufgabe finde ich Asterisk und die damit verbundene anfängliche steile Lernkurve schon hart.
"Bei Anruf führe Aktion aus" können auch Softphones.
Oder Gebäudeautomationssoftware:
Ansonsten müsste auch über den Weg TAPI/CTI was möglich sein.

Auf welchem OS läuft dein Server denn?

PS:
Da du offenbar programmieren kannst, könntest du auch einfach schauen ob es für deine Programmierumgebung einfach eine SIP-Client-Library gibt, dann hast du direkt alles in einer Hand.
 
Zuletzt bearbeitet:
Hallo chrsto, danke für die Idee.
Von Asterix habe ich hier schon öffter gelesen aber noch nie was damit zu tun gehabt.
Wäre dann praktisch ähnlich wie, das was ich schon gemacht habe.

Mein Tool überwacht über TAPI die das Endgerät Foyer (888). Der TAPI-Treiber scheint aber nicht immer zuverlässig zu funzen.
Fremdtools wären mit Kosten verunden.
Danke auch an sunnyman für die Idee.

Hatte gehofft, dass man es über I/O beim OIP einfach realisieren könnte.
 
Wie gesagt, schau dir den i/o Manager des OIP an. Lt. Schulungsunterlage gibt es da die Möglichkeit Wenn-Dann Szenarien einzurichten. Es gibt auch die Aktion "Webpage" die dort im Beispiel zur Suche in Onlinetelefonbüchern verwendet wird. Das lässt sich bestimmt auch anders einsetzen.
 
  • Like
Reaktionen: insidERR
Als Endanwender habe ich keine Schulungsunterlagen vom Dienstleister erhalten.
Bin froh, dass ich vor paar Jahren mit der Hilfe aus diesem Forum es über die OIP-Toolbox die Funktion "PBXTeamCall" hinbekommen habe, obwohl der Dienstleister "damals" meinte dass es nicht geht.
 
Die Toolbox ist schonmal der richtige Weg.

Dann im i/o Manger Rechtsklick und "Add Action" auswählen, Namen vergeben und als Action type PBXCallState nehmen.
DIe neu angelegte Action dann mit Parametern befüllen:
Subscriber: deine virtuelle Nebenstelle
Call State: Ringing
Clip Filter: 888
Tree Event Selector: Actor Event

Rechtsklick auf die eben Angelegte Action -> Add action, benennen, Action Type Webpage
Parameter befüllen:
URL: http://gogogadget

Das habe ich jetzt anhand der Schulungsunterlage als Trockenübung erstellt. Bitte testen ;).
 
Danke chrsto für die Ausführliche Anleitung.
Klappt so nicht. Irgendwas mache ich falsch.
Der Server in der URL reagiert nicht bzw. kommt da nix an. Wenn ich dieselbe URL im Browsr aufrufe, reagiert der Server.

Foyerueberwachung.png
 
Ich sagte ja, Trockenübung ;).

Nimm mal den Clip filter raus, damit in jedem Fall die Aktion ausgeführt wird.
 
Hatte ich auch schon mal versucht.
Klappt nicht.
Habe auch auf meinem Endgerät bei "URI-Aktion" unter "Abgehoben" die URL eingegeben. Sobald ich den Hörer abnehme, kriegt der Server die Meldung.
 
Ich sehe grade, unter "klingeln lassen" ist bei der der Subscriber leer, da gehört auch die 1234 rein.
 
Ne, bringt auch nix.
BTW: hast du zufällig die ganzen Portnummern, welche für den OIP-Server benötigt werden für die Windows Firewallregel parat?
Habe grad zum Testen in der Firewall die Regel angepasst. Von bestimmten Ports auf Alle umgestellt.
Hat auch nichts gebracht, aber nun sind jetz die ganzen Ports nicht mehr da und TAPI funzt nicht, weil anscheinend nichts durchkommt :-(
 
Dann musst du leider warten, bis jemand vorbei kommt, der das schon mal gemacht hat.


Ports: 2809/80/8080/1061/1070/1074/1112
 
  • Like
Reaktionen: insidERR
OK, trotzdem danke für deine Mühe. Denk, wir sind schon auf dem richtigen Weg. Fehlt bestimmt irgendwo ein Haken oder so.

Nachtrag: ich bin einen Schritt weiter.
Man muss anstatt "Action Type => Webpage" auf "Execute" einstellen.
Dann bei "Command line on" => "curl http://_XY" einstellen.
Bei "Tree event selector" => "Indicator event" anstatt "Actor event"
So wird sofort beim ersten Klingeln die URL aufgerufen.

Mein Problem ist nun, dass ich diesem virtuellen Benutzer eine Bandansage (Voicemail) als Benachrichtigung, dass die Tür geöffnet werden kann, zugeordnet habe.
Das I/O Event wird aber nur ausgelöst, wenn es keine Weiterleitung gibt. Bei Anrufweiterleitung kommt keine Eventauslösung :-(
 
Zuletzt bearbeitet von einem Moderator:
Ist die Umleitung auf den AB sofort? Sonst leite doch erst nach ein paar Sekunden um, dass die virtuelle Nebenstelle erst noch klingelt.
 
Ne, "Anzahl Rufe bis Annahme" ist auf 1 oder auch mal 5. Bringt nix.
Wie auf dem Bild zu sehen, reagiert I/O, aber es wird nicht umgeleitet.
Sobald ich bei "Umleitungstyp" auf "anrufumleitung zu Voicemail" einstelle, wird umgeleitet aber I/O reagiert nicht.
"Automatische Umleitung zu Voicemail" ein/aus bringt auch nix.

2023-10-25 14_42_29-Window.png
 
Ne, "Anzahl Rufe bis Annahme" ist auf 1 oder auch mal 5. Bringt nix.
Das sind die Anzahl der Rufe, die der AB wartet, bis er dran geht. Das Gespräch ist zu dem Zeitpunkt aber schon umgeleitet

Du hast doch weiter unten "Standardumleitung wenn keine Antwort". Dort die Nebenstelle der Voicemail rein, die Sekunden anpassen und testen.
 
Zuletzt bearbeitet:
Habs zu spät gesehen, ich hab das auch mit IO im OIP gemacht, wenn ich von der 101 die 100 anrufe kann ich einen Sonoff schalten.
Allerdings habe ich noch einen IO Broker dazwischen.
bei mir sieht das so aus:
1698339549723.png
1698339589849.png
[Edit Novize: Riesenbilder gemäß der Forumsregeln auf Vorschau verkleinert]
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: insidERR
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.