<p>Leveraging freeswitch event socket &amp; customized module can accomplish all your goals.</p>
<div class="gmail_quote">On May 16, 2011 7:51 AM, &quot;Kurtis Heimerl&quot; &lt;<a href="mailto:kheimerl@cs.berkeley.edu">kheimerl@cs.berkeley.edu</a>&gt; wrote:<br type="attribution">&gt; Hello Freeswitch Users!<br>&gt; <br>
&gt; My name is Kurtis Heimerl, and I&#39;m a graduate researcher at the<br>&gt; University of California, Berkeley in the Technology and<br>&gt; Infrastructure for Emerging Regions (TIER) group under Eric Brewer.<br>&gt; We&#39;re currently investigating the use of OpenBTS<br>
&gt; (<a href="http://openbts.sourceforge.net/">http://openbts.sourceforge.net/</a>) for providing cellular coverage via<br>&gt; low-cost base stations in low-density parts of the world. This project<br>&gt; is called The Village Base Station. In support of that project, we&#39;re<br>
&gt; also investigating the use of Freeswitch to support OpenBTS and<br>&gt; provide a flexible, extensible, and simple platform for deploying<br>&gt; voice/sms/data applications on the basestation itself. Towards this<br>
&gt; end, I&#39;m asking you, the freeswitch community, for advice and<br>&gt; direction on some of our research goals.<br>&gt; <br>&gt; The basic story is simple. OpenBTS uses a software radio and generic<br>&gt; PC to provide cellular service. As a byproduct of this architecture,<br>
&gt; we also gain the ability to run freeswitch applications &quot;locally&quot;<br>&gt; (concurrently with OpenBTS), and take advantage of the benefits this<br>&gt; tight coupling provides us. These benefits are numerous; calls/SMS<br>
&gt; between BTS users can be much cheaper, as they do not use any backhaul<br>&gt; bandwidth. Applications can query the system for more information<br>&gt; about users, such as location or status. As an example, unlike<br>
&gt; traditional GSM telephony applications, we are able to query if users<br>&gt; are currently available on the network. This could be used to create<br>&gt; voice &quot;chat lists&quot;, which tell participants which of their friends are<br>
&gt; currently within cellular range.<br>&gt; <br>&gt; We foresee 6 features required to support these &quot;local&quot; freeswitch<br>&gt; applications on our OpenBTS system. I&#39;m very curious how the<br>&gt; freeswitch community feels about these possible additions, as well how<br>
&gt; they might be implemented.<br>&gt; <br>&gt; There are a few that are already available in freeswitch, but may be<br>&gt; rougher than we would like. These include:<br>&gt; <br>&gt; 1) Identity: The ability to query for user&#39;s status, numbers, etc.<br>
&gt; This seems simple enough in the existing system. However, we&#39;d like to<br>&gt; provide hooks for applications to act on these sign-ons or offs. For<br>&gt; instance, an app may hold messages until a phone logs onto the system<br>
&gt; and push them then. My understanding is that this should be simple,<br>&gt; probably hooking onto &quot;SIP presence&quot; events?<br>&gt; 2) Storage: Freeswitch currently seems to support only per-application<br>&gt; storage, with limited support for cross-application storage (mostly<br>
&gt; user directories). This is occasionally problematic: one issue we&#39;ve<br>&gt; heard is that it is difficult to place messages into voice mailboxes<br>&gt; from other apps. We&#39;d like a more unified storage framework. Or...<br>
&gt; 3) &quot;Pipes&quot;: This is the ability to pass messages between freeswitch<br>&gt; apps. This seems pretty well supported though simple dialplan<br>&gt; interactions, though the modules themselves may not provide enough<br>
&gt; functionality. Is there a way to do this inside of apps? I consider<br>&gt; this an alternative to the storage framework discussed in #2<br>&gt; <br>&gt; Lastly, there are three functions we don&#39;t believe are well-supported<br>
&gt; in freeswitch. These are...<br>&gt; 1) Privacy: We expect our BTS to be used in politically sensitive<br>&gt; areas. Given this, freeswitch could provide an anonymity layer,<br>&gt; providing short term phone/SMS numbers, or directing communications<br>
&gt; through more secure layers (e.g., Tor).<br>&gt; 2) Asynchrony: While freeswitch seems to support basic asynchrony<br>&gt; though its event system, I couldn&#39;t find any way to delay events for<br>&gt; indeterminate times. For instance, we may want to schedule a traffic<br>
&gt; warning for 1PM every Wednesday to every phone currently on the<br>&gt; system. Is there a way to do that currently?<br>&gt; 3) SMS: Freeswitch seems to currently support SIP chat messages (using<br>&gt; SIMPLE?). We need to either extend OpenBTS to speak SIMPLE, or extend<br>
&gt; freeswitch to speak OpenBTS&#39;s SMS protocol. Neither seems particularly<br>&gt; difficult. This will allow our apps to send and receive both voice and<br>&gt; SMS messages from users.<br>&gt; <br>&gt; We believe these core functions will enable a wide variety of BTS<br>
&gt; applications. I have a laundry list of those, but I&#39;ll omit them for<br>&gt; sake of space.<br>&gt; <br>&gt; If any members of the community (that means you!) have any directions,<br>&gt; ideas, projects, or thoughts, please pass them on! We&#39;re just<br>
&gt; beginning this part of the project, and getting the lay of the land.<br>&gt; Feedback is critical at this point.<br>&gt; <br>&gt; Thanks!<br>&gt; <br>&gt; _______________________________________________<br>&gt; FreeSWITCH-users mailing list<br>
&gt; <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>&gt; <a href="http://www.freeswitch.org">http://www.freeswitch.org</a><br>
</div>