<![CDATA[Jami]]>https://jami.net/https://jami.net/favicon.pngJamihttps://jami.net/Ghost 4.48Thu, 30 May 2024 02:00:52 GMT60<![CDATA[Uncover the meaning of every emoji]]>https://jami.net/de/uncover-the-meaning-of-every-emoji/6643794d40fdf50378022c6cTue, 28 May 2024 18:34:55 GMT

⁉️
Do emojis have the same meaning for everyone? 🤔

These little images and characters used in our electronic conversations to express emotions, represent characters or actions, and enrich our digital communications by making them more lively and dynamic are not always understood in the same way by everyone. Although emojis have general meanings that are widely accepted, their interpretation can vary according to cultural context, personal experience, and even generation.

Uncover the meaning of every emoji

Since the meaning of emojis varies from one culture to another, misunderstandings can arise, especially when emojis are used ambiguously or when cultural contexts differ. Therefore, it's both playful and important to consider and be aware of the meanings of the emojis and emoticons we use.

This is especially true for Jami, which aims to be a secure communication hub, fostering exchanges between different communities and cultures. 🌍
0:00
/

In contrast to other messaging applications, Jami offers a unique feature on your computer. You can easily discern the meaning of each emoji you send directly from your desktop (not available on mobile devices).

Simply navigate to the emoji tab and hover your cursor over any emoji to view its associated meaning.

0:00
/

Similar to other messaging applications, you can search for emojis by typing keywords that characterize them.

You can download the latest version here. Given our recent improvements in reliability, we encourage you to read our latest Dev update #6.

]]>
<![CDATA[Donation campaign - a heartfelt thank-you!]]>https://jami.net/de/end-of-donation-campaign/661fdbe386fa99ed5718d0e5Fri, 17 May 2024 18:45:00 GMT

🎊
Your generosity has been pivotal in shaping the future trajectory of Jami's development.

Thanks to your contributions, we've been able to consolidate our core team and successfully address critical bugs buried deep within our codebase, which previously hindered connectivity but were beyond our reach due to resource constraints.

These strides represent significant progress towards our overarching goal of fostering a more accessible, secure, and liberated landscape for human communication. We owe this progress entirely to your invaluable support through donations! ✨

Jami's core team and everyone participating in developing the project would like to extend a heartfelt thank-you to everyone who's donated! ❤️
Donation campaign - a heartfelt thank-you!

Summary of our donation campaign

We're immensely grateful for the overwhelming support we've received to date, culminating in a remarkable total of CAD$ 403,162.57.

We received a hundred diverse donations, alongside one significant contribution. Donors from across the globe poured in support, with contributions coming from the United States, Canada, Europe, India, Brazil, China, Australia, and New Zealand.

Donation campaign - a heartfelt thank-you!

Why launch this donation campaign?

Jami represents a significant technical challenge with its distributed multi-device system for video, audio, and messaging, requiring robust functionalities across various platforms and languages, even under low bandwidth conditions.

As outlined in the Jami Manifesto, our development journey since 2015 has been supported by Savoir-faire Linux Inc. Our dedicated team of developers and interns has continuously refined the project, while an active community formed on GitLab and contributes by reporting bugs, suggesting enhancements, and assisting with translations.

Despite the substantial support received, Jami's unique complexity demands additional resources. The intricacies of managing community engagement, website maintenance, and issue resolution further compound the workload.

Therefore, based on the recommendation of one of our most devoted users, and with the aim of accelerating Jami's progress, we launched a donation campaign in December 2023.

Looking ahead

As we move forward, our commitments to you remain strong. We work towards building a communication platform that reflects key values:

  1. Secure:  Protecting your privacy and communication is our top priority.
  2. Free and Open Source: Jami is built on open-source principles, ensuring transparency and accessibility.
  3. User-Friendly: We are dedicated to making Jami easy and enjoyable for everyone, regardless of technical background.

Donation campaign - a heartfelt thank-you!

Addressing past challenges in delivering a stable and reliable platform across various OS, since January, our efforts have been dedicated to enhancing Jami's core features and connectivity.

Thanks to your support, significant progress has been made with major bug fixes in recent weeks, laying the groundwork for increased reliability.

Our commitment to resolving underlying issues remains steadfast, with ongoing efforts planned at least until the beginning of summer. As a result, you can expect continuous evolution and improvement in Jami's performance.

How to stay involved?

There are numerous ways for you to continue being an active member of Jami's community and contribute to its ongoing development:

  • Contribute to the Code
    You can greatly enhance Jami's functionality and reliability by contributing to its code on GitLab. Whether you're a user reporting bugs, or a developer looking to add or modify code, your input is invaluable to Jami's development process.
  • Try the Beta Version
    Install Jami's Beta versions to provide real-time feedback to our developers before official releases.
  • Translate the App and Website
    Do you speak any languages other than English and French?
    Join our translators' community on Transifex to help make Jami accessible to people worldwide.
  • Participate in the Forum
    Our forum is a central hub for Jami's community, where users have been actively engaged for years. Here, you can seek assistance, guidance, and answers to your questions from fellow users and Jami's developers.
  • Sign Up for Our Newsletter
    Stay informed about Jami's operations, progress, and team by subscribing to our newsletter, at the bottom of this article or on our homepage.
  • Spread the Word and Stay Tuned
    Share Jami with your friends, family, and colleagues, and stay updated on our progress through our blog posts and our social media channels, including Mastodon, Twitter, Reddit, LinkedIn, Facebook and Instagram.
]]>
<![CDATA[Dev update #6]]>https://jami.net/de/dev-update-6/663a468a5125bf89f5e7607cFri, 10 May 2024 14:46:00 GMT
🥰
Our team of developers is very grateful for your support and your patience during this process of improving Jami's connectivity and reliability!
Dev update #6

Core

We have fixed major bugs in the past weeks, resolving a significant portion of our connectivity issues!

Many of our reliability issues stemmed from bugs in the underlying code layers of the tools we use to connect users. Let's take a look at how Jami works and what has been fixed to significantly improve connectivity. 🤓

What is NAT?

IPv4 and IPv6 are two versions of the Internet Protocol (IP) used for device addressing. IPv4 uses 32-bit addresses, limiting the number of addresses to 4.3 billion. On the other hand, IPv6 utilizes 128-bit addresses, providing a much bigger pool of addresses.

NAT (Network Address Translation) reduces the number of available IPv4 addresses by converting private IP addresses on the local network (e.g. your computer), which are not directly accessible from the Internet, into a single public IP address, connected to the Internet (your router acts as a NAT gateway).

However, NAT can disrupt applications like Jami that rely on private IP addresses.

Dev update #6

UPnP

Jami uses ICE (Interactive Connectivity Establishment) to establish a peer-to-peer connection between devices. If NATs block this direct connection, Jami optionally uses UPnP (Universal Plug and Play) if it is supported by the router. UPnP automatically configures router settings like opening ports to facilitate connections.

We fixed bugs occurring in two scenarios:

  • When UPnP was deactivated in the settings
  • When the account was deactivated in the settings

UPnP continued running in the background until Jami restarted. Fixing these bugs reduces unnecessary network traffic and facilitates the identification of other connectivity issues.

TURN

In addition to NAT potentially blocking peer-to-peer connections, dynamic private IP changes and firewall configurations without UPnP support further complicate connections.

To address these limitations, TURN (Traversal Using Relays around NAT) servers act as intermediaries. Similar to routers, these servers provide consistent public IP and port for secure data flow between devices, ensuring security and privacy are maintained.

About a third of Jami users rely on TURN servers.

Dev update #6

We have fixed two major bugs that were causing Jami to crash when connectivity changed, one of them being related to the PJSIP library.

OpenDHT

We have added additional automatic tests for OpenDHT, aimed at enhancing connectivity robustness for mobile devices and addressing bugs related to timeout issues during  listen operations  and functions associated with the proxy server.

Desktop

✨ We've released new versions for Ubuntu 24.04 and Fedora 40!

Last week, we received feedback from FFmpeg regarding our patch for screen sharing on Wayland with Pipewire. We've begun implementing the requested changes, and we plan on incorporating them into Jami when they are ready.


Mobile devices present more complex connectivity challenges for Jami compared to desktop computers. When Jami runs in the background on mobile, setting up push notification servers is necessary, and this process varies depending on the mobile operating system (Proxy DHT).

iOS

Efforts on iOS have been focused on stability, UI improvements and the migration of Jami’s code to SwiftUI. Yesterday we've released version 3.68, for both the stable and beta versions, so let's dive into it:

  • Migration to SwiftUI has been completed for calls and smart lists. This transition simplifies modification processes, accelerates development as it incorporates default features provided by Apple.
  • Notification stability has been enhanced by using data streaming to receive data from DHT, instead of waiting for the entire response. This allows for data processing even amidst delays or incomplete responses.
  • Ongoing work on revoking emojis on iOS.

Android

All the changes listed in the Core help address connectivity issues, especially on Android.

Most of the work from our Android team has been devoted to adding automatic tests in order to avoid regression and to find recurring bugs. We've made small UI adjustments and worked on issues related to connectivity changes.

A new stable version for Android will be released next week! 🌟


What's next to tackle?

Jami still encounters issues with connectivity changes on mobile devices, particularly when switching between networks (e.g., Wi-Fi to 5G). These problems are mainly related to OpenDHT and DHTnet. We'll be working on resolving them in the coming months.

Your feedback holds immense value for us, especially since it can be challenging to reproduce specific bugs on our own and given that we don't collect any data. We truly appreciate your willingness to try out these new versions and share your experiences with us❗

When reporting any issues you encounter, please let us know:

  1. The device you used
  2. The version of Jami installed
  3. The steps that led to the specific issue.

Thank you very much 😃.

]]>
<![CDATA[Dev update #5]]>https://jami.net/de/dev-update-5/660f1f4186fa99ed5718cfa5Fri, 05 Apr 2024 18:31:25 GMT
💡
Work is still ongoing to improve communication reliability and efficiency, especially on mobile devices.

Core

Dev update #5

The medium-term project to change the way users associate new devices with their Jami Account is making good progress, as a first prototype is now working in the Jami Core.

Smoke test scenarios have been drawn up to provide a basis for automatic testing.

In the upcoming months, we're honing in on two primary objectives for DHTNet:

  1. Addressing a multitude of bugs to boost Jami's connectivity. This week, we have already started tackling bugs that directly affect Jami's performance.
  2. Preparing the first release of DHTNet as a standalone library, poised for integration into different projects. So far, our work has been focused on this.

Desktop

Screen sharing on Wayland with Pipewire has been merged in Jami, and is still in review to be integrated in FFmpeg.

Android

The last two weeks have been devoted to automating test launches when modifications are made to the code.

While still experiencing difficulties implementing automatic testing on all the systems, the Android team is also in the process of eliminating a few small UI bugs, including those related to importing an account from another device.

iOS

With the discovery of major bugs and in-depth work underway to improve reliability, the Jami iOS team has been working on push notification management, as well as a new preference screen, which is now only in the design phase.

A new user interface for creating smart lists and swarms is also under development.

JAMS

The ongoing work on JAMS has mostly been focused on the users' web interface, such as :

  • Enforced strict typing rules
  • Added a CI/CD stage to enforce code style rules
  • General bug fixes of the client
  • Revamped UI on the client


Keep up to date with our progress on Jami. A lot of groundwork, not yet visible to the user, has been underway since January, and you should start to reap the rewards in the coming months. 😏

]]>
<![CDATA[How to install Jami Beta]]>https://jami.net/de/how-to-install-jami-beta/65fcec1f478648036ed2fbe6Tue, 26 Mar 2024 20:40:41 GMT

Jami's official releases are certainly more stable, but less frequent.
For those who wish to have a more recurrent follow-up, send us feedback, view the changes made almost on a daily basis, as well as having access to the latest features, here is our guide to install Jami Beta, depending on your operating system. 😉

🧰
You can access the stable and beta versions on Jami download page.

On Linux

1. Head to Linux download page
Jami beta is available for 9 different Linux distributions.

2. Select your Linux distribution
For instance, on Ubuntu, to know your operating system, open your System Settings → click on Details.

Or, open your terminal either by using the  Ctrl+Alt+T  keyboard shortcut or by clicking on the terminal icon
and use the  lsb_release -a  command to display the Ubuntu version. The output should look similar to below:

Distributor ID:	Ubuntu
Description:	Ubuntu 23.10
Release:	23.10
Codename:	mantic

3. Click on the light blue arrow icon

4. Then, click on Beta version

How to install Jami Beta

5. Copy and paste the command lines into a terminal
(either from the official repository or the Jami snap package, but not from both).

Note: the command lines shown here are only valid for Ubuntu 23.10 and serve only has an example.

On Windows

1. Head to Windows download page

2. Click on Download the Beta

3. Follow the installation steps

On macOS

1. Head to macOS download page

2. Click on Download the Beta from Jami.net

3. Follow the installation steps


On Android

  1. Open the Google Play Store and search for Jami.
How to install Jami Beta

2. Once you are on the Jami app page, scroll down to the very bottom to locate the Join the beta section.

3. Tap on Join, and confirm by tapping Join again when the pop-up appears.

4. Your account will be added to the beta program by Google Play Store. This process may take a few minutes.

How to install Jami Beta

5. Once completed, scroll back up, and you will see Jami (Beta) displayed as the main app title.
Note: If Jami (Beta) is not shown at the top after waiting a few minutes, simply close and reopen the Google Play Store. Then search for Jami, tap on it, and Jami (Beta) will appear as the main app title.

6. Tap on Install to proceed with the installation.

How to install Jami Beta

Note: you can also read the detailed installation instructions on Android download page and by clicking on Try the Beta from Google Play

On iOS

  1. Download TestFlight
    Information: TestFlight, an application owned by Apple, allows users to be invited through a public link to install and test apps. It serves as a platform to gather valuable feedback before the official release on the App Store. Learn more.
  2. After installing TestFlight, tap on Continue.
How to install Jami Beta

3. Next, use our public link to add Jami Beta version to your TestFlight.

How to install Jami Beta

4. Tap on Accept, then tap on Install.

Information: If Jami is already installed on your device, you need to replace the current app version with the test version by tapping on Install again.
Rest assured, similar to an update, your data will remain unaffected and unchanged.

How to install Jami Beta


Note: you can also read the detailed installation instructions on iOS download page and by clicking on Try the Beta.

We hope this will bring you closer to the development of Jami and show you how user feedback is integrated into our work and creative process. 😊

]]>
<![CDATA[Dev update #4]]>https://jami.net/de/dev-update-4/65f9d44b478648036ed2fb31Tue, 19 Mar 2024 20:33:04 GMT

🛠️
As the Jami team still focuses on stability and reliability, here is our 5th update regarding Jami's progress by its developers.

Core

We fixed a few synchronization, deadlocks and crashes in the Jami Core.

Desktop

Our work on FFmpeg to enable screen sharing on Wayland/Pipewire has been updated to consider feedback from FFmpeg developers.
We are also working on polishing the user experience and fix small issues across the board.

Android

We are working on fixing small issues such as the long press on text and selection.
We are also polishing the user experience after introducing the new conversation UI last release and added a PDF preview in the conversation.

iOS

An additional developer joing the iOS team and major work is ongoing to improve connectivity and reliability.
iOS presents specific design challenges for distributed and peer-to-peer systems like Jami which our developers are currently grappling with.

JAMS

These past few weeks we updated and improved JAMS.

  • Major bug fixed for revoking user devices.
  • Enhanced synchronization between LDAP/Active Directory and JAMS operations, preventing user logins after their accounts have been suspended or deleted.
  • Added support for Java 17 LTS and Java 21 LTS.
  • Improved unit testing processes in CI/CD.

No new features are currently being added.

Thank you for reading our regular Dev Update. We'll see you all in a couple of weeks for our next one! 😊

]]>
<![CDATA[Improved reliability — Presence and message status]]>https://jami.net/de/improved-reliability-presence-and-message-status/65f34b9a478648036ed2fa1fFri, 15 Mar 2024 18:10:37 GMT

Throughout this year, our primary focus has been on improving the reliability of our platform.
Central to reliability is information. This includes keeping you informed about the status of your connections and messages, even when there are technical hiccups. Jami users should be aware at all time rather than being left in the dark.

🧐
So what's new this time?

New presence indicators

Presence information plays a crucial role in this endeavor.
Typically, presence data has a TTL (Time-to-Live) of 10 minutes over the DHT (Distributed Hash Table), extending to several hours if push notifications are enabled.

In Jami, presence indicators are the colored circles displayed next to your contacts' avatars.
These circles provide insights into their current availability:

Improved reliability — Presence and message status

🟢  Green

You have a direct connection to this user's device. This indicates they are online and readily reachable.

🟠  Orange

At least one of their devices is announcing its presence on the network (DHT). This means they appear reachable, but you don't have a direct connection yet. Think of it as a seems online status. Connection attempts might fail due to factors like firewalls, network restrictions, or technical limitations.

🔴  Red

This applies to your own account. A red circle signifies you are offline, disconnected from the network entirely, or unable to connect to the DHT.  An error message will provide further details on the issue, prompting you to check your internet connection or restart the app.

No circle

This indicates none of the contact's devices are currently detectable on the network. They are unreachable at this time.

New message delivery status

Ensuring clear and understandable delivery status for messages is paramount. Jami now ensures clear and understandable information about message delivery. You can see the status of your message for each recipient within a conversation. The status (sending, sent and displayed) synchronizes across your devices, keeping you informed:

  • ⚪  Sending status: This appears when the message is newly sent and hasn't been retrieved by any recipient yet.
  • ✅  Sent status: This indicates the message has reached the recipient's device.
  • 👀  Read status: The recipient has received and opened your message.

Improved reliability — Presence and message status

Note: While message status can provide insights into who has received or displayed a specific message, timestamps of these events are not stored to prevent an excessive accumulation of data.
]]>
<![CDATA[Dev update #3]]>https://jami.net/de/dev-update-3/65e6470085f44fb4eeebfc50Tue, 05 Mar 2024 19:14:57 GMT

💡
As part of our efforts to focus on reliability, here is the 4th update on Jami's progress by its developers.

Desktop

A new beta with a lot of changes. Here is a summary:

Current focus on potential deadlocks, syncing issues and call in swarms.

Android

  • New developer discovering the current code base
  • Fix camera/mic when locking screen in a call
  • New presence colors for contacts
  • Send status will be implemented in a near future
  • Now can share multiple media or documents with Jami
  • Ongoing work on conversation disappearance
  • Current work for adding tests in a CI (continuous integration) job
  • Debugging presence with proxy

iOS

  • Ongoing work on reducing memory consumption to avoid memory limitations in the extension receiving push
  • New presence colors for contacts
  • Send status for messages
  • Adding architecture for tests

No new features are currently being added.


Thank you for reading our regular Dev Update. We hope it answers some of your most frequent questions.
We'll see you all in two weeks for the next one! 😊

]]>
<![CDATA[Internship interview with ...]]>https://jami.net/de/internship-interview-with-emma-falkiewitz/65dd1c6585f44fb4eeebf8adWed, 28 Feb 2024 21:48:31 GMT

Internship interview with ...

Hello ! My name is Emma Falkiewitz and I am 21 years old.
I am in my 4ᵉ year of computer science school at Compiègne University of Technology (the UTC) in France. I just finished my internship at Savoir-faire Linux where I worked on Jami.

How did this career choice come about?

In high school, I was already interested in computers, even if I didn't really know what it involved. After high school, I had to choose a university. I felt good about my schooling, so I was aiming for a master degree. I wanted to go beyond two or three years of study before launching myself into professional life. Knowing that I had an affinity with computers and telephones, I opted for a computer engineering school. “Engineer” is a somewhat generic title that allows you to do whatever you want afterward.

What were your first years in engineering school like?

My school is quite generalist. The first two years we touched on biology, chemistry and so on. Given that computer science is a varied field, you gradually discover what you like, whether it's artificial intelligence or network systems, etc.

Internship interview with ...

What specific field of computer science are you interested in?

Mainly artificial intelligence. I want to learn how it works, the possibilities it offers, and it's a rapidly developing field. It's fascinating!

Why Montreal, and how did you end up at Savoir-faire Linux?

As part of my curriculum, there are two 6-month internships requirements, in the 4th and 5th year. It's a trend to go to Canada in our school because we have close ties with several Montreal schools for double degrees or masters.

Even though I wasn't interested in starting a double degree, the idea of discovering Quebec culture by doing a paid internship was attractive.

I applied to numerous Quebec companies, but since 6-month internships in the 4th year are a particularity of my university, it was complicated to find one.

Consulting our school's internship histories, I discovered that a student from my university, Nicolas Vengeon, had done an internship at Savoir-faire Linux. I sent my CV and cover letter to Savoir-faire Linux, and after an interview I was accepted.

When did you join the Jami project and what did you work on?

I joined the Jami project at the end of August. At first, like all newcomers to the Jami project, you start with the desktop versions, using Qt. I had to try to resolve bugs by exploring the application, which allowed me to discover Jami's code. After a week or two, I was asked to move on to Android, and I accepted because Kotlin, the language used for Android development, is very close to Java.

Internship interview with ...

How was the transition to Android?

I'd already had a Java course, so I was more at ease with Kotlin. Whereas I was completely unfamiliar with the C++ used on Qt. When I came to Android, it was the same principle as in the beginning: discover the code by trying to solve bugs. Then, as time went by, I was assigned tasks such as improving the user interface or implementing new functions.

Internship interview with ...

What notable feature have you implemented?

Using a QR code to link your Jami account to another device is one of the major features I've implemented. Previously, you could only use a PIN code. 💫

Are you also working on the user interface graphics?

Not really, I just implement the new designs in the application. For example, once a new conversation bubble design has been chosen, I modify the bubble parameters in the code, or implement new functions. Working on the design has enabled me to work with XML.

Did you have any difficulties with Jami?

Jami is very complex. It's a massive thing to assimilate. There will always be parts I don't understand. All I did was ask myself questions to understand its mechanics.

Similarly, if you add code, you have to be careful about what was written before: you risk to break deeper parts of Jami.
Android Studio informs us if there are functions that are no longer in use, so we think “we'll just remove them”. Except that if you want to put the function back in, you will have to rewrite it entirely or search through the history. It's a real job. Every time we delete code, it's very tricky.

What do you think of Jami's operation and use?

I really like the project. It includes concepts that most other applications wouldn't use. I knew about peer-to-peer (P2P), but I had never seen it applied.

You can compare Jami to any other communication app, but connecting users without a central server, and in a distributed way, is brilliant. The technology is incredible!
Not having a server that consumes resources is also much more ecological.

What's the Jami team like?

Everyone is friendly and available. If you have a question, they'll come and help you. It's also nice to have a voice, as an intern. I've made suggestions or even gave my opinion on certain designs, which were taken into account and changed.

The IT world is often more masculine. What has been your experience?

It's true that in my school, there's a majority of boys in my class. When you go into IT or mechanics, you expect that. But I feel good. In any case, there's a good atmosphere at ours. It doesn't make much difference whether you're a woman or a man. At Savoir-faire Linux, I remember that when I was hired, we became a majority of women, and it was the first time.

🚀
Thank you, Emma, for having granted us this interview and for all your work on Jami!
We wish you all the best for the future. 😊
- The whole Jami team


This interview is transcribed by A.I.

Whisper is one of OpenAI's open source project which gained a lot of popularity.

Whisper's code is used for one of Jami's extensions: Whisper transcript.
During calls, the A.I. model runs locally on your device to subtitle the conversation in real time! (only available on desktop and Android).

To transcribe Emma's interview recordings into text, we added the python module and created our own tool :

import whisper
import os
model = whisper.load_model("small")
text_dir = "text"
if not os.path.exists(text_dir):
    os.makedirs(text_dir)
for file in os.listdir("audio"):
    if file.endswith(".wav"):
        new_file_name = file.replace(' ', '_')  # Store the new file name
        os.rename(f"audio/{file}", f"audio/{new_file_name}")
        absolute_path = os.path.abspath(f"audio/{new_file_name}")
        if os.path.exists(f"{text_dir}/{new_file_name}.txt"):
            continue
        result = model.transcribe(absolute_path)
        with open(f"{text_dir}/{new_file_name}.txt", "w") as f:
            f.write(result["text"])
]]>
<![CDATA[Dev update #2]]>https://jami.net/de/dev-update-2/65d3c18e85f44fb4eeebf831Mon, 19 Feb 2024 21:55:31 GMT

This is the third update about Jami's development by its developers. :)

Testing/Stability

These last weeks, the Jami team kept focusing on stability and automated testing!
New automated tests (called smoke tests) were written for iOS and Android. Work is ongoing to run them automatically as part of our development and release process to improve stability and make sure there is no regression with every new release.

Performance

The team also focused on Jami performance and startup time.
Multiple bottlenecks were identified and are being worked on.

Features

General

  • Improved syncing of message status (sent status, read status) between peers and devices.
  • Improved display of peer presence.

Qt

  • We’re working to implement screen sharing on GNU/Linux systems with Wayland and Pipewire.
  • Improvements to the local video preview.

iOS

  • New emoji reactions in the conversation chat
]]>
<![CDATA[What's new on desktop?]]>https://jami.net/de/whats-new-on-desktop/65ccf8074192c5ff24d083a8Thu, 15 Feb 2024 22:47:02 GMT
🎁
Jami goes frameless: a sleek new look for desktop users.
What's new on desktop?

Jami has recently undergone a significant interface update on desktop (Windows, macOS, and Linux), bringing a modern feel to your everyday calls and conversations. The star of the show? Frameless windows.

But what exactly does that mean, and how does it benefit you?

Before the frameless frenzy

In the past, Jami relied on the native window decorations provided by your operating system. This meant shadows, borders, and title bars were handled behind the scenes by the API (Application Programming Interface), leaving less space for the actual content of your chats and calls. While familiar, this approach limited the ability to customize Jami's look and feel.

Jami's previous version on Linux with the frames:

What's new on desktop?

Jami's previous version on Windows with the frames:

What's new on desktop?

Entering the frameless frontier

With Jami latest update on desktop, throws off the shackles of these pre-defined frames, opting for a custom design. This unlocks several advantages:

  • More space for what matters: Gone are the thick borders and title bars, freeing up precious screen real estate. Jami now blends seamlessly with your desktop, creating a more immersive experience.
  • Customization power: With frames under our control, we can now add our own buttons and design elements, making Jami feel more like your own.
  • One app, all platforms: Frameless windows mean no more juggling different designs for Windows, macOS, or Linux. The experience is now smooth and consistent across all operating systems.

Differences per OS

Before you can start enjoying the new design, you will have to update your Jami app. Whether you are on Windows, macOS, or Linux, you will find slight differences we want to highlight!

On Windows 🪟

The buttons to reduce, enlarge or close the window are part of your user interface.

What's new on desktop?

On macOS 🍏

The buttons to reduce, enlarge or close the window are part of your user interface on the left side, as custom to mac's user interface. 🙂

What's new on desktop?

On Linux 🐧

Linux has been trickier, as the frame offers multiple options, in the right-click context menu. Going frameless remove these options. Therefore, we decided to leave the native frame by default, until the features are added upstream, in the qwindowkit library.

So at the next update, if you still see the frames, don't panic! Here is how to active the frameless windows:

  • Once you log in, click on Open settings
  • In the settings page, head to General, then Appearance
  • Deactivate Use native window frame (requires restart)
  • Restart Jami

What's new on desktop?

Once you restart Jami, enjoy the modern new design!

What's new on desktop?

What is Qt?

Qt is a cross-platform software development framework, primarily used for creating graphical user interfaces. It allows developers to build applications that can run on Linux, Windows, macOS, Android, or embedded systems with little or no change in the codebase.

Behind the scenes, the frameless windows hinge on Jami's use of the Qt framework. While Qt normally handles window decorations, the developers worked around it to customize the new frames for each OS.

A collaborative process

Until recently, it had been complicated or unstable to modify the non-client area (frames) using Qt. We want to give a special thanks to qwindowkit's maintainers for developing a library that enables frameless windows for Qt/QML desktop applications.

In December, we had published a manifesto to contribute to our donation campaign in order to speed up Jami's development.

💡
Our mission is to provide everyone with a free, secure and private mean of communication.

Jami is a common good, and we are a small team: any donation is of great help. By donating to Jami, you can help build a freer, more human world for all, not just a few:

Thank you for your support!

Our commitment

On receiving your donation, Savoir-faire Linux Inc. and the Jami team pledge that:
- Your donations will be used exclusively to develop and improve Jami.
- Jami will always be free software published under the GPLv3+ license.
- Jami will not ask for any personal data to use the application.
- Jami will remain free for all.
- We will publish a full report of funds raised through the donation campaign.

]]>
<![CDATA[Dev update #1]]>https://jami.net/de/dev-update-1/65bab237a82b9c061422bd77Wed, 31 Jan 2024 22:02:03 GMT

Hello everyone, this is the second update on the development of Jami.

Current goals

Our major goal for the current release cycle remains to improve stability and reliability, as well as continuing to polish the user experience.

Testing

Works continue to add new automated UI tests for the Qt and Android clients. This should help us to improve stability and prevent regressions as we add more features.

UI

  • After many years of discussions and few weeks of work, we are finally rolling out frameless windows for the Jami Qt client! This should make Jami look more modern on desktop for macOS and Windows. A dedicated blog post will be published soon. We're now working on migrating the Qt client to Qt 6.6.1 (it currently uses Qt 6.5). Our new Windows beta already includes frameless windows.
  • The new conversation UI is now available for everyone on Android ! We are now working on the iOS client to bring the same experience to all platforms.

Core

Message status

We're working to improve the consistency and reliability of message status (sending, sent, read) in conversations.

Biometrics authentication

We are adding a biometrics authentication option on Android for accounts with a password. This should improve the user experience, saving you from having to enter the password for every protected action, if you use one with your Jami account.

Startup time

We work to improve the startup time of the Jami daemon and Qt client.

Next steps

For the next release, our goal is to change the way users associate new devices with their Jami Account: instead of using the DHT to exchange an encrypted archive, devices will use a peer-to-peer authenticated TLS connection to exchange data.

]]>
<![CDATA[Discover JAMS]]>https://jami.net/de/discover-jams/65b7ec1e0d605903647d8077Tue, 30 Jan 2024 00:49:04 GMTDiscover JAMSDiscover JAMS

🌿
JAMS: Jami for organizations! 

Last week, we released a new version of JAMS!  🚀
So we thought, what better time than now, to dive into JAMS and its features?

JAMS (Jami Account Management System) is an account management system for the Jami communication platform.
Using a local server or cloud hosting, JAMS enables you to easily add and manage your own community while preserving the advantages of Jami's distributed network.

Setting up your own community on JAMS

Managing accounts

Users within an organization may have different needs and permissions when using Jami.
JAMS integrates seamlessly into an existing infrastructure, providing different levels of access for each user or group of users.
The platform can be customized both visually and functionally, thanks to an environment hosted by the community or company.

Discover JAMS

Deploying JAMS in your organization

As a provisioning tool, JAMS supports three sources of user authentication:

1. Lightweight Directory Access Protocol (LDAP)

2. Active Directory (AD)

3. Integrated database (Apache Derby)

Using their AD/LDAP credentials, or credentials provided by an integrated database, members of your organization can register with Jami without having to set up their account first.

Discover JAMS

What comes with JAMS?

💡
JAMS enables administrators to manage user accounts, user groups and to modify the user interface.

  1. Integration with LDAP, Active Directory or Apache Derby databases: synchronizing JAMS user accounts with existing databases facilitates integration into existing infrastructures.
  2. Account management: adding and deleting accounts for new community members, in the event of an employee departure or a reorganization of the organization's structure, is one of JAMS' key functions.
  3. Authorization management :
    • Access to functionalities: you can define the actions a user can perform according to their responsibilities, giving them different authorizations. For example, authorize calls and messages for some users, and restrict access to video calls and file sharing for others, etc.
    • Group management: user groups can be created, modified and deleted, and assigned specific authorizations according to the needs of a department, team or other organizational criteria; making it easier to manage authorizations for similar sets of users.
    • Contact list: define who can contact whom, profile visibility levels and contact management.
  4. Visual customization of the user interface: the background photo and the logo for a designated group can be modified.
Discover JAMS

What difference between the Community and the Enterprise Editions?

At its core, JAMS has only one version, making the fundamental features consistent across all editions. However, there are key distinctions:

The Community Edition is entirely free of charge to administer your community.

The Enterprise Edition is built for a customized JAMS experience and offer additional support options, such as automatic updates, security patches, and access to professional support.

You can learn more about it on JAMS official website.

JAMS is published under the GPLv3+ license and copyrighted by Savoir-faire Linux Inc.
JAMS source code is available on Savoir-faire Linux's Git page.

How does it work?

A digital certificate is a kind of electronic passport that enables a person, computer, or organization to exchange information securely over the Internet. Like a passport, a digital certificate provides identity information, and can be verified because it is issued by an official, trusted agency. Certificates are used to encrypt messages and generate electronic signatures, enabling the recipient to verify their authenticity.


To prove its authenticity and validity, a certificate is digitally signed by a root certificate belonging to a trusted certification authority. Operating systems and web browsers maintain lists of root certificates, so that certificates issued and signed by certification authorities can be easily verified.

Discover JAMS

For internal hosting, certificates can be self-signed. In this way, the certification authority enables JAMS to recognize the digital certificates it has issued to authenticate members of a JAMS community: a Jami user therefore requests a certificate from the server, then presents it to other devices in order to be recognized as a valid member of the organization.

Jami is a free project and anyone can study it, make changes and redistribute it.

To provide everyone with a free, secure and privacy-friendly means of communication, we need your support.
Jami is very important to us and grows mainly with your help, as we mentioned in our manifesto last December.  
Consider donating to contribute directly to Jami's growth:

We deeply thank you for
your help and your support!

Our commitment

On receiving your donation, Savoir-faire Linux Inc. and the Jami team pledge that:

  • Your donations will be used exclusively to develop and improve Jami.
  • Jami will always be free software published under the GPLv3+ license.
  • Jami will not ask for any personal data to use the application.
  • Jami will remain free for all.
  • We will publish a full report of funds raised through the donation campaign.
]]>
<![CDATA[Dev update #0]]>https://jami.net/de/dev-update-0/65a87b44132ed96bb7c0cb0aFri, 19 Jan 2024 19:04:42 GMT

Hello everyone, this is the first of a series of regular updates on the development of Jami.

Current goals

Our major goal for the current release cycle is to improve stability and reliability, as well as continuing to polish the user experience.

Testing

New automated UI tests for the Qt and Android apps are on the way. On the long term, this should help us to improve the stability and prevent regressions as we add more features.

UI

For the Jami Qt, Android and iOS apps, we are currently working on:

  • Completing the implementation of the new conversation UI.
  • Implementing the new conversation API (swarm history), which should yield better performance and a more consistent conversation experience across platforms. This change means more conversation management logic is handled by the daemon instead of being duplicated in the apps.
  • Other bug fixes and UX improvements.

Core

In the Jami daemon, multiple thread safety issues have been fixed and profile and conversation data synchronization has been improved.

Next steps

For the next release, we are planning to change the way users associate new devices with their Jami Account: instead of using the DHT to exchange an encrypted archive, devices will use a peer-to-peer authenticated TLS connection to exchange the data.

]]>
<![CDATA[What's new on iOS?]]>https://jami.net/de/whats-new-on-ios/659f04a5ea95335d9fd5a41bMon, 15 Jan 2024 22:19:56 GMT
💡
Since September 2023, there have been major changes on iOS!

Jami calls can run in the background

What's new on iOS?

For several months now, it has been possible to video call while browsing your phone.
The call continues in the background (picture-in-picture), without the need to have Jami open.
If the video takes up too much screen space, you can simply reduce it by setting it aside during the call. An arrow on the left of your screen will appear if you wish to display the video again, or to simply return to Jami.

What's new on iOS?

Conferences

In our previous approach to group calls, we utilized mixed video frames featuring all participants. This led to user interface problems, and made it challenging to clearly see the callers, particularly when dealing with a larger number of participants or when a participant was designated as having priority (necessary in a meeting or course).

Starting in November, we've implemented individual video streams for each participant. It allowed us to optimize screen usage and enabled the option to have multiple scrollable screens, ensuring visibility for every participant.

What's new on iOS?

Code migration to SwiftUI

Another enhancement which was done during the development of conferences was the migration of Jami’s code for iOS, from UIkit and Storyboards (Cocoa Touch) to SwiftUI. We had been coding on UIkit and using Storyboards for years, now the calls and conference components are part of the code where this migration has been completed.
Evolving with SwiftUI in our project allows us to leverage its declarative syntax and streamlined development approach, embracing a reactive programming paradigm.

What's new on iOS?

Coming soon

In the coming days, you can expect a new update for Jami on iOS. Great strides have been made, bringing our iOS version even closer to the versions available on other platforms such as Linux, Android, Windows, or Mac.

Particular attention has been paid to the development of new messaging functions. If a typo was made, or you wish to reply to a specific message in the chat, a long click will open a menu with various options, including editing and deleting your message.
Furthermore, reacting to messages with an emoji will soon be available, iOS being our only platform where this feature had not yet been added.

Stay tuned for future updates. Our Jami team is dynamic and never stops evolving this beautiful project.

Last month, we published a manifesto that launched our donation campaign to speed up Jami's development.

💡
Jami is a free software, a common good. Anyone can study how it works, make changes and redistribute it.

Our mission is to provide everyone with a free, secure and privacy-friendly means of communication. That's why, over the coming months, we'll be asking for your support through our donation campaign.
By donating to Jami, you can help build a freer, more human world for all, not just a few:

Thank you for your support!

Our commitment

On receiving your donation, Savoir-faire Linux Inc. and the Jami team pledge that:
- Your donations will be used exclusively to develop and improve Jami.
- Jami will always be free software published under the GPLv3+ license.
- Jami will not ask for any personal data to use the application.
- Jami will remain free for all.
- We will publish a full report of funds raised through the donation campaign.

]]>