Even to this day, the out of the box upstream install scripts don't actually work on OpenBSD, and the software is absent from official OS repositories. Though I will nod to the fact that the upstream developers have made an attempt to get things working, they are doing stupid things in the process, like manually installing a magical 'Freeswitch' versions of openssl (stupid stupid stupid), curl and libedit. Honestly its like, once they cut their finger accidentally in the kitchen, and instead of cleaning and bandaging the injury, they went ahead and put their whole hand in a Garburator.
Anyway, I'll try and not be too cynical here since nestled inside the monstrosity(oops sorry, still being cynical) that is Freeswitch are the necessary bytes to have a working SIP telecom platform. I've made some decent progress in getting the software to compile and not explode in my face, and even took the time to give the @ports mailing list some updates about project status.
Stuff that works (or at least says that it works)
- Lots of manual twiddling was required here, and I still haven't turned on the c++ esl API that lets swig bindings start working (Specifically the ESL bindings to stuff like lua, perl, Java, and C#).
- Moral of the story is that fs_cli works, I'm possibly going to re-write it or write my own from-scratch version at some point to be less terrible, though at least it uses getopt (but not the operating system provided version of getopt).
- By the way, fs_cli has no license?
- I hope this is the most challenging module to enable and have working correctly. In total I spent several days and many dozen cups of coffee at the local Greasy Spoon, banging my head against this module trying to get it to work. The module depends (obviously?) on the sofia sip library from Nokia and has been dramatically patched since the last official release. Considering the transfer of so much Nokia IP to Microsoft I would be willing to bet that many of these changes will never be pushed to the official Nokia upstream library (not that the FS devs pushed many changes even before the Nokia/MS thing happened). Also, I flirted a bit with the changes that have arrived in the 1.4 tree of Freeswitch, and don't think much of them, (network layer violation badness).
Still to do
- Modules... many mods still need to be reviewed and enabled or deleted.
- Devise an appropriate default minimal configuration
- Fix hashing bugs (see my @ports mail)
- Launcher re-write (switch.c is full of badness... damn, cynical again)
- fs_cli re-write (how about a minimal level of security)
- String Slinging audit, there are lots of places I've seen that could be potential overflows.
- Memory pool draining; lets not see a repeat of stuff like heartbleed by not using memory pools.
- Update to 1.2-stable (current tree) as far as possible
A quick note on Project Goals
A reminder that this project is a 'shallow' fork of Freeswitch. I have no intention of going feature crazy and introducing anything other than a basic installation of Freeswitch that meets MY needs (SIP over TCP/UDP with TLS and SRTP). My goals specifically are feature and platform stability and security. I will be making attempts to pull security fixes from the upstream tree but I have no intention currently of ever updating past 1.2, if you think you need web sockets in your sip stack go install linux.