Seite wählen

NETWAYS Blog

NWS Jitsi – new features!

One reason, why our apps are so good, is we continuously develop or enable new features for the apps. The security of our apps is very important to us. But we also listen to our customers feedback. A lot messages reached us with new feature requests to improve the NWS Jitsi app.

 

We always take feedback serious and if a feature makes sense, we will release it.

And so we will do the next days. We are currently preparing our platform for two new features, which will increase the level of security in your NWS Jitsi App.

 

1. The complexity feature

If you use names like “test” or “foobar”, it is easy to join your rooms and disturb you and your attendees.
“The room name is unsafe. Unwanted participants may join your conference. Consider securing your meeting using the security button.” – will be shown to you.

 

Of course you will still be able to use simple room names, but maybe you will think of it twice before typing room3?

 

2. The lobby feature

To secure your Jitsi even more, we have another feature ready for you.
Everyone who wants to secure a room, not just with a complex room name and/or a password, can now activate the “lobby” feature.
You can enable at any time for every room, the active moderator can then decide who is allowed to join and who is not.

 

 

With these new features, which you can enable at any time for every room, the active moderator can decide, who is allowed to join and who is not.
This way an unrecognised and unknown random person joining is no longer possible.

Keeping the control over a conference room has never been so easy!

 

 

To activate this feature, just click on the shield in the lower right corner and enable it.

Currently we are working on other new features as well, but sometimes it takes time to develop features in such a way that they meet our standards.
So stay tuned and follow us on twitter to get the latest news.

 

Marius Gebert
Marius Gebert
Systems Engineer

Marius ist seit 2013 bei NETWAYS. Er hat 2016 seine Ausbildung zum Fachinformatiker für Systemintegration absolviert und ist nun im Web Services Team tätig. Hier kümmert er sich mit seinen Kollegen um die NWS Plattform und alles was hiermit zusammen hängt. 2017 hat Marius die Prüfung zum Ausbilder abgelegt und kümmert sich in seiner Abteilung um die Ausbildung unserer jungen Kollegen. Seine Freizeit verbringt Marius gerne an der frischen Luft und ist für jeden Spaß zu...

Videokonferenz – wie funktioniert das?

Während früher für Videokonferenzen dedizierte Soft- und teilweise auch Hardware erforderlich war, klappt das heutzutage mit jedem modernen Browser. Eine Grundvoraussetzung war sicher die heute verfügbare schnellere Hardware. Was früher zwingend nach optimierten Chips verlangte lässt sich heute problemlos in Software gießen und von jeder Smartphone-CPU umsetzen. Wobei unterstützende CPU-Befehlssatzerweiterungen (z.B. für Teilaspekte der Verschlüsselung) und in Hardware gegossene Unterstützung für den ein oder anderen Videocodec natürlich nicht schaden.

Der Großteil der Arbeit wird aber in Software umgesetzt, und die Grundlagen dafür wurden nicht komplett neu erfunden. Man hat auf bewährte Komponenten gesetzt, aber auch ein paar Dinge anders gemacht. Zusammengefasst wird das Ganze unter dem Begriff WebRTC. Dahinter versteckt sich eine ganze Reihe von Komponenten und Standards. Sowohl die IETF als auch das W3C waren und sind hier mit verschiedensten zugehörigen Standards involviert.

Heute möchte ich ein paar Teilaspekte des Ganzen beleuchten, um verständlicher zu machen welche Magie sich hinter diesem Begriff versteckt. Wir werden unter die Lupe nehmen, wie:

  • Webbrowser via JavaScript Zugriff auf Kamera und Mikrofon ermöglichen
  • mögliche Übertragungswege ermittelt werden (was “dank” NAT & Co nicht trivial ist)
  • mögliche Datenströme zwischen den Teilnehmern signalisiert werden
  • die eigentlichen Medienstreams übertragen werden
  • Verschlüsselung zustande kommt

Zugriff auf Kamera und Mikrofon

Der Zugriff auf Kamera etc ist bei der ganzen Geschichte der einfachste Teil. Alle namhaften Browser stellen Media Devices / Media Streams bereit. Wer damit experimentieren möchte kann sich entsprechend einlesen oder einfach mal dieses Schnipsel ausprobieren. Einfach in eine HTML-Datei speichern und im Browser öffnen. Wenn alles klappt, dann sollte es in etwa so aussehen:

Wenn jedoch z.B. der Zugriff auf die Kamera nicht gewährt wird, kümmert sich die Fehlerbehandlung darum, eine aussagekräftige Fehlermeldung prominent zu platzieren:

Desktopsharing ist übrigens mittlerweile ähnlich simpel, hier eine kleine Testseite von Mozilla.

Ice Ice Baby

Der nächste Schritt ist schon komplizierter. Eine provisorische Kommunikation zwischen zwei Browserfenstern lässt sich mit Hilfe von Google, Stackoverflow & Co vielleicht noch relativ einfach bewerkstelligen. Eine ernsthafte Software für Videokonferenzen ist aber erstens harte Arbeit und verlangt zweitens auch serverseitig nach entsprechenden Ressourcen.

Raketentechnik passt nicht in einen Blog-Post, aber die grundsätzlichen Prinzipien des Verfahrens möchte ich hier vermitteln:

STUN wird benutzt um mögliche eigene Kandidaten für potentielle Sessions zu ermitteln. Im Idealfall ergibt sich daraus die Möglichkeit, die eigentlichen RTP-Ströme direkt zwischen den Clients zu vermitteln. Dadurch entsteht abgesehen von der Signalisierung auf den Servern keine Last. Das lief schon vor über 10 Jahren wunderbar, und ermöglichte SIP-Providern den Großteil des Traffics gar nicht selbst stemmen zu müssen.

Während das mit dem User hinter einem x-beliebigen DSL-NAT-Router meist wunderbar klappt, scheitert das spätestens, wenn man an ein symmetrisches NAT gerät. Während man als SIP-Anbieter früher recht trickreich versuchte, dann die vermittelten Sessions on-the-fly umzuschreiben um die Datenströme dann über Proxy-Server mit öffentlichen IPs zusammenzuschalten, gibt es mittlerweile zum Glück Standards für dieses Verfahren.

Eine Kernkomponente stellen TURN-Server dar, welche bei Bedarf ein Relay auf sichere Weise bereitstellen können. Zudem wurde das ganze Verfahren zum Verbindungsaufbau unter dem Namen Interactive Connectivity Establishment (ICE) standardisiert und wird für die Kommunikation im Browser vorausgesetzt bzw mitgeliefert.

Wobei Browser hier durchaus raffiniert vorgehen und auch Erweiterungen wie Trickle zur Beschleunigung des Ganzen implementieren.

Signalisierung

ICE bringt uns direkt zum nächsten Thema, die Signalisierung. Informationen über mögliche Transportwege müssen nämlich zwischen den Teilnehmern ausgetauscht werden. Und das nicht nur beim Gesprächsaufbau, sondern auch mittendrin. Schaltet jemand sein Videosignal an oder aus, ergibt das eine Änderung an den benutzten Sessions. Wird die Videoqualität mitten im Gespräch erhöht oder verringert (passiert meist automatisch), dann werden ebenfalls neue Sessions ausgehandelt.

Mögliche Kandidaten für Streams und ausgewählte ebensolche müssen irgendwie definiert und beschrieben werden. Hier kommt ein alter Bekannter aus der SIP-Welt zum Einsatz, nämlich das Session Description Protocol (SDP). Die Art und Weise wie es in den Browsern in JSON eingepackt wird sieht zwar bereits vor, es irgendwann potentiell durch eine Alternative ersetzen zu können. Stand heute ist es aber meines Wissens die einzige Variante, die zum Einsatz kommt.

Einigen müssen sich die Teilnehmer auf Audio und/oder Videocodecs, die Anzahl der involvierten Streams – und nicht zuletzt die zugehörigen Transportwege. Während SDP bei SIP einen der möglichen Inhalte eines SIP-Pakets darstellt, wird es bei WebRTC hier komplizierter. Im Grunde kann jeder Anbieter selbst entscheiden, wie er die Session-Informationen welche sein JavaScript-Code in den jeweiligen Browsern ermittelt zwischen denen und/oder seiner Videoplattform austauscht. Theoretisch können auf dem Signalisierungsweg zwischen den Teilnehmern auch mehrere Server stehen. Auch der Transport zwischen diesen ist im Grunde nicht vorgeschrieben. Grundsätzlich nutzt man SIP (eher zwischen Servern) und/oder (vorzugsweise) XMPP.

Spätestens auf dem Weg zum Browser nutzt man besser einen Standard wie XMPP via BOSH oder Websockets, bei XMPP kommt zudem eine Erweiterung namens Jingle zum Einsatz. Zwingend ist aber die Unterstützung von JSEP, dem JavaScript Session Establishment Protocol. Um jetzt nicht zu sehr ins Detail zu gehen: stellt euch JSEP einfach wie einen JSON-Wrapper für SDP vor. Der Standard beschreibt nicht nur das einzelne Datenpaket und dessen Format, sondern auch den ganzen Ablauf des Auf- und Abbaus von Sessions. Wer es wirklich im Detail verstehen will kommt eh nicht umhin, sich die ganzen (vielen) involvierten Drafts und RFCs zu Gemüte zu führen.

Datenströme – Media Streams

Nachdem unsere Teilnehmer jetzt endlich wissen, was sie wohin senden (und woher empfangen) können, geht es endlich los: wir schicken unseren Stream auf die Reise. Zum Einsatz kommt auch hier ein alter Bekannter, das Real-Time Transport Protocol (RTP). Zum Glück ist auch RTPC, die Erweiterung zur Steuerung der Servicequalität zwingend vorgeschrieben. Bei SIP war das noch optional.

Das Protokoll übernimmt hier das Stückeln der aus dem gewählten Audio/Video-Codec fallenden Pakete. RTP muss sicherstellen, dass ein Stream kontinuierlich, synchron und linear ankommt. Laufzeitunterschiede (Jitter), also Schwankungen in der Übertragungszeit der einzelnen Pakete sollen ausgeglichen werden. Auch das ist eine Wissenschaft für sich.

Wer sich ansehen möchte, welche Streams gerade aktiv sind und wie viele Daten da drübergehen, kann das teilweise in seinem Browser machen – in Chrome z.B. unter chrome://webrtc-internals/. Via JavaScript sind diese Informationen (in unterschiedlicher Ausprägung) übrigens in allen Browsern verfügbar. Man sieht welche Codecs gerade zum Einsatz kommen, ob und wie laut gesprochen wird und wie viele Daten übertragen wurden und werden. Hier setzt übrigens an, wer die Gesprächs- und Videoqualität überwachen möchte.

Verschlüsselung und Sicherheit

Nicht zuletzt geht es spätestens bei den Streams natürlich auch um die Frage der Sicherheit. Die gute Nachricht zuerst: zumindest die Implementierung der Verschlüsselung ist im WebRTC-Standard für alle beteiligten Komponenten vorgeschrieben. Bei den Protokollen finden sich wiederum alte Bekannte, zumindest für den, der sich schon mal mit VoIP-Sicherheit auseinandergesetzt hat:

* Datagram Transport Layer Security – DTLS erlaubt TLS auch für UDP
* Secure Real-Time Transport Protocol – SRTP ist eine effiziente Verschlüsselung für RTP

Nicht verschlüsselt sind Header-Informationen wie z.B. die Lautstärke. Man “sieht” also auch ohne die Verschlüsselung zu knacken, ob jemand gerade spricht oder nicht. Vor bei SRTP denkbaren MITM-Angriffen schützt bei WebRTC übrigens der Verbindungsaufbau via DTLS.

Die Verschlüsselung erfolgt End-to-End. Auch wenn die Streams über einen TURN-Server geleitet werden kann der Anbieter sie nicht entschlüsseln. Wer sich tiefer in das Thema einarbeiten möchte, dem empfehle ich als Einstiegspunkt A Study of WebRTC Security. Dazu sollte man vielleicht noch sagen, dass hier lediglich versprochen wird, dass die Verbindung zu meinem Gegenüber verschlüsselt ist. Wer aber letztlich mein Gegenüber ist und ob das wirklich mein Gesprächspartner ist, ob dem in der Zwischenzeit jemand das Notebook geklaut hat oder ob gar ein Proxy verschlüsselt mit uns beiden spricht und dabei in der Mitte hängt – das zu unterscheiden ist für den Endnutzer leider nicht mit vertretbarem Aufwand möglich.

Schwieriger wird das Thema Sicherheit zudem, wenn Konferenzen mit mehreren Teilnehmern stattfinden. Wenn nämlich jeder Teilnehmer seinen Stream zu jedem anderen sendet ist bei einer gewöhnlichen DSL-Leitung das Ende der Fahnenstange schnell erreicht. Mischt der Anbieter die Streams zu einem (bzw zu mehreren, weil Teilnehmer teilweise andere Codecs unterstützen), dann ist die schöne End-zu-End-Verschlüsselung aber leider im Eimer.

Eine mögliche Lösung sind SFUs (Selective Forward Units), die kennt man bereits aus der guten alten RTP-Welt. Die brauchen zwar nicht in die Streams zu sehen, können es per Definition aber leider. Eine schöne Lösung bieten hier Insertable Streams, welche mittlerweile in aktuellen Versionen von Firefox, Safari und Chrome verfügbar sind. Ein zugehöriges Jitsi-Issue liefert dem interessierten Leser einen tiefen Einblick in den aktuellen Stand der Technik und die Fortschritte der einzelnen Browserhersteller.

Jitsi ist übrigens eine wunderschöne OpenSource-Lösung für Videokonferenzen. Wer den Aufwand des Betriebs scheut oder es einfach mal ausprobieren möchte kann das jederzeit bei uns machen. Und wenn wir anderweitig zu dem Thema beratend zur Seite stehen können, machen wir das natürlich auch sehr gerne.

Thomas Gelf
Thomas Gelf
Principal Consultant

Der gebürtige Südtiroler Tom arbeitet als Principal Consultant für Systems Management bei NETWAYS und ist in der Regel immer auf Achse: Entweder vor Ort bei Kunden, als Trainer in unseren Schulungen oder privat beim Skifahren in seiner Heimatstadt Bozen. Neben Icinga und Nagios beschäftigt sich Tom vor allem mit Puppet.

3 Gründe, wieso Du Jitsi verwenden solltest

Ich muss sagen, ich bin wirklich dankbar und schätze mich sehr glücklich, dass ich zum einen die Möglichkeit habe, von zu Hause aus arbeiten zu können und zum anderen die Möglichkeit bekomme, von zu Hause aus zu arbeiten.

Das bedeutet im Umkehrschluss natürlich, die Kolleg*innen nicht mehr jeden Tag „in echt“ zu sehen, sich mit dem mittelmäßigen Filterkaffee zu Hause zufrieden zu geben und somit nicht mehr den hervorragenden Kaffee im Office zu genießen. Für ersteres gibt es aber – zumindest virtuell – eine Lösung, und zwar Jitsi!

 

Wieso Jitsi?

Damit nicht nur offline, sondern auch online, unser aller Schutz sichergestellt ist, gibt es hier 3 Gründe, die für Jitsi sprechen: Ein Video Conferencing Tool, das es ermöglicht, einfach und unkompliziert mit Arbeitskolleg*innen in Kontakt zu bleiben und Meetings abzuhalten.

1. Deine Sicherheit hat bei uns Priorität! Auch bei der Kommunikation. Daher sind unsere Server dort, wo Du und ich zuhause sind – in Deutschland. Um genauer zu sein, hosten wir Deine Daten in Nürnberg. Ach so, Du lebst nicht in Nürnberg? Auch gut! Egal, wo Dein Zuhause ist, Deine Daten sind in unseren Rechenzentren sicher, Dein Traffic unsichtbar für alle, die ihn nicht sehen sollen.

2. Nimm‘ an Meetings oder Calls teil, wo immer Du gerade bist und von welchem Gerät Du möchtest! HD-Video Calls funktionieren auch in größerer Runde reibungslos. So sieht man sich zumindest virtuell „in echt“.

3. Teile Deinen Screen mit alle am Meeting teilnehmenden Personen, sodass Deine Präsentation, in die Du viel Herzblut gesteckt hast, von jeder*m gesehen wird und sich nicht jede*r einzeln selbst durch die Seiten klicken muss.

Wir im Marketing zum Beispiel nutzen Jitsi jeden Morgen, um unser Stand Up abzuhalten und die Aufgaben des Tages zu besprechen.

 

Noch nicht überzeugt?

Du brauchst noch weitere Gründe? Dann schau’ Dir das folgende Video an und sieh’ selbst, wie schnell (und anscheinend auch manchmal lustig) es sein kann, Jitsi zu verwenden:

 

Außerdem geben wir Dir die Möglichkeit, Jitsi momentan kostenfrei zu nutzen, lies’ mal hier! So siehst Du demnächst Dein Team dann online!

Happy video conferencing!

 

PS: Filterkaffee ist eigentlich ganz ok.

 

Jessica Kupfer
Jessica Kupfer
Online Marketing Manager

Jessica ist seit September 2020 bei NETWAYS dabei und freut sich unglaublich darüber! Unser Marketing Team bereichert sie mit ihrem Wissen über Social Media und Performance Marketing. Nach 3 Jahren als Au Pair in Boston, L.A. und London und weiteren 6 Jahren in Wien, hat es die gebürtige Saarländerin mit ungarischen Wurzeln nun nach Nürnberg verschlagen. In ihrer Freizeit besucht sie am liebsten Freunde & Familie, reist gerne und ergreift jede sich bietende Chance, Hunde...

StayAtHome: Rocket.Chat, Jitsi, Nextcloud, Mattermost – 3 Monate kostenfrei

Ab heute gilt es wieder offiziell: Sofern wir können, bleiben wir zu Hause und begrenzen Kontakte, um das Ansteckungsrisiko für sich und andere auf ein Minimum zu reduzieren. Daher wollen wir mit unserer Aktion StayAtHome Unternehmen, Schulen und Mitarbeiter*innen, denen es möglich ist, darin unterstützen, von zu Hause aus zu arbeiten.

Für Viele ist die größte Herausforderung im Homeoffice die wegfallende persönliche Kommunikation. Dementsprechend möchten wir euch mit Apps helfen, mit denen sich Meetings digitalisieren, kurze Team-Calls durchführen und Informationen und Dokumente schnell und unkompliziert übermitteln lassen. Aus diesem Grund, starten wir unsere StayAtHome Aktion erneut! Diesmal mit den Apps Jitsi, Mattermost, Rocket.Chat und Nextcloud.

So geht’s!

Mit dem Gutschein-Code “StayAtHome” stellen wir euch die Apps ab sofort für 3 Monate kostenfrei zur Verfügung! Der Gutschein-Code ist gültig, solange der Vorrat reicht. Die ersten 100 Nutzer*innen können ihn einlösen. Unsere Kapazitäten sind begrenzt, wir teilen aber gerne solange möglich.

Keine Abofalle

Dies ist keine Abofalle. Falls ihr kein Zahlungsmittel hinterlegt, endet diese Nutzungsphase automatisch nach 3 Monaten. Ihr müsst dazu nichts weiter tun. Also am besten jetzt anmelden!

Vorteile von Rocket.Chat, Jitsi und Nextcloud

  • Rocket.Chat: Mit Rocket.Chat ist es einfach, Multi-User-Gespräche in Kanälen zu organisieren, um großartige Kommunikationsumgebungen zu schaffen. Face-to-face Konversationen via Video-Chat, einfaches Teilen von Dateien und Desktops, inklusive Zugriff über jedes Gerät für Linux, Windows, Mac – kein Problem!

Rocket.Chat gratis starten

 

  • Jitsi: Direkte Zusammenarbeit ist wichtig. Triff Dich mit Kolleg*innen, Freund*innen oder Schüler*innen in digitalen Jitsi-Rooms. Der Zugriff ist über Browser, mobile Geräte oder Desktop Clients möglich. Immer und überall an Video Calls teilnehmen können: Was will man mehr?

Jitsi gratis nutzen

 

  • Nextcloud: Daten auf einem sicheren, deutschen Server speichern und von überall auf Deinen Datenbestand zugreifen. Höchste Sicherheit und Privatsphäre, einfacher Zugriff von jedem Gerät aus und Erweiterungen wie Kontakte, Kalender und Video-Calls: Das alles und noch viel mehr ist möglich mit der Nextcloud!

Nextcloud gratis einrichten

 

  • Mattermost: Es bietet den flexibelsten und sichersten Messaging-Service, ohne Deine Daten zu gefährden. Ein ganzer Katalog von Plug-Ins, Web-Hooks und Chat-Bots mit über 700 Anwendungen und Tools steht zur Verfügung, die integriert werden können. Halte Deine Nachrichten am Laufen: Egal, ob in Kanälen, privaten Chats oder in Face-to-face Calls mit der Jitsi-Integration.

Mattermost gratis anfordern

 

StayAtHome. Stay healthy.

Auch wir wissen, dass Homeoffice nicht in jeder Branche möglich ist, glauben aber an die Verantwortung derer, die es umsetzen können – zum Wohle aller. In diesem Sinne: Bleibt gesund! Und wenn möglich, zu Hause!

Marius Gebert
Marius Gebert
Systems Engineer

Marius ist seit 2013 bei NETWAYS. Er hat 2016 seine Ausbildung zum Fachinformatiker für Systemintegration absolviert und ist nun im Web Services Team tätig. Hier kümmert er sich mit seinen Kollegen um die NWS Plattform und alles was hiermit zusammen hängt. 2017 hat Marius die Prüfung zum Ausbilder abgelegt und kümmert sich in seiner Abteilung um die Ausbildung unserer jungen Kollegen. Seine Freizeit verbringt Marius gerne an der frischen Luft und ist für jeden Spaß zu...

Five Nextcloud Do’s and Don’ts

Five Nextcloud Do’s and Don’ts

Here are a five Do’s and Don’ts you should consider when using Nextcloud. These are examples that have of course already happened a few times in the past.

Do’s

1. When you activate an app, make sure you read the instructions first. Not reading them could cause serious problems with your Nextcloud.

2. If many people are working on a document it is better to do this online as there are no conflicts with the document. However, if you work offline, the document may not yet be synchronized and everyone gets a different version of it.

3. It is more helpful and clearer if you create a separate account for each user in the nextcloud. For example, you can see which user has deleted a file.

4. If you share a file via link, it is highly recommended to set a password and an expiration date of the link. This ensures more security for your data.

5. Always have a backup independent of the provider when working with sensitive or company relevant data. If you or one of your users makes a mistake and data is accidentally deleted, you should always have a backup of all your data stored locally.

Don’ts

1. Don’t put all files in one folder and share it with all users, so they all work on it at the same time. If several users work in the same folder at the same time, this can lead to problems during synchronization, especially if the same file is edited or uploaded.

2. But even if one of the users deletes the folder locally from the sync folder, you may lose all your data.

3. Don’t enable server side encryption because you can’t turn it off again. If you activate server-side encryption in Nextcloud, you will not receive a key to decrypt it again. To do this you would have to encrypt it on the command line where you also get a key to decrypt it again.

4. Don’t use the End-to-End-Encryption if you are not familiar with it. In addition the End-to-End-Encryption is still in beta testing. As you may know, betas may contain problems and shouldn’t be used without caution, especially when it comes to data that is very important for companies or yourself.

5. Don’t delete data from the local sync client folder. All data you delete from the sync folder will be deleted in the cloud as well. The data you delete from the sync folder will be synchronized with the cloud as well as with the local sync folders of all other users. Everything you change in the local sync client folder will also be changed in the cloud, please keep this in mind.

Please try to follow these guidelines, so you can work safely with Nextcloud without encountering particularly serious problems. If you stick to these Do’s and Don’ts, you will have no problems using Nextcloud.

Marius Gebert
Marius Gebert
Systems Engineer

Marius ist seit 2013 bei NETWAYS. Er hat 2016 seine Ausbildung zum Fachinformatiker für Systemintegration absolviert und ist nun im Web Services Team tätig. Hier kümmert er sich mit seinen Kollegen um die NWS Plattform und alles was hiermit zusammen hängt. 2017 hat Marius die Prüfung zum Ausbilder abgelegt und kümmert sich in seiner Abteilung um die Ausbildung unserer jungen Kollegen. Seine Freizeit verbringt Marius gerne an der frischen Luft und ist für jeden Spaß zu...

Veranstaltungen

Dez 01

Icinga 2 Fundamentals Training | Online

Dezember 1 @ 09:00 - Dezember 4 @ 17:00
Dez 03

DevOps Meetup

Dezember 3 @ 17:30 - 20:30
Dez 08

Terraform mit OpenStack Training | Online

Dezember 8 @ 09:00 - Dezember 9 @ 17:00
Dez 08

Icinga 2 Advanced Training | Online

Dezember 8 @ 09:00 - Dezember 10 @ 17:00
Dez 15

GitLab Training | Online

Dezember 15 @ 09:00 - Dezember 16 @ 17:00