gerbra | 21 Apr 09:30 2016

Fw: new message



Open message


gerbra <at>

ejabberd mailing list
ejabberd <at>
Randy Bush | 17 Apr 06:02 2016

ubuntu cripto

i am lazy/conservative and prefer to run default/vanilla versions.  and
ubuntu 14.04 comes whith a rather old ejabberd package :(

i wanna do the equivalent of

s2s_use_starttls: required
s2s_ciphers: "HIGH:!3DES:!aNULL:!SSLv2: <at> STRENGTH"
  - "no_sslv2"
  - "no_sslv3"


  module: ejabberd_c2s
  ciphers: "HIGH:!3DES:!aNULL:!SSLv2: <at> STRENGTH"
    - "no_sslv2"
    - "no_sslv3"

except i am stuck in erlang

# ejabberdctl convert_to_yaml ejabberd.cfg ejabberd.yml
Error: command "convert_to_yaml" not known.

clue bat appreciated

Marcelo Terres | 14 Apr 10:44 2016

Delivering Asterisk IVR data to softwares using XMPP


I developed a little project (a PoC) to "integrate" Asterisk IVRs with
"other softwares", allowing that data already entered in IVR can be
used in other stages of a customer service, for example.

The main goal is to provide more efficiency and interoperability
between different solutions in a heterogeneous enterprise scenario.

Despite the fact that I started this project to integrate Asterisk
IVRs with customer service softwares, this is a multipurpose project
that can be used with any kind of software that you want.

The project uses the Asterisk's ARI API and XMPP (PubSub) to deliver
the information.

You can find more informations (including source code for download) in
my blog at

Any doubts or suggestions are welcomed.


Marcelo H. Terres <mhterres <at>>
IM: mhterres <at>
Raoul Duke | 9 Apr 20:31 2016

multiple hosts/passwords on external component


I'm trying to configure an external component (jitsi videobridge) and specifically to replicate a working confliguration from prosody, namely:

    component_secret = "ABCDEF"

Component ""
    component_secret = "QWERTY"

based on the example here:

I came up with:

    port: 5347
    module: ejabberd_service
    access: all
        password: "ABCDEF"
        password: "QWERTY"

I had multiple problems with this config:

* I couldn't auth the second component name ( with the associated password no matter what I tried (even using a standalone utility to check the auth only).  I ended up having to use the same password for both to get auth to work.   

Having looked at the code for ejabberd_service.erl

it looks like the state record has a list of hosts mapped to one password.  so I'm not sure how that implementation fits with the example config I referenced (

i.e. there doesn't seem to be a "password per host" concept there.  it just seems there is a "multi hosts to single pasword".

am I (as I expect) just missing something obvious here?

* with the config as above (but both hosts having the same password) I then had problems with the clients of the 2 distinct components (both with distinct TCP connections to port 5347) seeming to get "crossed wires" in their responses i.e. ping response from one stream seeming to go to the other stream.  this reinforces my sense that I've just misunderstood / messed-up the config somehow.

what I ended up doing to get it functional was to put the 2 hosts on distinct ports, i.e. 

    port: 5347
    module: ejabberd_service
    access: all
        password: "ABCDEF"

    port: 5348
    module: ejabberd_service
    access: all
        password: "QWERTY"

while I don't see any particular downsides to this approach (but if you do then please enlighten me) is there a way I can do it as per the docs?

Any clariifcation / help would be much appreciated.


ejabberd mailing list
ejabberd <at>
Yiorgis Gozadinos | 7 Apr 10:46 2016

PubSub RSM in ejabberd

We recently upgraded to 15.11 from 14.07. Our pubsub client implements XEP-0059 which worked just fine before the upgrade, but not afterwards.
Is there something we are missing or is this a bug?
Thanks in advance!
Yiorgis Gozadinos

ejabberd mailing list
ejabberd <at>
Edward Hibbert | 3 Apr 22:16 2016

MySQL schema

I'm just getting started with ejabberd, so apologies for any elementary mistakes or breach of etiquette.
I've configured ejabberd to store its DB in MySQL.  I saw a problem which I think was because of the way the muc_room table is defined.  The opts column seems to be used to store the affiliations, in a rather inefficient format (but presumably there's a reason for that). However it's only defined as a TEXT, which means that if the number of affiliations becomes large, then the column will get truncated, and bad things will happen.
I've changed it to a LONGTEXT in my schema, but I was wondering:
  1. Am I correct that this schema is wrong?
  2. What's the reason for the format where the affiliated users are stored in a string-encoded ASCII format?
  3. Doesn't this use of the opts field to store all affiliations (rather than a separate table) mean that the load on the DB isn't tenable at scale, when each affiliation change will result in an enormous UPDATE call?
As I say, I am new, so may be wildly off-base.
ejabberd mailing list
ejabberd <at>
Steven Livingstone | 30 Mar 23:39 2016

ejabberd plugin posying to an external server

Hi. I'd like some advice on the best way forward.

I'd like to implement some logic that sits between the sender of a
message and the receiver (both are on the same eJabberd host) such
that I can inspect the message body and if certain characters are in
the body, I can post them to an external web service (i don't need to
await a synchronous reply, i am really just logging).

I've written one or two ejabberd modules before but I am conscious
that writing something that sits in the middle in this manner could
become a bottleneck if not done properly.

Should I be looking at the gen_server behavior and pushing anything
that needs to be posted to the external web service to pass to a local
process from within the plugin, rather than the plugin making the http
request itself?

The plugins I have written so far haven't used the gen_server
functionality as they have just tied into the hooks and done some
logging and authentication so this is new to me, so any tips much

many thanks,
Mickaël Rémond | 30 Mar 18:33 2016

ejabberd 16.03: Experimental MIX support, LDAP, SQL and Riak improvements

Hello all,

We have made it one more time: ejabberd development keeps on its steady pace and we are energised by the growing momentum. Thank you all for your feedback and contributions for that release.

This new ejabberd release contains many many bugfixes, internal improvements, but also, as usual, some new features.

We are very excited by the experimental support for Mediated Information eXchange (MIX) we have added in ejabberd 16.03. This is the future of Multi User Chat for XMPP. While still rough, you can already give it a try and help improve the specification. You can learn more from our previous blog post: Experimental MIX Support for Group Conversations added to ejabberd:

We have also started improvements of various third-party backends such a Microsoft SQL Server and LDAP. This is the beginning of a process to improve support of those backend, so please, bare with us and keep us posted on your results.

# Changes

## Protocols

- mod_mix: Experimental support for MIX (XEP-0369)
- mod_http_upload: Add support for XEP-0363 v0.2

## Core

- Use SASL PLAIN authzid as client identity if auth module permits it
- Make auto generated resources shorter
- Start ezlib only if required, as it’s optional
- Make it possible to get virtual host of a registered route

## LDAP improvements

- Fix issue getting shared roster
- Do not call to deprected/undefined functions from mod_shared_roster_ldap
- Proper naming for LDAP test function for shared roster

## SQL databases support

- New parse transform for SQL queries, use prepare/execute calls with Postgres
- Support for run-time SQL queries selection depending on DBMS version
- In SQL files create Users table with SCRAM support by default
- Do not auto append IP suffix to usernames
- Fix some LIMIT related problems with MSSQL
- Update Microsoft SQL Server schema

## Riak
- Add support for Riak authentication
- Fix is_connected/0 function
- Keep alive Riak connections by default

## API and Commands

- Add support for ReST admin commands that are only restricted by source IP. This is key for easy integration with other backend using ReST API.
- Fix add_commands and remove_commands options
- Pass noauth when auth isn’t provided
- Improve ban_account command to work with other DBs than Mnesia
- Escape quoting node name for ejabberdctl ping
- Bare JID in ‘from’ of Roster Push (RFC 6121 section 2.1.6) in mod_admin_extra
- Fix result type of “connected_users_info” command
- New command delete_mnesia deletes all tables that can be exported. This is useful after you have migrated to another backend, like SQL.

## PubSub

- Unregister route at the very end
- Define PubSub node configuration per route/host explicitly
- Fix config fetch and pubsub disco after host/serverhost cleanup

## Admin and build chain

- Update OTP release to use R17.5 and drop release 17.1
- Compile ejabberd_config early to stop undefined behaviour warnings
- Fix start via systemd
- Fixed type specifications for ‘rebar doc’
- Specify lacking nodename in ejabberdctl

## Dependencies

- Update p1_pgsql to 1.1.0: This add support for prepared statements.
- Uptate fast_yaml to 1.0.3: This improves the error reporting on syntax errors in Yaml configuration file.
- Use the v0.2 release of luerl instead of a commit.

## Test framework

- Add Coveralls support
- Add ability to run the ejabberd test suite in a modular way. You can now run the test suite, even if you only have a a single backend locally.

## Other

- mod_mam: Don’t store watchdog notifications in MAM archives
- mod_multicast: Fix Addresses element which lacked others local destinations
- mod_offline: Mark get_queue_length obsolete, and use count_offline_messages
- Update Gallician translation

Thank you all !

Mickaël Rémond

ejabberd mailing list
ejabberd <at>
Gaurav Jain | 28 Mar 04:15 2016

Intermediate CA cert for ejabbers

This is my follow-up question:

I received 4 files from positiveSSL



COMODORSADomainValidationSecureServerCA.crt ( cat of above 3)

Which file should be used for intermediate certificate with ejabberd?

ejabberd mailing list
ejabberd <at>
Gaurav Jain | 28 Mar 03:54 2016

Configure SSL with ejabberd

* I have a comodo positiveSSL certificate that I use with ejabberd.

* I created a ejabber.pem file from server.key and server.crt

* I ran ejabberd with it and it worked i.e. iOS client can talk to ejabberd.

But I get error on cmd:

openssl s_client -connect 


41220:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/ssl/s23_clnt.c:618:

I tried -CAfile option with all files provided by positiveSSL. But it did not help.

Could you please point me to the issue?

ejabberd mailing list
ejabberd <at>
Santiago Ignacio Poli | 27 Mar 21:42 2016

Message delays in ejabberd


Our ejabberd cluster is having very serious problems in production: All the messages are taking an eternity to be processed. The IQs seem to be queued and the responses are sometimes received 5 minutes after. Even simple messages take minutes to reach the other end.
We have approximately 100k concurrent connections across three nodes (33k connections per node). Each of them is running inside an Amazon EC2 r3,xlarge (4 cores, 30GB ram, 80GB SSD). We think hardware isn't the problem because after monitoring the nodes, we haven't seen any CPU or memory bottlenecks. Sometimes a few cores go to 100% but only for a second.

We have some custom modules (which are likely the problem). My guess is that the IQ handlers have very small queues but I haven't seen any configuration regarding that. We've changed the queue type from 'one_queue' to 10 queues (the documentation states that you have to put {queues, 10} but that didn't work. What worked was put only '10') and the problem still persists. We are using ejabberd 15.04

What configurations should we check? Is there any specific information  we can provide here to be more clear?

Thanks in advance

Santiago Ignacio Poli
Software Developer & Scrum Master  <at> etermax

ejabberd mailing list
ejabberd <at>