A typical bossy troll-gear commanding request and yea I have heard loudly enough. Let me tell you that you are asking too much from the FS developers in particular and to the FS community in general. To begin with, get the FS source code and start reading it line by line and do some coding with emphasis on attention-to-details afterwards some thorough practical experimentation with it. IMHO, advocate a fund raising campaign for your wishlists as well as convince O'reilly and maybe your employer to sponsor a book funding for this project. You should remember that the only thing left free in this world is the air that we breath and the rest, you ought to pay for the time and effort of someone. Gone are the days when some geeks in a basement darkroom has to write a code of something that will benefit all humankind(excluding the terrorist bcoz they are not humans after all rofl ) and distribute it out to the end corners of the universe for free because it was for fun then guys like you and me will just use it right away for our business purposes.
Hi all,
First, I apologize for first asking for documentation and then going silent for three weeks. I am very busy but I hope you find the thoughs below somewhat useful. I believe I cannot help much with them, because
- let me first try to put my efforts in context: The documentation doesn't need to be foolproof or 'for dummies' but it must be accessible for a reasonably intelligent person. That person is a newbie in VoIP but is used to good software (Linux (don't flame me, BSD techies), postgres, courier, postfix, samba, ... all those projects have in common that they have fantastic, throughout documentation). They also have a responsive community which I think FS has, or is in the way of having if you like.
That said I think we need, in the wiki, with high visibility (= main page): - what is voip. I think we all have this one down but still.
- putting voip concepts in context (codecs, applications, servers. frameworks). Here is where you put some order in the concepts surrounding the technology, and define FS more in depth. They may have a different meaning in another context. For example: things like 'what do you mean by 'application' in freeswitch: is it a regular executable run by linux itself, or is it a script run inside freeswitch?' Maybe both ways are supported? Or is this an entirely different thing? That may seem a tiny detail but it helps me put things in context (why I think this is important: if the model leans toward 'execute everything inside FS' it means, at least, danger of contention. If then FS talks to databases or whatnot, it may extend further and you better be ready to identify where will the bottlenecks be coming from under stress; if, on the other hand, you lean towards launching processes in the underlying OS and letting them run, it means a very different model, IPC (Inter-process communication), overhead of launching/tearing down external processes and you get into OS issues like file permissions, etc. This is why I like to know). Example: Zope, a web framework, is written in Python and can execute Python scripts but inside Zope only a subset of Python is available (for security) and exception handling and other details are confusing, in fact they aren't explained anywhere. Zope is great software and has terrific potential but only those very close to its development can use it effectively. Back to freeswitch, in regard to script execution, I believe anything that deviates from running a regular, unrestricted javascript script (is javascript the preferred scripting language for freeswitch? I'm not sure) must be noted down for anyone to know. Feel free to tell me whether I'm making any sense here.
Also: What languages are available for scripts? Bindings?
- best practices: (We are in beta. Maybe it's too early to define best practices?) in a framework you are free to choose how you do things. The devil's in the details and you are left wondering if you are stressing it and not benefitting from the 'true' way. I'm out of examples here. Let me digress for a moment (again) to Python. In Python you can do things like you did in other languages but there's usually a 'Pythonic' way. Usually it's more elegant and easier than the old mindset. For example, the usual 'iterate over a list and delete items from it' can be done elegantly on in a clumsy way because the for clause will skip items if you delete in place off the list it's iterating over. Why I'm bringing this over: To a newbie (to me at least) best practices are gold because it means I have something down and can move over to the next thing. If the developers think anything must be done a particular way, please say so, specially if there is more than one way to do it and the other ways are bad or inefficient in any respect.
- When a page in the wiki is outdated, please make a note saying so and explain in what way it's outdated. So someone new to the wiki can at least know if the entry is totally outdated or if it only needs small updates like listing a new codec. I've seen remarks on the list about a wiki page being 'outdated'. It's very easy to go to the wiki and put 'oct 07: <your name>: outdated, need to document new behavior in xzzyzzy option'. Maybe I'm asking for too much but hey, you wanted feedback. As ESR puts it, asking questions the intelligent way gets them answered half-way, so maybe someone seeing that entry can try it and add 'oct 07: <name>: didn't work for me, filed bug report number this-and-that'. So now you can go to the bug tracker and see the state, without cluttering up the wiki too much?
- What hardware works with freeswitch. Do you plan to support BRI/PRI/T1/E1 etc cards? Which ones? If so, when? This information whould be prominent in the wiki, in the 'what does freeswitch do?' It positions FS, and someone evaluating VoIP solutions and skimming through the wiki would like to know where FS stands: You are much better suited than me for capturing this in a few phrases. Also: Roadmap?
- And last but not least, anyone who gets interested (like me) and wants more detail must have accessible another crucial thing: the reference. Getting past the generalities and marketing speak (scalable, blah blah) we must get down and dirty fast. Make a good reference of every command (I know 'command' is probably inadequate because there is more than 'commands' in freeswitch but you get the idea), order it as you like, as long as everything is in there. With 'last updated' tags so we know if something has not been touched from 2003, or is recent.
As another post said, probably the wiki holds a lot of this already but it's sparse and examples don't abound.
I'm afraid I just came up with a lot of 'someone should...' items but I think those a newbie cannot find out for himself and that's why I'm asking for someone else to do them. Also, I tried to reason them a bit. Let me know your thoughts? Regards Lucia
On Fri, 21 Sep 2007 23:31:09 +0200, Michael Jerris <mike@jerris.com> wrote:
As Anthony had mentioned in another thread, we have heard your ongoing complaints that there is not enough documentation, but we don't know what kind of documentation you really want. Please respond to this thread with what information that you were not able to find on the wiki, that would help you in using freeswitch. If no one responds, GREAT! Were done and don't need to document anymore. Otherwise, this is your opportunity to speak up and say what is missing.
Mike
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org