There is a sample endpoint module in tree, you can see it at: http://svn.freeswitch.org/svn/freeswitch/trunk/src/mod/endpoints/mod_reference/
Also, api docs (a little bit behind but should be accurate) are at: http://www.freeswitch.org/docs/ Other than that, the best reference is to look at a module similar to what you are trying to do, and to come ask specific questions on irc. Mike On May 25, 2008, at 8:31 PM, Matthew Kaufman wrote: > 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 > [EMAIL PROTECTED] > http://www.matthew.at > > > > > _______________________________________________ > Freeswitch-dev mailing list > Freeswitch-dev@lists.freeswitch.org > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev > http://www.freeswitch.org _______________________________________________ Freeswitch-dev mailing list Freeswitch-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org