phone

    • chevron_right

      Prosodical Thoughts: Great Invitations

      The Prosody Team • news.movim.eu / PlanetJabber • 13 September, 2020

    There are two kinds of servers on the XMPP network today: those with public registration, and those without.The servers that support registration generally allow you to create accounts via the web, or using your XMPP client (XEP-0077). The problem is that this opens your server up to the world. Even when you add CAPTCHAs and other defences, even the most careful XMPP public server admin will at some point see spammers registering accounts on their server.
    • wifi_tethering open_in_new

      This post is public

      blog.prosody.im /great-invitations/

    • chevron_right

      Monal IM: Monal push server upgrade

      Anu • news.movim.eu / PlanetJabber • 11 September, 2020

    In preparation for Monal 4.8, the push server has been upgraded. In addition to the usual fixes that come with a software update in this case, people using the Monal 4.8 beta should now see a single notification for every message that comes in with the message text in the notification. For those of you who used Monal in iOS 12 this will be very familiar. This should be functionally similar to how things were in iOS 12. Sorry this took so long, huge thanks to Thilo for doing the heavy lifting here and implementing both the server and the iOS extension that powers this.

    • wifi_tethering open_in_new

      This post is public

      monal.im /blog/monal-push-server-upgrade/

    • chevron_right

      Ignite Realtime Blog: Openfire Monitoring plugin version 2.1.0 has been released

      guus • news.movim.eu / PlanetJabber • 10 September, 2020

    The Ignite Realtime community is happy to announce that version 2.1.0 of the Monitoring plugin has been released!

    This release is mainly a bugfix release. Message archiving functionality has been improved (fixes have been applied for both XEP-0136 and XEP-0313), full text search has been added to the personal message archives of users, and a variety of smaller bug fixes have been applied.

    In this release, the feature of retrieving messages ‘out of order’ has been removed.

    The new version of the plugin will become available for installation in the admin console of your instance of Openfire in the next few hours. Alternatively, it can be downloaded from its archive page right now.

    Note that for instances that have a lot of archived messages in their database, the initial load of this plugin might require a significant amount of time, as some database updates will be executed. For reference: it took our test instance, that has approximately 11 million archived messages in an external database approximately 9 minutes to perform this update.

    For other release announcements and news follow us on Twitter

    1 post - 1 participant

    Read full topic

    • wifi_tethering open_in_new

      This post is public

      discourse.igniterealtime.org /t/openfire-monitoring-plugin-version-2-1-0-has-been-released/88746

    • chevron_right

      Anmol Chaudhary: GSoC 2020 Ends - Final Words

      Anmol Chaudhary • news.movim.eu / PlanetJabber • 10 September, 2020 • 2 minutes

    With the rise in the usage of the internet, the need for digital communication is increasing day by day, this has only been accelerated by the current COVID-19 pandemic in 2020. More and more people are using chat applications to communicate with each other whether it is their loved ones or for discussing work with colleagues.

    This summer I was involved in implementing In-Band Real Time Text (RTT) for Dino . Real Time Text allows transmission of text instantly just as the user is typing. This allows for faster and more engaging textual conversations just as telephonic calls but at the same time keeping the discretion of text-based communication.

    To sum it up here’s what I did in order to make RTT work:

    • Message Comparision that generates the difference between two strings, in this case, used to generate a difference between the message being typed in real-time to generate necessary action elements. The algorithm is based on “Gestalt pattern matching” (Details, see here )

    • Sending and receiving real-time texts in both single and multi-user chats. The Real-Time Text has support for all action elements ( insert, erase, wait ) and events ( new, edit, reset, init, cancel ) mentioned in XEP-0301. The RTT are displayed on the conversation view along with traditional messages. In MUC at a given time, only 3 RTT are displayed in order to keep the User Interface clutter-free, the priority for which is determined by the affiliation of the member. (Details : here , here , here , here , and here )

    • RTT Setting radio toggle to toggle between Off/Receive only/Send and Receive. This is handled by using events “init” and “cancel”. (Details, see here and here )

    • Handling of stale messages that removes the RTT widget from UI if there is no update in a given time interval. This may be due to peer stopped typing or loss of sync. (Details, see here )

    • Multi-Device Support to sync input between different instances of Dino. With this, a user can start composing a message on one device and finish on another. (Details, see here )

    • Compatibility with Last Message Correction. With this, RTT is also displayed for the messages being corrected. The live correction is displayed in place of the old message received.

    The PR for which is available here .

    Overall it has been a great 3-month long journey. From working with a completely new language - Vala to fixing a ton of bugs in the process, and from discussions with mentor to the weekly meetings; I enjoyed my time with XSF.

    Although GSoC is now officially over, I look forward to contributing more to XSF and Dino in particular in the future. Next I plan on implementing message retraction and message moderation .

    Finally, I thank my mentors especially Marvin for guiding me through the summer. They have always been present to solve any problems I faced whether it was regarding discussion on how to implement something or for some bug fix. I also thank the XSF community for having me as a student developer this summer.

    • chevron_right

      Prosodical Thoughts: Prosody 0.11.6 released

      The Prosody Team • news.movim.eu / PlanetJabber • 9 September, 2020

    We are pleased to announce a new minor release from our stable branch.This release brings a collection of fixes and improvements added since the 0.11.5 release improving security, performance, usability and interoperability.This version continues the deprecation of using prosodyctl to start/stop Prosody if it is installed system-wide. You should use your init system’s appropriate commands to manage the Prosody process instead. You can silence the warnings with the ‘prosodyctl_service_warnings’ option.
    • wifi_tethering open_in_new

      This post is public

      blog.prosody.im /prosody-0.11.6-released/

    • chevron_right

      Ignite Realtime Blog: New Openfire plugin to help reduce spam!

      guus • news.movim.eu / PlanetJabber • 9 September, 2020 • 1 minute

    The Openfire community is happy to announce the immediate availability of a new plugin: the blacklist spam plugin.

    With the growing popularity of XMPP-based solutions, we’re also seeing an increase of a less desirable application of XMPP: the distribution of unsolicited messages over instant messaging (SPAM, or SPIM).

    In order to help our Openfire community combat known spam, we have now released a new plugin the “Spam blacklist” plugin . This is configured with a URL that is used to lookup addresses of known SPAM distributors and block all messages sent by these addresses.

    By default, the plugin is configured to read from a blacklist that is hosted on the igniterealtime.org website, and block all messages sent by any user on a domain listed there. The blacklist hosted by the Ignite Realtime community is a periodically updated copy of the list that is curated by the https://github.com/JabberSPAM/blacklist project. You can help combat spam by contributing to that project!

    In the next few hours, the plugin will pop up in the list of available plugins on all Openfire instances. Alternatively, you can manually download and install the plugin from its archive page .

    For other release announcements and news follow us on Twitter

    3 posts - 2 participants

    Read full topic

    • chevron_right

      Monal IM: Some usage stats for a random day

      Anu • news.movim.eu / PlanetJabber • 3 September, 2020

    I don’t track users in any way but in the process of fixing a server issue I did do a count on the number of messages sent on a given day. Here they are in case anyone was curious. On the scale of modern apps, these are tiny numbers but it is nice to see lots of people using the service.

    On a random day, 8/25/20 in a 24 hr period

    • Total Users: 103,065
    • Pushes sent: 56,768
    • Server to server (s2s) connections: 1,580

    • wifi_tethering open_in_new

      This post is public

      monal.im /blog/some-usage-stats-for-a-random-day/

    • chevron_right

      Paul Schaub: PGPainless 0.1.0 released

      vanitasvitae • news.movim.eu / PlanetJabber • 1 September, 2020 • 2 minutes

    After two years and a dozen alpha versions I am very glad to announce the first stable release of PGPainless ! The release is available on maven central .

    PGPainless aims to make using OpenPGP with Bouncycastle fun again by abstracting away most of the complexity and overhead that normally comes with it. At the same time PGPainless remains configurable by making heavy use of the builder pattern for almost everything.

    Lets take a look at how to create a fresh OpenPGP key:

            PGPKeyRing keyRing = PGPainless.generateKeyRing()                .simpleEcKeyRing("alice@wonderland.lit", "password123");

    That is all it takes to generate an OpenPGP keypair that uses ECDH+ECDSA keys for encryption and signatures! You can of course also configure a more complex key pair with different algorithms and attributes:

            PGPainless.generateKeyRing()                .withSubKey(KeySpec.getBuilder(RSA_ENCRYPT.withLength(RsaLength._4096))                        .withKeyFlags(KeyFlag.ENCRYPT_COMMS, KeyFlag.ENCRYPT_STORAGE)                        .withDefaultAlgorithms())                .withSubKey(KeySpec.getBuilder(ECDH.fromCurve(EllipticCurve._P256))                        .withKeyFlags(KeyFlag.ENCRYPT_COMMS, KeyFlag.ENCRYPT_STORAGE)                        .withDefaultAlgorithms())                .withSubKey(KeySpec.getBuilder(RSA_SIGN.withLength(RsaLength._4096))                        .withKeyFlags(KeyFlag.SIGN_DATA)                        .withDefaultAlgorithms())                .withMasterKey(KeySpec.getBuilder(RSA_SIGN.withLength(RsaLength._8192))                        .withKeyFlags(KeyFlag.CERTIFY_OTHER)                        .withDetailedConfiguration()                        .withPreferredSymmetricAlgorithms(SymmetricKeyAlgorithm.AES_256)                        .withPreferredHashAlgorithms(HashAlgorithm.SHA512)                        .withPreferredCompressionAlgorithms(CompressionAlgorithm.BZIP2)                        .withFeature(Feature.MODIFICATION_DETECTION)                        .done())                .withPrimaryUserId("alice@wonderland.lit")                .withPassphrase(new Passphrase("password123".toCharArray()))                .build();

    The API is designed in a way so that the user can very hardly make mistakes. Inputs are typed, so that as an example the user cannot input a wrong key length for an RSA key. The “shortcut” methods (eg. withDefaultAlgorithms() ) uses sane, secure defaults.

    Now that we have a key, lets encrypt some data!

            byte[] secretMessage = message.getBytes(UTF8);        ByteArrayOutputStream envelope = new ByteArrayOutputStream();        EncryptionStream encryptor = PGPainless.createEncryptor()                .onOutputStream(envelope)                .toRecipients(recipientPublicKey)                .usingSecureAlgorithms()                .signWith(keyDecryptor, senderSecretKey)                .asciiArmor();        Streams.pipeAll(new ByteArrayInputStream(secretMessage), encryptor);        encryptor.close();        byte[] encryptedSecretMessage = envelope.toByteArray();

    As you can see there is almost no boilerplate code! At the same time, above code will create a stream that will encrypt and sign all the data that is passed through. In the end the envelope stream will contain an ASCII armored message that can only be decrypted by the intended recipients and that is signed using the senders secret key.

    Decrypting data and/or verifying signatures works very similar:

            ByteArrayInputStream envelopeIn = new ByteArrayInputStream(encryptedSecretMessage);        DecryptionStream decryptor = PGPainless.createDecryptor()                .onInputStream(envelopeIn)                .decryptWith(keyDecryptor, recipientSecretKey)                .verifyWith(senderPublicKey)                .ignoreMissingPublicKeys()                .build();        ByteArrayOutputStream decryptedSecretMessage = new ByteArrayOutputStream();        Streams.pipeAll(decryptor, decryptedSecretMessage);        decryptor.close();        OpenPgpMetadata metadata = decryptor.getResult();

    The decryptedSecretMessage stream now contains the decrypted message. The metadata object can be used to get information about the message, eg. which keys and algorithms were used to encrypt/sign the data and if those signatures were valid.

    In summary, PGPainless is now able to create different types of keys, read encrypted and unencrypted keys, encrypt and/or sign data streams as well as decrypt and/or verify signatures. The latest additions to the API contain support for creating and verifying detached signatures.

    PGPainless is already in use in Smacks OpenPGP module which implements XEP-0373: OpenPGP for XMPP and it has been designed primarily with the instant messaging use case in mind. So if you want to add OpenPGP support to your application, feel free to give PGPainless a try!

    • wifi_tethering open_in_new

      This post is public

      blog.jabberhead.tk /2020/09/01/pgpainless-0-1-0-released/

    • chevron_right

      Ignite Realtime Blog: Spark 2.9.2 Released

      wroot • news.movim.eu / PlanetJabber • 30 August, 2020

    The Ignite Realtime community is happy to announce the availability of Spark version 2.9.2.

    This release fixes offline messages and a few other issues. Full list can be found in the changelog .

    We are thankful to all the contributors and encourage developers to get involved with Spark project by providing feedback in the forums or submitting pull requests on our GitHub page.

    You can download Spark from the Downloads page. Below are the sha1 checksums:

    44bedca5f8c49373e3a3454ae92857612a907714  spark_2_9_2.deb9b2a36cb4bc5b620f6e34d0bbe52ad57f0ff1bee  spark_2_9_2.dmg8df94552ada52a8c2a7da68ad596f4acd39d9ac4  spark_2_9_2.exeb1a81744923f4aaf3d39ced95fea233b6077f93c  spark-2.9.2.rpm4933144d2812c638effe95344dce304dbf820c0d  spark_2_9_2.tar.gz21836f86e101a7e48fcbd44fa400d5862f0840ab  spark_2_9_2-with-jre.dmg68e2ed4bd916bab17a0f963f748176d4d8514c29  spark_2_9_2-with-jre.exe

    For other release announcements and news follow us on Twitter

    1 post - 1 participant

    Read full topic