(Unofficial) Docker image of FreePBX 15 + Asterisk 16 - izPBX project

I really wish people would stop doing this 8-(

You have a whole bunch of problems waiting for you. Firstly, you have a new and exciting level of NAT problems by putting it inside docker.

Secondly, because Docker has to proxy ports individually, you’ve limited the RTP range to be 10000-10200, which means at most 50 simultaneous calls and as a wonderful bonus to that, you’ve removed all the security that randomizing RTP gives you (which you really want because spoofing RTP is trivial)

Thirdly STOP COMPILING ASTERISK. REALLY. STOP DOING THIS. There’s a bunch of projects that do this for you, and do testing and QA and everything, and even more importantly compile it correctly. I was happy and pleasantly surprised to see that you did actually compile it with libunbound, which is the first I’ve seen in ages, but you also installed Motif, which is 100% useless and dead.

Finally, Docker is totally the wrong tool for this, and I don’t know how many times I can say this. The correct tool is LXD. Docker was designed for stateless microservices. They’ve put persistence in, because why not, right? But, the whole Docker idea is based around ‘one service == one container’.

FreePBX is Asterisk, Apache, MySQL and NodeJS at the bare minimum. All of those things need to update themselves, which means THEY need persistent storage, and suddenly you’ve got the entire container exported via persistant storage and… hey, that’s exactly what LXD does for you!

I am sorry to rain on your parade, but I’ve said this a bunch of times. LXD good, Docker Bad. Docker EXCEPTIONALLY BAD for VoIP unless you’re using host networking or totally ignoring RTP.

3 Likes