Also, did you know that mod_xml_rpc not only does RPC but it also lets you access FSAPI functions by URL access which sounds to be the same idea as this.<br><br>Try it by building and loading mod_xml_rpc<br><br>The point your web browser at it<br>
<br><a href="http://my.fs.box:8080/webapi/status" target="_blank">http://my.fs.box:8080/webapi/status</a><br><br>The default login/password is "freeswitch/works"<br><br>The voicemail app can do this too see:<br>
<br><a href="http://my.fs.box:8080/api/voicemail/web">http://my.fs.box:8080/api/voicemail/web</a><br><br>you can actually use user@domain login based on your vm directory and auth per user and see your VM on the web.<br><br>
<br>When you go to /webapi/foo FSAPI function foo is called after an implicit content-type: text/html is sent.<br>
if you go to /api/foo it is up to your function to print the Content-Type header similar to a cgi<br><br><br><br><br><div class="gmail_quote">On Tue, May 27, 2008 at 10:46 AM, Anthony Minessale <<a href="mailto:anthony.minessale@gmail.com" target="_blank">anthony.minessale@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">cool, how much is the bounty?<br><br><div class="gmail_quote"><div><div></div><div>
On Tue, May 27, 2008 at 10:42 AM, EdPimentl <<a href="mailto:edpimentl@gmail.com" target="_blank">edpimentl@gmail.com</a>> wrote:<br></div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div>
I am putting a bounty to add RESTful WebServices in FreeSwitch.<br>The bounty ask that TONIC is use as the RESTful Framework.<br>TONIC should then be use to create simple CALLback application and establish ad-hoc VoiceConference.<br>
<br>To those not familiar with TONIC here is write up.<br><h2><a href="http://tonic.sourceforge.net/" rel="doap-homepage" target="_blank">Tonic</a> <span>A <b>REST</b>ful Web App Development Framework</span></h2>
<div>
<p>Tonic is an open source less is more, RESTful Web application development and Web site management <span>PHP</span>
script designed to do things "the right way", where resources are king
and the framework gets out of the way and leaves the developer to get
on with it.
</p>
<p>Tonic helps you develop Web applications that embrace the way the
Web really works, enabling your applications to scale, extend and work
with other systems easily.
</p>
</div>
<dl><dt>Everything is a resource</dt><dd>Tonic
works exclusively with resources, a resource is simply a piece of data
with some metadata accessable by a URL using HTTP methods. Everything
within a Tonic system is a resource and so can be handled via the
standard HTTP interface.</dd><dt>Domain modelling through resources</dt><dd>When modelling your problem domain within a Tonic system, every domain object is a resource or a collection of resources.</dd>
<dt>Keep it simple, stupid!</dt><dd>Following
the Unix philosophy of many small parts working together via a common
interface, Tonic uses resources as it's "programs" and HTTP as it's
"streams" to enable you to build complexity out of simplicity.</dd></dl>
<h3>Main features</h3>
        <p>Tonic embraces a number of standard Web
features and best practices, as well as features, principles and ideas
taken from PHP, Unix, and other software design patterns:</p>
<ul><li>Resource editing via HTTP PUT and DELETE methods (or via the Resource::save() and Resource::remove() PHP methods)</li><li>Easy to extend via new resource classes</li>
<li>HTTP basic and digest authentication</li><li>Resource method permissions to provide authorisation to individual resource methods</li><li>Output templating via Smarty</li>
<li>Output caching via HTTP 304 response codes and modified headers</li><li>Extendable resource storage types via adapters</li><li>Content negotiation</li>
<li>Match multiple URLs to a single resource</li><li>Follows Unix modular design principles</li></ul><br>And here is why everything one does or will do, should be done via RESTFul messaging..<br>
Think about it, Google, AMAZON, YAHOO have standardized on REST.<br><br><a href="http://www.infoq.com/articles/rest-introduction" target="_blank">http://www.infoq.com/articles/rest-introduction</a><br><a href="http://wiki.opengarden.org/REST/REST_for_the_Rest_of_Us" target="_blank">http://wiki.opengarden.org/REST/REST_for_the_Rest_of_Us</a><br>
<a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">http://en.wikipedia.org/wiki/Representational_State_Transfer</a><br><a href="http://rest.blueoxen.net/cgi-bin/wiki.pl?FrontPage" target="_blank">http://rest.blueoxen.net/cgi-bin/wiki.pl?FrontPage</a><br>
<a href="http://www.jibbering.com/2002/4/httprequest.html" target="_blank">http://www.jibbering.com/2002/4/httprequest.html</a><br><a href="http://java.sun.com/developer/technicalArticles/WebServices/restful/" target="_blank">http://java.sun.com/developer/technicalArticles/WebServices/restful/</a><br>
<a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_2" target="_blank">http://www.ics.uci.edu/~fielding/pubs/dissertation/software_arch.htm#sec_1_2</a> ******<br><br>-E<br><a href="http://mobiquity.ws" target="_blank">http://mobiquity.ws</a><br>
<br></div></div>_______________________________________________<br>
Freeswitch-users mailing list<br>
<a href="mailto:Freeswitch-users@lists.freeswitch.org" target="_blank">Freeswitch-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
<br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com" target="_blank">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com" target="_blank">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a><br>
<a href="http://iax:guest@conference.freeswitch.org/888" target="_blank">iax:guest@conference.freeswitch.org/888</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" target="_blank">googletalk:conf+888@conference.freeswitch.org</a><br>pstn:213-799-1400
</blockquote></div><br><br clear="all"><br>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
<br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com" target="_blank">MSN:anthony_minessale@hotmail.com</a><br>GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com" target="_blank">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a><br>
<a href="http://iax:guest@conference.freeswitch.org/888" target="_blank">iax:guest@conference.freeswitch.org/888</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" target="_blank">googletalk:conf+888@conference.freeswitch.org</a><br>pstn:213-799-1400