[Freeswitch-dev] hello and question

Matthew Kaufman matthew at matthew.at
Sun May 25 20:31:12 EDT 2008

Anthony Minessale wrote:
> I'll give you a heads up.  I could rant back and start a flame war 
> with you over this but I won't.
> Plain and simple, I read this email and got instantly annoyed.
Well, that wasn't my intent at all. Please read on for some 
clarification. (It not being my intent to start a flame war either, 
simply to clarify where I was coming from when I wrote that email late 
last night)
> Especially....
> " Speaking of which, a slightly different architecture/coding style might
> have made the interfaces between the modules and the insides more
> immediately clear..."
There is a difference between minor critique of style (I said "slightly 
different", as you can see) and thinking that the design is bad, the 
software useless, or you a bad person. It was not my intent to 
personally offend you (or any other contributor), but simply to point 
out my view *as a new potential external developer* that, had things 
been designed or implemented slightly differently, it would have been 
easier *for me* *in my opinion* (not to be confused with the opinions of 
other folks who might wish to develop modules) for me to come up to speed.

An example (that I did not include in my original message, which might 
have made my intent more clear) is that it is very hard to tell that 
"switch_core_session_get_channel()" is something that a module 
apparently should be calling (as I can see mod_iax.c doing, for 
instance) whereas "switch_core_timer_next()" looks to me like something 
used internally that it probably isn't useful (or might even be 
dangerous) for me to call. If there was a more clear delineation (in 
their naming) of which switch_* functions are intended to be called by 
certain types of modules, and which are intended entirely for internal 
use, it might be possible for a new developer like me to pull up a list 
of "these are the functions you're probably going to need to call to 
implement X type of module, and if you don't call them, it is likely 
that you've forgotten something".

Now that's just my opinion. There might be perfectly good reasons why 
the naming is set up the way it is, or I may have even missed that 
there's a clear distinction, but not found that yet. Or there might not 
be any good reasons other than "you were the developer and you decided 
to do it that way", which is also fine, as it is your code to set the 
style of.

As I said, it wasn't my intent to personally offend you but to provide 
an opening for some constructive input. I apologize for having caused 
such a reaction on your part.

> Stick with Asterisk then, I'm sure you will much more luck........
I think I've already made it clear that I think the Freeswitch 
architecture is superior, and that that's why I've even chosen to 
develop modules for this rather than something else.
> and ....
> "I'm doing ok, but my
> time is very valuable and not well-spent by figuring this stuff out from
> the source code instead of looking at the reference docs."
> HELLO? how valuable do you think my time is sir?  I have been working 
> day and night on this project for more than two solid years and I 
> apologize that it only fits your needs "except for one thing ...." I 
> will gladly offer you a refund on what you paid for the software.
> You have some nerve to come here and plan to make a project out of my 
> software then complain to me that it is not perfectly handed to you on 
> a silver platter....WTF?.  I do not intend to supply you with any 
> helpful information until you apologize for your rude attitude.
Well, if you found it rude, than I apologize. I understand that you've 
been working hard on this software, and the reported successes of users 
of the code is a testament to that.

It is also my opinion that the value of your software hinges heavily on 
what is contributed in the way of modules... I might be wrong, it might 
be that you and the group of folks who have been contributing so far 
will write all the modules it needs for the success you're looking for. 
But if I'm right, then listening to the opinions of new folks who show 
up who are trying to write modules might actually be of some benefit.

Just because I find my time to be valuable does in no way diminish the 
value of yours. *My opinion* is that my time is not well-spent figuring 
this stuff out from source code. That is likely the opinion of other new 
folks who might want to develop modules. I might be wrong about that 
too. In my experience, even your time would likely be better spent if 
there was more reference documentation. That is why I suspect that it 
actually exists, at least in the form of notes somewhere, and that I 
simply haven't found it.

I'm not asking to have everything handed to me on a silver platter. I'm 
asking for pointers to what does exist that I might have missed, and 
providing my opinion as a newcomer that developing modules could be 
easier (at least given the documentation I've managed to find so far)... 
and my opinion that if it were, maybe there'd be more contributed 
modules... which I think would be a good thing for your project.

> To summarize I do not owe you anything, you can learn how it works and 
> write the missing documentation as a repayment for the software being 
> open and free for you to use if you wish.  Or you can come to IRC 
> (once you have publicly apologized) and lots of people including me 
> would be happy to point you in the right direction.
You are right, I do not owe you anything. And I apologize if you think 
that's what I claimed, because I've never thought that. I do plan to 
learn how it works, even if there is nobody who wants to point me at 
existing documentation, or even if there is no existing documentation. 
If that is the case, it will take longer for my module to be written and 
make it less likely that it will interoperate properly with the core 
code. That will be my problem, of course, but *my opinion* is that it 
will also be the experience of other module developers... maybe scare 
them off entirely. And if that happens, the total collection of 
Freeswitch and its modules will be less valuable than it might be 
otherwise. Which, again, is *simply my opinion*. Perhaps it would 
instead be better if a small core group of committed developers writes 
them all, and those of us with our own crazy ideas never have our 
modules see the light of day... you never know.

Matthew Kaufman
matthew at matthew.at

More information about the Freeswitch-dev mailing list