Meeting MCU Agent
Wer immer zu einem Skype for Business Meeting einlädt, bestimmt direkt auch über die Meeting-URL die dazu gehörige MCU. Wer On-Premises ist, nutzt die MCU des Home-Pools und wer in der Cloud ist, nutzt die Cloud-MCU. Vielleicht möchte ich aber für gewisse Meetings eine Cloud-MCU-Nutzen, obwohl ich On-Premises arbeite. Diese Seite beschreibt die Überlegungen diese Funktion bereit zu stellen.
Diese Seite beschreibt kein Produkt oder Skript sonder nur meine Gedanken zu einer Lösung für ein seltenes Problem.
Die Anforderung
Ich habe viele Jahre lang Skype for Business, Lync und OCS "On-Premises" installiert und natürlich wurden die Konferenzen auch auf den lokalen Servern gehostet. Das ist manchmal aber ungeschickt, insbesondere wenn es viele externe Teilnehmer gibt. Mit Skype for Business kann ich mir natürlich einen Benutzer in der Cloud anlegen und diese Zugangsdaten auch anderen Personen überlassen, die eine Einladung generieren. So kann ich schon vorgeben, wo eine MCU genutzt wird. Aber schön ist das nicht.
Interessant wird das nun, wenn man z.B. Skype Room Systems installiert, die primär in der Cloud sind. Niemand wird nun vorab in den raum laufen um ein AdHoc-Meeting zu starten und den Link dann per Mail zu versenden.
Eine MCU in der Cloud ist z.B. interessant, wenn die Teilnehmer nicht an einem Standort sondern weltweit verteilt sind und über eigene Internetzugänge sich mit der MCU verbinden. Also stellte sich die Frage wie ein Anwender es erreichen kann, dass der Raum eine Einladung versendet. Wenn der Anwender, der noch "On-Premises" arbeitet eine Konferenz startet, dann wäre der lokale Skype for Business Server die MCU und sicher schlechter geeignet als die Office 365 Plattform.
Überlegung
Der Weg mit einem "Cloud only" Konto, dessen Zugangsdaten jeder weiß ist natürlich keine Lösung. Mal abgesehen von dem Datenschutzthema wäre es auch unpraktisch, dass Anwender sich erst "ummelden" müssten um dann einen passenden Termin einzuladen. Daher habe ich folgende Idee entwickelt:
- Benutzer arbeiten On-Premises mit Skype
for Business Server
z.B. weil Telefonie in der Cloud noch kein Thema ist. - Raumkonto oder Skype Room System ist in der Cloud angemeldet
- Benutzer lädt zu einem Termin
Zuerst lädt er NUR den Raum ein und sendet die Einladung weg. Er sollte dazu einfach eine Termineinladung und keine Skype-Einladung senden. - "vorbehaltliche Terminzusage" mit
Alternativantwort
Nun müssen wir natürlich dafür sorgen, dass der Raum nicht selbst zusagt. (Exchange Calendar Configuration). Stattdessen muss nun der eigene Bot z.B. das Raumpostfach überwachen und Terminanfragen entsprechend bearbeiten. Wenn also eine Anfrage ohne Meeting-URL kommt dann sagt das Skript "unter Vorbehalt" zu. Als Mitteilung addiert es und seine Meeting-URL mit allen anderen Daten, die am besten noch schickt mit Corporate Design formatiert sind, so dass der Einlader diese einfach in seinen Termin übernehmen kann. - Der Einladende aktualisiert den Termin
Er übernimmt die Daten vom Raum in seine Einladung und kann noch weitere Personen einladen. Er sendet den Termin dann wieder aus.
So ist er weiter "Organisator" aber die MeetingURL nutzt die Ressourcen des Raums. - Das bekommt auch der Raum und sagt zu
Damit steht der Termin nun auch im Raum wieder als "belegt" drin aber da nun mehrere Leute enthalten sind, bleibt der Bot stumm
Technisch sollte das machbar sein. Es darf natürlich nicht dazu missbraucht werden. dass Anwender eine „Konferenz-Funktion“ nutzen könne ohne eine entsprechende Lizenzen zu haben. Für den Anwender aber ist es nur ein kleiner zusätzlicher Schritt erst mal nur den Raum einzuladen und auf den "abweichenden Terminvorschlag" zu warten. Es ist sicher auch keine Funktion für jeden Client sondern primär für die Personen, die bewusst ein Meeting in der Cloud aufsetzen wollen. Mit Teams stellt sich die Frage natürlich gar nicht mehr.
Aber Achtung: Da gibt es noch eine kleine Herausforderung: Das Meeting ist dann in der Cloud und der Einladende ist der Benutzer aber Konferenzleiter ist erst mal der Raum. Hier muss also noch nachjustiert werden, indem der Anwender auf dem Skype Room System dann auch die anderen Personen zu Konferenzleitern macht oder Sie den Default ändern.
APIs
Ich habe mich schon mal etwas zu den Quellen informiert. Über UCWA kann man solche Meeting-URLs anfordern und per EWS den Kalender lesen. Es sollte also gar nicht mal so schwer sein so einen einfachen BOT zu bauen.
- Schedule an online meeting
https://msdn.microsoft.com/de-de/skype/ucwa/scheduleanonlinemeeting - Which public Microsoft/Skype APIs can we
use to create meeting urls?
https://GitHub.com/OfficeDev/skype-ios-app-sdk-samples/issues/9 - How can I get the Lync Meeting URL
programmatically in C#?
https://stackoverflow.com/questions/18049575/how-can-i-get-the-lync-meeting-url-programmatically-in-c - Get Lync Online Meetings’ Information
using the EWS Managed API
https://mohamedasakr.wordpress.com/2012/05/16/get-lync-online-meetings-information-using-the-ews-managed-api-2/
Beispiel um die Meetings in einem Kalender zu finden - Schedule an online meeting
https://msdn.microsoft.com/en-us/skype/ucwa/scheduleanonlinemeeting - UCWA: onlineMeetingInvitation
https://msdn.microsoft.com/en-us/skype/ucwa/onlinemeetinginvitation_ref - UCWA: onlineMeeting
https://msdn.microsoft.com/en-us/skype/ucwa/onlinemeeting_ref - Developing UCWA applications for Skype
for Business Online
https://msdn.microsoft.com/en-us/skype/ucwa/developingucwaapplicationsforsfbonline - Get meeting join resources for Skype for
Business Online meetings
https://msdn.microsoft.com/en-us/skype/appsdk/getonlinemeetingjoinresources - Search Skype for Business Web SDK API
Reference : Interface ScheduledMeeting
https://officedev.GitHub.io/skype-docs/Skype/WebSDK/model/api/interfaces/jcafe.scheduledmeeting.html
Andere Überlegungen wie UCMA oder Lync COM-API wären auch denkbar. Der Vollständigkeit halber auch noch ein paar Links, die ich aber nicht sinnvoll erachte:
-
https://msdn.microsoft.com/en-us/skype/trusted-application-api/docs/anonymousmeetingschedule
UCWA geht aber nicht in SfBOnline, nur "OnPremise -
https://msdn.microsoft.com/en-us/skype/appsdk/getmeetingurl
"To create new meetings on demand and send the new meeting URL to your mobile app, you'll write a Trusted Application API-based server application that makes server-to-server REST calls into an Office 365 Skype for Business Online service to create a meeting and get the meeting URL "
Wo ist der Code ?
Den gibt es noch nicht, da es sich hierbei erst mal nur um eine Überlegung ging, wie man Konferenzen gezielt in die Cloud verlagern könnte, während ein Großteil der Anwender noch "On-Premises" arbeitet. Bislang gab es aber noch kein Beauftragung solch eine Lösung auch zu entwickeln und daher gibt es auch noch keinen passenden Code. Ich befürchte aber, dass durch Microsoft Teams der Bedarf nach so einer Lösung eher abnehmen wird. Mit Teams sind alle Meetings sowieso in der Cloud.
Per UCWA sollte es aber schon einfach möglich sein
- Create an application
https://msdn.microsoft.com/en-us/skype/ucwa/createanapplication - Schedule an online meeting
https://msdn.microsoft.com/en-us/skype/ucwa/scheduleanonlinemeeting
Die Funktionen könnten durchaus auch für andere Zwecke hilfreich sein, z.B. um aus anderen Applikationen wie einen Notes-Client o.ä. entsprechende URLs zu generieren und zu versenden.
Weitere Links
- Konferenz ID
- Meeting Join
- See, change, and reset a conference ID
assigned to a use
https://docs.microsoft.com/en-us/skypeforbusiness/audio-conferencing-in-office-365/see-change-and-reset-a-conference-id-assigned-to-a-User - Meeting Update Tool for Skype for
Business and Lync
https://support.office.com/en-us/article/Meeting-Update-Tool-for-Skype-for-Business-and-Lync-2b525fe6-ed0f-4331-b533-c31546fcf4d4