Agregador de noticias

ProcessOne: Phoenix at Paris.ex meetup and the hope for a reference Phoenix Open Source application

Planet Jabber - 1 December, 2015 - 15:42

Paris.ex meetup #4 took place end of november. It was great gathering. We now have the right venue. People are friendly and enjoying the time together.
Developers are coming back and are starting to volunteer for (short) talks. New faces are showing up. We are doing a great job.

The topic this time was quite huge and central to the Elixir community.

I made a presentation on the Phoenix framework covering most aspect of the framework:

  • Mandatory explanations on framework design goal
  • Description on the focus on performance and productivity
  • Architecture of the framework.
  • Short tutorial covering setting up a new Phoenix project with scaffolding, Plug example, and Channel step-by-step demo.

The presentation slides in PDF can be downloaded here: Introduction au développement Web avec le framework Phoenix

While preparing this presentation, I needed an hypothetical application. I realized that the Phoenix world did not have a kind of canonical application that could serve as an example for Phoenix application. Those that have been programming in Java in the early days of Java server platforms may remember the (in)famous Java Pet Store.

I thought about using a more useful example that could illustrate Phoenix website development and could even turn into a real community website.

Since a long time I had the idea of a community site for publishing restaurant review by children, using their own criteria (like service time, specific attention from staff, space to run between meals, etc). I had started a prototype on Ruby on Rails with my children a few years ago.

I thought I could revive the project for Elixir Phoenix framework. While giving my Phoenix talk yesterday, I thought Paris.ex meetup group could use that application as an illustration for new Elixir talks for the meetup events to come. There is plenty to illustrate: Real user management / authentication, better model for restaurant and children review, link to parent account for approval, production deployment.

We are already discussing diving deep into Ecto or demonstrating exrm with that application for example.
We were all enthusiastic yesterday about using that demo as a tool to illustrate various aspects of Elixir programming.

Of course, it is not exclusive to Paris.ex. If other Elixir groups wants to join and help build a kind of Phoenix Elixir reference application, you are welcome. That’s why we use English as primary development language (even if we hope to have a multilingual app).

If we reach a good state, I even have the matching domain name to deploy a production version !

Let’s see where this leads us ! I hope Gastronokids will become the Phoenix framework reference project someday.
What happens next depends on you !

The initial code of the project is on Github: ElixirParis/gastronokids
This is not more that a stock Phoenix scaffold at the moment, but we hope to improve it from month to month.

See you at next Paris.ex meetup in january 2016 !

You can watch here the recording of my talk (in French):

ProcessOne: XMPP Academy #3: December 16th

Planet Jabber - 30 November, 2015 - 17:02

Our now popular XMPP online video Q&A session is back for a third session on December 16th. The goal of the XMPP Academy is to help developers get the big picture and get XMPP architecture and design tips from 15-years-experience XMPP experts.

We are addressing all XMPP developers interested in asking questions on specific XMPP topics. They can send us their XMPP related questions and selected questions will be answered during a live private session for our ejabberd SaaS customers. The recording will be available to anyone to see later on-demand on ProcessOne Youtube channel.

Our third session will takes place on December 16th at 6pm CET. If you are an ejabberd SaaS customer, you can save the date, as you will soon receive a free registration link to attend live.

For other XMPP developers, you are very welcome to send us your questions before December 15th through our contact form. We will select the most interesting topics / questions to reply to.

We are waiting for your input !

In the meantime, you can catch up on the previous XMPP Academy sessions:

Nicolas Vérité: Exciting XMPP news of the world!

Planet Jabber - 26 November, 2015 - 12:03

Lots of news this week!

SPIRIT DSP released VideoMost SDK 5.0 for mobile videoconferencing service providers

VideoMost uses XMPP for signalling.

node-xmpp-core 5.0

The node-xmpp project has released node-xmpp-core 5.0.

xmppbot in PHP

xmppbot is a client for the Laravel PHP framework.

How to Chat on Using an External XMPP Client has explained in a blog post how to live chat on top of coding streams.

Roundup of the IM in Firefoex OS (french)

The french-speaking Firefox OS community has released an interesting and insightful article (in french, sorry) about the Instant Messaging apps in Firefox OS.

Do you want to read it in automated, approximately translated version?

Movim has tags

The excellent XMPP-based social network has now received the new tagging feature:

Now you can tag your posts on Movim! #atom #standard #xmpp

— Movim Network (@MovimNetwork) November 25, 2015

MongooseIM 1.6 is available

Check out the blog post for all the infos: MongooseIM 1.6: Riak, DevOps love, and so much more!

PBX-versie has XMPP has released version 6.0.10 of the cloud PBX, with XMPP integration, for presence and signalling.


ProcessOne: Grapherl: Google Summer of Code / Metrics for ejabberd

Planet Jabber - 26 November, 2015 - 10:49

Grapherl Google Summer of Code (GSOC) project is a project targeting the ejabberd environment to provide a metric / analytics system for ejabberd, but also other Erlang projects.

Project was completed successfully by Vanshdeep Singh and is available on Github: processone/grapherl.

Grapherl introduction

The file includes on complete tutorial on how to compile and install the project.

The project should be considered in beta and Vanshdeep Singh is looking for feedback and contributions to improve his tool. Grapherl Github Issue is probably the best place to report your issue with the project.

The project is using leveldb for the metrics data store, but other backend could be used.

The front-end can be customized and you can download the configuration of the dashboard and upload it again to visualize the data. For the moment the dashboards are not persistent on the server.

The client protocol is basic at the moment and takes a simple text format, sent over UDP on port 11111. You can see examples of the client protocol in Erlang or Python in Grapherl repository.

Format for sending a metric point is as follows:

client_name/metric_name:metric_type/time_stamp:value randomClient1/memory_usage:g/1441005678:1002938389 # example

Metric types are gauge and counter values. By default for a gauge metric values are averaged over an interval and for counter metric values are added over an interval.

ejabberd metrics

That module is an opportunity to expose more largely ejabberd internals and to allow admin to get nice feedback on ejabberd internals.

Grapherl has an ejabberd module mod_metrics.erl showing example on how to report ejabberd metrics for gauge and counter. You can already test this module to get a feeling of what is coming for ejabberd regarding metrics reporting. Just compile that module with ejabberd and add it to the configuration file. We expect that module will report data on Grapherl server on localhost.

The plan is to incrementally increase the number of metrics covered in ejabberd, based on our experience of large scale platform management. Even if we now focus on providing a few metrics during a beta test phase and we will expose more metrics after we have received feedback from users.

Feedback welcome

While the Google Summer of Code is now over and Grapherl has produced a working graphing tool in Erlang as a result, the work is pretty much in progress. We are aware of a few bugs that we have been adding to Github issues for the project and the author expects you will find more, when more users are given it a try.

The next steps depend on your feedback.

Erlang Solutions: MongooseIM 1.6: Riak, DevOps love, and so much more!

Planet Jabber - 25 November, 2015 - 15:53

Most of the development work around MongooseIM is done by working closely with our clients. Many of the new features in MongooseIM 1.6 are the result of building and testing around particular client requirements. We are particularly excited about this release, as it means the beginning of an improved team dynamic, new high-value features, and many improvements.

What’s new in MongooseIM 1.6 Riak KV

MongooseIM 1.6 introduces support for Riak - the scalable, fault-tolerant, distributed database written in Erlang. For this release, four modules can be configured with Riak, but more are on their way.

Currently, MongooseIM supports Riak as a storage backend for:

  • Authentication
  • Message Archive Management (MAM, XEP-0313) for one-to-one conversations
  • vCards (XEP-0054)
  • Private XML storage (XEP-0049)

This brings more flexibility in terms of database choice for any infrastructure, as you are free to choose between a RDBMS or NOSQL data store.

Powerful metrics, DevOps love

Version 1.6 offers very powerful metrics and monitoring infrastructure. For the underlying instrumentation, MongooseIM relies on Exometer. It reports OS-level and Erlang VM metrics, in addition to business metrics. You can then push those metrics to any ingesting and graphing system, such as Grafana or Kibana.

This greatly improves DevOps' visibility for managing systems, no matter the size of the installation. Other departments will benefit from having more data to dig into (big data, analytics), thus better understanding the end-users and eventually discovering new opportunities to improve UX, core competencies, and selling points.

Additionally, we have improved how session data from the DB is cleaned up when a node goes down. It eases the support for more database backends in the future, and it brings better cluster handling for DevOps.

Also, it is now possible to change log-level dynamically with a custom log path. For DevOps, once again, it helps consolidated logging for easier deployment, administration, and analysis.

Get your own easy-to deploy Docker image of MongooseIM. As it is still experimental and will improve over time, please handle it with care: Give it a test drive, come back to us with feedback or questions and tell us and what you'd like to see in the future. Feel free to fork it from:

Additional high value improvements

Extensive technical investment means we can continue to deliver a better MongooseIM with the Open Source community: we made changes to the core and integrated our test suite, the first of its kind, in the hope of seeing even more Open Source contribution.

Selected improvements:

  • Supported XEPs are now documented on
  • Substantial refactoring: authentication mechanism, c2s, simplified MAM
  • Erlang/OTP 18 support
  • Better RFC & XEP conformance

We encourage everybody to review the release notes on GitHub.

Coming up next

MongooseIM 1.6 will continue to bring many benefits such as: extensive and powerful business metrics, flexibility for DevOps, a rock-solid code base and stability for server and backend developers, more conformance for client developers, and extensive testing for all.

1.6.x maintenance series

We will be working on a maintenance version, 1.6.1 (and perhaps a 1.6.2 later), with more complete Riak support, and of course the usual bug fixes, optimisations, and general improvements.

1.7 and subsequent releases

The development cycle for version 1.7 has already begun! We will focus on cloud, mobile, and testing. That is all we can share for now, but feel free to tell us what you think. We will also put more effort and commitment into making release schedules more predictable - in fact we already are.

Invitations Be the first to get informed!

We have set up a new public mailing-list for all announcements of major events happening on the MongooseIM front. Expect one or two emails per month, the archives are free and open. We highly encourage you to subscribe here:

Click on the blue button "Join group":

Then click in "Email delivery preference" on "Notify me for every new message":


We received some very valuable contributions over the last months, and we would like to thank all of the developers who took part in the delivery of version 1.6: @rgrinberg, @vooolll, @syhpoon, @mweibel, @Stelminator, @larshesel, @ruanpienaar,@aszlig, @jonathanve, @gmodarelli.

We hope to see everyone contributing again in the coming months - you have all the power to closely participate in this fully open source project.

Influence our roadmap!

We encourage you to comment below this blog post, tell us what you think about this release, and where we should go in the future. You can also give feedback on GitHub through “Issues” - we are keen on gathering common problems and goals to provide solutions.

We believe the best thing to do is fork the project, and make a pull requests when you are happy. We will discuss with you, and include that into a milestone, entering our fully automated testing process.

ProcessOne: Riak and ejabberd in-depth explanation at Basho Advanced Erlang Workshop

Planet Jabber - 24 November, 2015 - 13:23

As Basho just joined Advanced Erlang Initiative, we are joining forces to explain the implications, benefits and strength of ejabberd deployment with Riak (among other Riak talks, prepared by Basho team).

During hands-on session, we will show what is possible when mixing two great Erlang products together, on December 9th, in London.

You can learn more and book ticket for Basho Advanced Erlang Workshop on Advanced Erlang Initiative

Ignite Realtime Blog: Smack 4.1.5 released

Planet Jabber - 23 November, 2015 - 13:40

The Ignite Realtime community is proud to announce the availability of Smack 4.1.5. Like all patch level releases, this release includes some important fixes and users are strongly encouraged to update. Smack 4.1.5 is a API compatible drop-in replacement for every release of the Smack 4.1 series. Have a look at the changelog and the git changelog.


Thanks to everyone who contributed to this release by providing bug reports and patches.

Nicolas Vérité: Crowdfunding XMPP

Planet Jabber - 23 November, 2015 - 09:05

Do you want to help XMPP?

Want a decentralized, encrypted, Free (as in freedom) “social” app on Android and desktop ?

Crownfunding XMPP: please help them!

— Nicolas Vérité, Nÿco (@nyconyco) November 20, 2015

The « Salut à Toi » project says:

We have just launched a crowdfunding campaign to develop a new frontend to Libervia, and port it to Android (in a native application!).   Please contribute! You can go to the crowdfunding platform, and give money to: Libervia- Ethical and Free (Libre) social network.

ProcessOne: ejabberd 15.11: Simpler cluster setup

Planet Jabber - 20 November, 2015 - 14:55

This new version of ejabberd improves the cluster management to make it simpler to use. It fixes issues some may have faced when setting cluster with ejabberd 15.09 and 15.10.


The commands join_cluster and leave_cluster do not depend on external scripts anymore. This makes operation simpler from user perspective and more portable across systems. The commands are supported on Microsoft Windows the same way as on Linux and OSX.

Adding a node to a cluster

Suppose you have already configured ejabberd on one node named ejabberd@node1. Let’s create an additional node ejabberd@node2 and connect them together.

  1. Copy the .erlang.cookie file from node1‘s home to node2‘s home.

  2. Start node2 node, and join it to the cluster:

    $ ejabberdctl start $ ejabberdctl join_cluster 'ejabberd@node1' $ ejabberdctl list_cluster ejabberd@node1 ejabberd@node2

This enables ejabberd’s internal replications to be launched across all nodes so new node can start receiving messages from other nodes and be registered in the routing tables.

Removing a node from the cluster

Suppose you have already configured ejabberd cluster with nodes named ejabberd@node1 and ejabberd@node2 and you want to remove node1 from the cluster.
You just needs to shut down node1. There is no specific delay for the cluster to figure out that the node is gone, the node is immediately removed from other router entries.
If the node node1 is started again, it’s immediately attached back to the cluster until it has been explicitly removed permanently from the cluster.

To permanently remove node1 from the cluster, just call leave_cluster command from anywhere in your cluster (either node1 or node2):

$ ejabberdctl leave_cluster 'ejabberd@node1'

The removed node must be running while calling leave_cluster to make it permanently removed. It’s then immediately stopped.


As usual, the release is tagged in the Git source code repository on Github.

The source package and binary installers are available at ProcessOne.

If you suspect that you’ve found a bug, please search or fill a bug report on Github.

Nicolas Vérité: XMPP News! HabaHaba, Beaux Boulons, Paranoid,, DreamHost, Fastmail, Fedora

Planet Jabber - 20 November, 2015 - 14:41

Here are the new news of XMPP!, did you know?

The online service is described in the wiki:  features, sceenshots, and video. The source code is available: Thanks to Sergey Dobrov!

XMPP presentation: the protocole the revolutionises internet

The « Atelier des Beaux Boulons » is a non-profit FabLab in Auxerre, France, and they presente XMPP, here is the proof:

Apéro projet jeudi à 20h30 au Lab: Présention d'XMPP le protocole qui révolutionne internet par Stroggle.

— LesBeauxboulons (@LesBeauxboulons) November 10, 2015

Stroggle nous présente le protocole #XMPP et en plus on a tout compris! #geeknation

— LesBeauxboulons (@LesBeauxboulons) November 12, 2015

XMPP For Paranoid People

_NSAKEY has published:

First up, the XMPP presentation I did to fill an empty speaking slot. Remember kids, metadata kills. #PhreakNIC19

— _NSAKEY (@_NSAKEY) November 10, 2015

The presentation « XMPP For Paranoid People » (instructive) has an 8-bits design! ;-)

The WordPress dot com bot

Did you know that notifies you via XMPP of all the comments on your blog?

How to send Jabber (XMPP) messages from Django

Alex Morozov blogged this:

CTO with a CEO flavour – How to send Jabber (XMPP) messages from #Django

— Alberto García (@albertogargar) November 12, 2015

simple Django notification bot.

DreamHost October Newslettery: What’s That Feature?

DreamHost October Newslettery: What’s That Feature? It's #XMPP! #DreamHostWTF

— DreamHost (@DreamHost) November 12, 2015

The WTF of DreamHost: « What’s that feature? It’s XMPP!« . This points to their wiki.

Fastmail : Shutting down our XMPP chat service

Fastmail closes their XMPP server on the 31st of January 2016. Sad.

Building teams around SIP and XMPP in Debian and Fedora

Daniel Pocock tries to reproduce the Debian experience, but this time at Fedora.

Do you like these news? <a href="">Take Our Poll</a>

Ignite Realtime Blog: Openfire 3.10.3 Released

Planet Jabber - 18 November, 2015 - 16:21

The Ignite Realtime Community is pleased to announce the release of version 3.10.3 of Openfire.  This release continues our effort to produce a stable 3.10 release series of Openfire while we work toward the next major release of Openfire.  The release is available now for download from our website.


The Changelog for this release denotes 12 fixed Jira issues with thanks to contributions from speedy3k , tevans , csh, Guus, and dwd.


Here are SHA-1 hashes for the download artifacts


10093d7d5af8e68a69544d1a647978f2523f88c7  openfire_3_10_3.dmg

ecc63d97173f6795759fe8bfab5974477d98d608  openfire_3_10_3.exe

8e5609b1d44cd1f6ede939f5219c70acd7d06e38  openfire_3_10_3.tar.gz


22cf5b6a62760d53bcd87d4b87f3c787cb5a57b7  openfire_src_3_10_3.tar.gz


ebf86f137e4cf95552f7d22d2e65fb93e3aa6794  openfire-3.10.3-1.i386.rpm

211545b3c4e1f88a34ee7ba4a9fd5d5325de72b8  openfire_3.10.3_all.deb


Please note that we are no longer producing a Solaris build, due to perceived lack of interest and some strange build problems we encountered with our Bamboo build agent.  If you would like to help out with creating a Solaris build, please respond in the community forums.


As a reminder, Openfire is developed by a group of volunteers and are always looking for more developers and testers to pitch in.  Please stop by our XMPP chatroom at any time and say if you are interested in helping out!


Happy Chatting!


Peter Saint-Andre: RFC 7711 and RFC 7712: POSH and DNA

Planet Jabber - 18 November, 2015 - 00:00
Today the IETF published two intertwined specifications that I've co-authored with a few folks in the XMPP community: RFC 7711 and RFC 7712.

Tigase Blog: XMPP An Introduction Part V: Messages

Planet Jabber - 14 November, 2015 - 00:39
Here we explore Message Stanzas.

Daniel Pocock: Building teams around SIP and XMPP in Debian and Fedora

Planet Jabber - 13 November, 2015 - 11:52

I've recently started a discussion on the Fedora devel mailing list about building a team to collaborate on RTC services (SIP, XMPP, TURN and WebRTC) for the Fedora community. We already started a similar team within Debian.

This isn't only for developers or package maintainers and virtually anybody with a keen interest in free software can help. Testing different softphones and putting screenshots on the wiki can help a lot (the Debian wiki already provides some examples). The site is not intended to be an advertisement for my web design skills and anybody with expertise in design would be very welcome to contribute.

Teamwork in this endeavor can provide many benefits:

  • Sharing knowledge about RTC, for use within our communities and also for other communities using the free and open technology
  • Engaging with collaborators who are not involved in packaging teams, for example, the Debian RTC team has also had interest from upstream developers who are not on other Debian or Fedora mailing lists
  • Minimizing the effort required by the system administrators (the DSA team in Debian or Infrastructure team in Fedora) by triaging user problems and planning and testing any proposed changes.
  • Freeing up developer time to work on new features, such as the exciting work I'm doing on telepathy-resiprocate.

There are also many opportunities for project work that go beyond traditional packaging responsibilities. Wouldn't it be interesting to find ways to integrate the publish/subscribe capabilities of SIP and XMPP with the Fedmsg infrastructure?

Bringing XMPP to

We recently launched XMPP for and it would not be hard to replicate for users. Sure, some people are happy running their own XMPP servers. There are just as many people who prefer to focus on development and have something like XMPP provided for them.

With the strong emphasis on building a roster/buddy-list, XMPP can also help to facilitate long-term engagement in the community and users may identify more closely with the project.

I haven't offered XMPP on the trial service because it would be inconvenient for people to migrate buddy lists to the domain when the service is officially adopted.

Collaboration across communities

There are various other places where we can share knowledge between teams in different communities and people are invited to participate.

The Free-RTC mailing list is a great place to discuss free RTC strategies and initiatives.

The XMPP operators mailing list provides a forum to discuss operational issues in the XMPP space, such as keeping out the spammers.

Would you like to participate?

Please consider joining some of the mailing lists I've mentioned, replying to the thread on the Fedora devel mailing list, volunteering for the Debian RTC team or emailing me personally.

Nicolas Vérité: Some news of the XMPP universe

Planet Jabber - 11 November, 2015 - 21:00

The XMPP universe is still alive. Some may have forgotten too quickly. Here are some fresh items.

XMPP and SIP together on!

In this article: « RTC: announcing XMPP, SIP presence and more », Daniel Pocock says:

The Debian Project now has an XMPP service available to all Debian Developers. Your email identity can be used as your XMPP address.

It is based on! Congrats!


jabberd2 is alive!

Tomasz Sterna releases  (minor) version de jabberd2, the XMPP server, written in C, under the GPL licence!

The changes:

  • Rewrite TLS ephemeral key + cipher handling
  • Recover Berkeley DB before opening it
  • bcrypt support for PostgreSQL
  • Option to set authreg module per realm
  • AuthReg ANONYMOUS does not offer password check
  • Answer to disco#info queries to user JID
  • WebSocket C2S SX plugin

The force awakens? Huh… sorry.

Zombie Hack services, not bad

Zombie Hack offers some collaboration services: open, standards, and open source:

  • XMPP, what else?
  • IRC
  • Etherpad
  • Soon ownCloud
converse.js in version 0.10.0

The free and open source web XMPP client converse.js is delivered in version 0.10.0, under MPL license:

This release drops CSS support for IE8 and IE9.

  • #459 Wrong datatype passed to converse.chatboxes.getChatBox. [hobblegobber, jcbrand]
  • #493 Roster push fix [jcbrand]
  • #403 emit an event rosterPush when a roster push happens [teseo]
  • #502. Chat room not opened in non_amd version. [rjanbiah]
  • #505 Typo caused [object Object] in room info [gromiak]
  • #508 « Is typing » doesn’t automatically disappear [jcbrand]
  • #509 Updated Polish translations [ser]
  • #510 MUC room memberlist is being cleared with page reload when keepalive option is set. [jcbrand]
  • Add the ability to also drag-resize chat boxes horizontally. [jcbrand]
  • Updated Sass files and created a new style. [jcbrand]

Thanks JC Brand!

Hacker News

Hacker News has recently covered XMPP:

XMPP For Paranoid People

_NSAKEY has published:

First up, the XMPP presentation I did to fill an empty speaking slot. Remember kids, metadata kills. #PhreakNIC19

— _NSAKEY (@_NSAKEY) November 10, 2015

The presentation « XMPP For Paranoid People » (instructive) has a 8-bits design! ;-)

XMPP is alive!

XMPP might not be trendy anymore, we are in a local minima:

This will go back to normal, soon.

Nicolas Vérité: Des news de, jabberd2, Zombie Hack, converse.js

Planet Jabber - 9 November, 2015 - 11:30

Léger rafraîchissement de l’univers XMPP…

XMPP et SIP main dans la main sur !

Dans un article intitulé: « RTC: announcing XMPP, SIP presence and more », Daniel Pocock nous dit :

The Debian Project now has an XMPP service available to all Debian Developers. Your email identity can be used as your XMPP address.

C’est basé sur ! Félicitations !


jabberd2 est vivant !

Tomasz Sterna nous gratifie d’une toute nouvelle version (mineure) de jabberd2, le serveur XMPP écrit en C sous licence GPL !

Les changements :

  • Rewrite TLS ephemeral key + cipher handling
  • Recover Berkeley DB before opening it
  • bcrypt support for PostgreSQL
  • Option to set authreg module per realm
  • AuthReg ANONYMOUS does not offer password check
  • Answer to disco#info queries to user JID
  • WebSocket C2S SX plugin

Le réveil de la force ? Euh… hum… pardon.

Zombie Hack, des services pas bêtes

Le site Zombie Hack offre des services de collaborations ouverts, standards et open source :

  • XMPP bien sûr, what else?
  • IRC
  • Etherpad
  • Bientôt ownCloud
converse.js en version 0.10.0

Le client XMPP web libre et open source converse.js est livré en version 0.10.0, sous sa licence MPL :

This release drops CSS support for IE8 and IE9.

  • #459 Wrong datatype passed to converse.chatboxes.getChatBox. [hobblegobber, jcbrand]
  • #493 Roster push fix [jcbrand]
  • #403 emit an event rosterPush when a roster push happens [teseo]
  • #502. Chat room not opened in non_amd version. [rjanbiah]
  • #505 Typo caused [object Object] in room info [gromiak]
  • #508 « Is typing » doesn’t automatically disappear [jcbrand]
  • #509 Updated Polish translations [ser]
  • #510 MUC room memberlist is being cleared with page reload when keepalive option is set. [jcbrand]
  • Add the ability to also drag-resize chat boxes horizontally. [jcbrand]
  • Updated Sass files and created a new style. [jcbrand]

Merci JC Brand !

XMPP est bien vivant !

XMPP n’est plus à la mode, on est dans le creu :

Mais ça va remonter, et ça va être efficace !

Daniel Pocock: RTC: announcing XMPP, SIP presence and more

Planet Jabber - 9 November, 2015 - 07:57

Announced 7 November 2015 on the debian-devel-announce mailing list.

The Debian Project now has an XMPP service available to all Debian Developers. Your email identity can be used as your XMPP address.

The SIP service has also been upgraded and now supports presence. SIP and XMPP presence, rosters and messaging are not currently integrated.

The Lumicall app has been improved to enable rapid setup for SIP users.

This announcement concludes the maintenance window on the RTC services. All services are now running on jessie (using packages from jessie-backports).

XMPP and SIP enable a whole new world of real-time multimedia communications possibilities: video/webcam, VoIP, chat messaging, desktop sharing and distributed, federated communication are the most common use cases.

Details about how to get started and get support are explained in the User Guide in the Debian wiki. As it is a wiki, you are completely welcome to help it evolve.

Several of the people involved in the RTC team were also at the Cambridge mini-DebConf (7-8 November).

The password for all these real time communication services can be set via the LDAP control panel. Please note that this password needs to be different to any of your other existing passwords. Please use a strong password and please keep it secure.

Some of the infrastructure, like the TURN server, is shared by clients of both SIP and XMPP. Please configure your XMPP and SIP clients to use the TURN server for audio or video streaming to work most reliably through NAT.

A key feature of both our XMPP and SIP services is that they support federated inter-connectivity with other domains. Please try it. The FedRTC service for Fedora developers is one example of another SIP service that supports federation. For details of how it works and how we establish trust between domains, please see the RTC Quick Start Guide. Please reach out to other communities you are involved with and help them consider enabling SIP and XMPP federation of their own communities/domains: as Metcalfe's law suggests, each extra person or community who embraces open standards like SIP and XMPP has far more than just an incremental impact on the value of these standards and makes them more pervasive.

If you are keen to support and collaborate on the wider use of Free RTC technology, please consider joining the Free RTC mailing list sponsored by FSF Europe. There will also be a dedicated debian-rtc list for discussion of these technologies within Debian and derivatives.

This service has been made possible by the efforts of the DSA team in the original SIP+WebRTC project and the more recent jessie upgrades and XMPP project. Real-time communications systems have specific expectations for network latency, connectivity, authentication schemes and various other things. Therefore, it is a great endorsement of the caliber of the team and the quality of the systems they have in place that they have been able to host this largely within their existing framework for Debian services. Feedback from the DSA team has also been helpful in improving the upstream software and packaging to make them convenient for system administrators everywhere.

Special thanks to Peter Palfrader and Luca Filipozzi from the DSA team, Matthew Wild from the Prosody XMPP server project, Scott Godin from the reSIProcate project, Juliana Louback for her contributions to JSCommunicator during GSoC 2014, Iain Learmonth for helping get the RTC team up and running, Enrico Tassi, Sergei Golovan and Victor Seva for the Prosody and prosody-modules packaging and also the Debian backports team, especially Alexander Wirt, helping us ensure that rapidly evolving packages like those used in RTC are available on a stable Debian system.

Daniel Pocock: Problems observed during Cambridge mini-DebConf RTC demo

Planet Jabber - 8 November, 2015 - 09:16

A few problems were observed during the demo of RTC services at the Cambridge mini-DebConf yesterday. As it turns out, many of them are already documented and solutions are available for some of them.

Multiple concurrent SIP registrations

I had made some test calls on Friday using and I still had the site open in another tab in another browser window. When people tried to call me during the demo, both tabs were actually ringing but only one was visible.

When a SIP client registers, the SIP registration server sends it a list of all other concurrent registrations in the response message. We simply need to extend JSCommunicator to inspect the response message and give some visual feedback about other concurrent registrations. Issue #69. SIP also provides a mechanism to clear concurrent registrations and that could be made available with a button or configuration option too (Issue #9).

Callee hears ringing before connectivity checks completed

The second issue during the WebRTC demo was that the callee (myself) was alerted about the call before the ICE checks had been performed. The optimal procedure to provide a slick user experience is to run the connectivity checks before alerting the callee. If the connectivity checks fail, the callee should never be alerted with a ringing sound and would never know somebody had tried to call. The caller would be told that the call was unable to be attempted and encouraged to consider trying again on another wifi network.

RFC 5245 recommends that connectivity checks should be done first but it is not mandatory. One reason this is problematic with WebRTC is the need to display the pop-up asking the user for permission to share their microphone and webcam: the popup must appear before connectivity checks can commence. This has been discussed in the JsSIP issue tracker.

Non-WebRTC softphones, such as Lumicall, do the connectivity checks before alerting the callee.

Dealing with UDP blocking

It appears the corporate wifi network in the venue was blocking the UDP packets so the connectivity checks could never complete, not even using a TURN server to relay the packets.

People trying to use the service on home wifi networks, in small offices and mobile tethering should not have this problem as these services generally permit UDP by default.

Some corporate networks, student accommodation and wifi networks in some larger hotels have blocked UDP and in these cases, additional effort must be made to get through the firewall.

The TURN server we are running for also supports a TLS transport but it simply isn't configured yet. At the time we originally launched the WebRTC service in 2013, the browsers didn't support TURN over TLS at all but now they do. This is probably the biggest problem encountered during the demo but it does not require any code change to resolve this, just configuration, so a solution is well within reach.

During the demo, we worked around the issue by turning off the wifi on my laptop and using tethering with a 4G mobile network. All the calls made successfully during the demo used the tethering solution.

Add a connectivity check timeout

The ICE connectivity checks appeared to keep running for a long time. Usually, if UDP is not blocked, the ICE checks would complete in less than two seconds. Therefore, the JavaScript needs to set a timeout between two and five seconds when it starts the checks and give the user a helpful warning about their network problems if the timeout is exceeded. Issue #73 in JSCommunicator.

While these lengthy connectivity checks appear disappointing, it is worth remembering that this is an improvement over the first generation of softphones: none of them made these checks at all, they would simply tell the user the call had been answered but audio and video would only be working in one direction or not at all.

Microphone issues

One of the users calling into the demo, Juliana, was visible on the screen but we couldn't hear her. This was a local audio hardware issue with her laptop or headset. It would be useful if the JavaScript could provide visual feedback when it detects a voice (issue #74) and even better, integrating with the sound settings so that the user can see if the microphone is muted or the gain is very low (issue #75).

Thanks to participants in the demo

I'd like to thank all the participants in the demo, including Juliana Louback who called us from New York, Laura Arjona who called us from Madrid, Daniel Silverstone who called from about three meters away in the front row and Iain Learmonth who helped co-ordinate the test calls over IRC.

Thanks are also due to Steve McIntyre, the local Debian community, ARM and the other sponsors for making another mini-DebConf in the UK this year.

Remko Tronçon: Optimizing Static Sites

Planet Jabber - 6 November, 2015 - 23:00

As an excuse to play around with some web stuff, I pretended my website was getting so much traffic it was costing me an arm and leg to host it, and that my users complained it was too slow for them. Because my website is statically generated, optimizing it was pretty low hanging fruit, so I set out to do a few tweaks to optimize it, and wrote them down here for future reference.

Continue reading post

ProcessOne: Elixir Paris Meetup #3 Summary

Planet Jabber - 6 November, 2015 - 17:58

After having been inactive for some time, Elixir Meetup reboot gathering happened last Tuesday in Paris. It gathered quite a large crowd of enthusiastic developers that came to exchange and learn about Elixir programming language.

The talks were a good mix of highly advanced demos and good overview for newcomers. Arnaud Wetzel and Antoine Reyt demoed how to build an robust, scalable and fault-tolerant ad-server. The demo was very impressive and coverage many concept of the Elixir environment, including Erlang supervision process, macros, etc. The result of their work with explanations and screenshot from the demo is published on Github: awetzel/ssp_demo.

Following that excellent demo, I (Mickaël Rémond) covered the history of the Elixir programming language and explained the reasons of the success and the key features. Here are the slides of my presentation:

Next Elixir Paris Meetup will take place on November 25th, with a focus on Phoenix framework. Given the success of our third meetup, we will need for sure a much bigger room :)

You can join us on Meetup: Elixir Paris

Distribuir contenido