Today UPC broke my internet connection.. entirely. For 4 hrs. Four long, painful hours… up to this point I was having a nightmare trying to debug why a KVM based asterisk cluster was not talking to each another. Following the fairly straight-forward and very short walk through at https://wiki.asterisk.org/wiki/display/AST/Distributed+Device+State+with+AIS which is essentially the same (or 99% close!) on every Google-able page on the internet, I was getting nowhere. After compiling OpenAIS & Corosync and then recompiling Asterisk, the cluster worked.. until starting the cluster resource in Asterisk’s console which gave

ERROR[19134]: ais/clm.c:140 ast_ais_clm_load_module: Could not initialize cluster membership service: Unknown

And in the Corosync log:

Jul 11 13:16:17 corosync [IPC   ] Invalid IPC credentials.

It wasn’t till IRC & Google were wrestled from my hands that I really started to dig in the src directory and the accompanying documents. Tut tut I know. It was simple. There is a new (well how new I don’t know, but certainly I’ve found it nowhere else! Including Asterisk: The Definitive Guide) auth mechanism where you specify what users can send/receive messages via Corosync. Create a new file in

/etc/corosync/uidgid.d/

I called mine asterisk, and in it I added the user and group (both asterisk in my case) you want to allow. You can add as many as you want. So in mine I had:

uidgid {
        uid: asterisk
        gid: asterisk
}

And that was it. Quick restart of everything and it was fixed. Thank you UPC/unknown_individual_with_a_JCB you saved my sanity!

Advertisements