See,&nbsp; That&#39;s a shame.<br>
<br>
That is not an apology for being rude.&nbsp; It&#39;s an attempt to justify being rude which is a big difference.<br>
I said you offended me and you chose to spend several paragraphs
retorting and then semi-apologizing in the end but with a hint of I am
not wrong but whatever I&#39;m sorry you took it wrong......sigh. I have to
tell the same thing to my kids.&nbsp; Just knock it off.<br>
Any more like that and I will just ignore it.<br>
<br>
<br>
You walked into our door and started complaining.&nbsp; If anyone else out
there reads the original email as anything but a collection of rude
comments guaranteed to piss anyone off who has worked hard on this
project, please chime in.....<br>
<br>
Tomorrow is the day we release 1.0.0 Three Years since the idea to make FreeSWITCH was first hashed.<br>
Maybe now we will have more time to make more documentation but I&#39;m
sure it will never be enough for some people no matter how hard we
try..&nbsp; BTW there is also a wiki at <a href="http://wiki.freeswitch.org">http://wiki.freeswitch.org</a> with
hundreds of pages of docs.<br>
<br>
Anyway, I said I am not doing the flame war thing so Here you go:<br>
<br>
<a href="http://www.freeswitch.org/docs/">http://www.freeswitch.org/docs/</a><br>
<br>
The is the &quot;magic link&quot; also known as the button marked &quot;API&quot; on the top menu on our homepage.<br>
<br>
There is an example endpoint and app skel in mod_skel and mod_reference.<br>
<br>
There is a header file called switch_module_interfaces.h<br>
<a href="http://www.freeswitch.org/docs/switch__module__interfaces_8h.html">http://www.freeswitch.org/docs/switch__module__interfaces_8h.html</a><br>
<a href="http://fisheye.freeswitch.org/browse/FreeSWITCH/src/include/switch_module_interfaces.h?r=8579">http://fisheye.freeswitch.org/browse/FreeSWITCH/src/include/switch_module_interfaces.h?r=8579</a><br>
<br>
There is a description of the module design in this document.<br>
<a href="http://www.freeswitch.org/node/117">http://www.freeswitch.org/node/117</a><br>
<br>
Every modules in the applications folder is a working example of all the ways to use the API.<br>
<a href="http://fisheye.freeswitch.org/browse/FreeSWITCH/src/mod">http://fisheye.freeswitch.org/browse/FreeSWITCH/src/mod</a><br>
<br>
Most of the functions you will need to make an Application are found in the switch_ivr family of function namespace.<br>
To make an endpoint you need most of the API.<br>
<br>
Anything you are not allowed to use it not available to you.&nbsp; All of
the objects are opaque and perhaps there are some things you can do
wrong but we do our best to force you into the right direction with the
API.<br>
<br>
There is a higher level scripting interface to the application API to further simplify things if the C API is too challenging.<br>
<br>
<br>
Most functions start with the name of the header file they live in,
application are launched with the session that was associated with the
call and any function you can call on that session or the channel
derived from that session is probably safe though I would not recommend
playing with the channels states etc because that is an advanced
concept I would not try as my first experiment.<br>
<br>
If anyone else out there who had made some modules would care to chime in on how they got started that would be nice too.<br>
I have written most of the ones in tree myself so I can only comment on those.<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br><br><div class="gmail_quote">On Sun, May 25, 2008 at 7:31 PM, Matthew Kaufman &lt;<a href="mailto:matthew@matthew.at">matthew@matthew.at</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">Anthony Minessale wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;ll give you a heads up. &nbsp;I could rant back and start a flame war with you over this but I won&#39;t.<br>
<br>
Plain and simple, I read this email and got instantly annoyed.<br>
</blockquote></div>Well, that wasn&#39;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)<div class="Ih2E3d"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Especially....<br>
<br>
&quot; Speaking of which, a slightly different architecture/coding style might<br>
have made the interfaces between the modules and the insides more<br>
immediately clear...&quot;<br>
<br>
</blockquote></div>
There is a difference between minor critique of style (I said &quot;slightly
different&quot;, 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.<br>
<br>
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
&quot;switch_core_session_get_channel()&quot;
is something that a module apparently should be calling (as I can see
mod_iax.c doing, for instance) whereas &quot;switch_core_timer_next()&quot; looks
to me like something used internally that it probably isn&#39;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 &quot;these are the functions you&#39;re probably
going to need to call to implement X type of module, and if you don&#39;t
call them, it is likely that you&#39;ve forgotten something&quot;.<br>
<br>
Now that&#39;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&#39;s a clear distinction, but not found that yet. Or there might not
be any good reasons other than &quot;you were the developer and you decided
to do it that way&quot;, which is also fine, as it is your code to set the
style of.<br>
<br>
As I said, it wasn&#39;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.<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Stick with Asterisk then, I&#39;m sure you will much more luck........<br>
<br>
</blockquote></div>
I think I&#39;ve already made it clear that I think the Freeswitch
architecture is superior, and that that&#39;s why I&#39;ve even chosen to
develop modules for this rather than something else.<div class="Ih2E3d"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
and ....<br>
<br>
&quot;I&#39;m doing ok, but my<br>
time is very valuable and not well-spent by figuring this stuff out from<br>
the source code instead of looking at the reference docs.&quot;<br>
<br>
HELLO? how valuable do you think my time is sir? &nbsp;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 &quot;except for one thing ....&quot; I
will gladly offer you a refund on what you paid for the software.<br>
<br>
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?. &nbsp;I do not intend to supply you with any
helpful information until you apologize for your rude attitude.<br>
<br>
</blockquote></div>
Well, if you found it rude, than I apologize. I understand that you&#39;ve
been working hard on this software, and the reported successes of users
of the code is a testament to that.<br>
<br>
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&#39;re looking for.
But if I&#39;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.<br>
<br>
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&#39;t found it.<br>
<br>
I&#39;m not asking to have everything handed to me on a silver platter. I&#39;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&#39;ve managed to find so
far)... and my opinion that if it were, maybe there&#39;d be more
contributed modules... which I think would be a good thing for your
project.<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
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. &nbsp;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.<br>
<br>
</blockquote></div>
You are right, I do not owe you anything. And I apologize if you think
that&#39;s what I claimed, because I&#39;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.<div><div class="Wj3C7c"><br>
<br>
Matthew Kaufman<br>
<a href="mailto:matthew@matthew.at" target="_blank">matthew@matthew.at</a><br>
<a href="http://www.matthew.at/" target="_blank">http://www.matthew.at</a><br>
<br>
<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/">http://www.cluecon.com/</a><br>
<br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br><a href="http://iax:guest@conference.freeswitch.org/888">iax:guest@conference.freeswitch.org/888</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>pstn:213-799-1400