Donnerstag, 27. April 2023

Teams Presence synchronization for a 3CX on premises

 The recent posts about setting Teams presence and being notified about Teams presence changes are the building blocks to synchronize the presence state between MS Teams and our 3CX PBX both ways.

  • a call on Teams sets the 3CX presence state to "Away" if it was "Available" before
  • if Teams becomes "Available" and 3CX state is "Away" => set 3CX to "Available"
  • a call on 3CX tries to set the Teams presence "Busy" - there is some logic behind the scenes, we can't control about overriding "Offline" and "Away" in Teams which comes in handy in this case

Mittwoch, 26. April 2023

Teams Presence Notification via CLI

Receiving phone calls on our regular soft phone while in a Teams meeting is quite annoying. It would be quite useful to set the soft phone presence according to the Teams presence.

In my last blog entry I wrote about how to do this the other way around.

Microsoft moved the notification on Graph changes via webhook from beta to 1.0 some time ago. Yet there are a few obstacles to overcome:

  • the need for a webhook listening service that handles validation
  • since presence state notification contains rich information data needs to be encryted/decrypted
  • for now Presence.Read.All only supports delegated permissions, which requires some sort of user interaction when first acquiring a token

Montag, 24. Oktober 2022

Teams Presence Status via CLI

 Microsoft finally came around at the beginning of this year to open the option to set the (Teams) presence state via their MS Graph API.

For my Asterisk telephony application this comes in handy as I can now set Teams busy when a user is on the phone.

Dienstag, 8. Februar 2022

HAProxy liefert Let'sEncrypt Challenge ohne zusätzlichen Webserver

Leider bieten noch nicht alle Hoster eine DNS API, so dass für Let's Encrypt nur die http-01 Challenge in Frage kommt.

Ich nutze häufig HAProxy als Load-Balancer vor einem Setup mit verschiedenen Web-Server Containern. Um auf die Let's Encrypt Challenge Anfrage zu reagieren, bedarf es allerdings eines Web-Servers, der die URL /.well-known/acme-challenge/<Zufallszeichen> ausliefert.

Da die Zertifikate nur alle 2-3 Monate erneuert werden, ist das durchaus eine Aufgabe, die der HAProxy übernehmen könnte - auch wenn Content-Delivery definitiv nicht seine Aufgabe ist.

Freitag, 4. Februar 2022

Winlogbeat 7.15 mit OpenSearch

 Irgendwie habe ich nie das XPack von Elastic Search verstanden. Unter welchen Umständen kann man das nun kostenlos verwenden, etc.

Da waren die Security Plugins von OpenDistro einfach nützlich und klar. Nun ist OpenDistro inzwischen OpenSearch und Elastic versucht im Überlebenskampf gegen Amazon seine Geschäftsgrundlage mit proprietären Lizenzen zu sichern. Als Nebeneffekt werden künstlich die APIs gegen die die Beats Module laufen auf Elastic-Konformität geprüft.

Die Dashboards, Visualizations, Searches sollten allerdings weitestgehend unabhängig von Elastic Search und Kibana sein (zumindest innerhalb der Version 7). Deshalb habe ich mit ein paar Tricks die aktuellen JSON Dateien von Winlogbeat extrahiert und in OpenDashboards hochgeldaten.