<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:D="DAV:" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:Z="urn:schemas-microsoft-com:" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Lucida Grande";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        background:#F6F6F6;
        border:none;
        padding:0in;
        font-size:12.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        background:#F6F6F6;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='color:#1F497D'>Hi Patrick,<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'>What
kind of .NET application are you developing? In the contrib folder there is the
.NET event socket code (I think that&#8217;s where it is). But I don&#8217;t
know anything about that.<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'>I do
know a bit about mod_mono, so I&#8217;ll talk about that:<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'>To get
mod_mono to build, you&#8217;ll need Windows and VS 2008 (well, I don&#8217;t
have the linux build steps anyways). You&#8217;ll have to generate mono.lib for
your compiler. From here:<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'><a
href="http://www.mono-project.com/Embedding_Mono">http://www.mono-project.com/Embedding_Mono</a><o:p></o:p></span></p>

<p style='background:white'><span lang=EN style='font-size:11.0pt;font-family:
"Lucida Grande";color:#333333'>&#8220;On windows you need to generate an import
library for mono.dll by getting the following file: <o:p></o:p></span></p>

<div style='mso-element:para-border-div;border:solid #DDDDDD 1.0pt;padding:
6.0pt 6.0pt 9.0pt 6.0pt;background:#F6F6F6'><pre style='background:#F6F6F6;
border:none;padding:0in'><span lang=EN style='font-size:11.0pt;color:#333333'>&nbsp;<a
href="http://anonsvn.mono-project.com/viewcvs/*checkout*/trunk/mono/msvc/mono.def">http://anonsvn.mono-project.com/viewcvs/*checkout*/trunk/mono/msvc/mono.def</a><o:p></o:p></span></pre></div>

<p style='background:white'><span lang=EN style='font-size:11.0pt;font-family:
"Lucida Grande";color:#333333'>and creating mono.lib with the command: <o:p></o:p></span></p>

<div style='mso-element:para-border-div;border:solid #DDDDDD 1.0pt;padding:
6.0pt 6.0pt 6.0pt 6.0pt;background:#F6F6F6'><pre style='background:#F6F6F6'><span
lang=EN style='font-size:11.0pt;color:#333333'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lib /nologo /def:mono.def /out:mono.lib /machine:x86<o:p></o:p></span></pre></div>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'>&#8220;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'>Make
sure your PATH has the Mono bin folder in it (such as &#8220;C:\Program
files\Mono-1.9.1\bin&#8221;). <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'>From
there, you can add mod_mono and mod_mono_managed to the build setting in the VS
SLN and compile them. Load mod_mono in the modules.conf.xml, then drop your apps
in &lt;fsdir&gt;\mod\mono\. If you compile debug, a few simple demos will
compile and load (they are in the mod_mono_managed source, Demo.cs). <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:.5in'><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='margin-left:.5in'><span style='color:#1F497D'>It&#8217;s
quite easy, as it uses the FS C++ API here&#8217;s a simple, pointless app in
Javascript for .NET:<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>import System;<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>import FreeSWITCH;<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>class JExample extends
AppFunction<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>{<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp; protected override
function Run()<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp; {<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;
Session.Answer();<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;
Session.Hangup(&quot;USER_BUSY&quot;);<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp; }<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>}<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Here
is a 40-line RSS reader (well, printer, since I haven&#8217;t gotten Cepstral
building on Windows) in F#:<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>#light<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>namespace rss<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>open System<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>open System.Net<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>open System.IO<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>open System.Xml.Linq<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>open FreeSWITCH<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>module funcs =<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; let httpGet
(url : string) =<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
let req = WebRequest.Create(url)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
use resp = req.GetResponse()<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
use stream = resp.GetResponseStream()<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
use reader = new StreamReader(stream)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
reader.ReadToEnd()<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; let getXDoc url
= XDocument.Parse(httpGet url)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; let xname s =
XName.Get(s)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; let
getChannelTitle (doc : XDocument) = Seq.hd(doc.Descendants(xname
&quot;title&quot;)).Value<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; let
getItemData (item : XElement) = (item.Element(xname &quot;title&quot;).Value,
item.Element(xname &quot;description&quot;).Value)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>open funcs<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>type reader() =<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; inherit
AppFunction()<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; member
app.item : int = 0<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; member
app.say s =<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// We need to init the TTS and all that, but for now...<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Log.WriteLine(LogLevel.Info, &quot;Say: &quot; + s)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
//app.Session.Speak s |&gt; ignore<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp; override
app.Run() =<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
app.Session.Answer |&gt; ignore<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// app.Session.SetTtsParameters (&quot;cepstral&quot;, &quot;david&quot;)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
app.say (&quot;Reading &quot; + app.Arguments)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
let doc = getXDoc (app.Arguments)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
app.say (getChannelTitle doc)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
doc.Descendants(xname &quot;item&quot;)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&gt; Seq.map getItemData<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&gt; Seq.iter (fun (title, desc) -&gt;<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
app.say (&quot;Item, &quot; + title)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
app.say (&quot;Description, &quot; + desc))<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
app.Session.Hangup(&quot;NORMAL_CLEARING&quot;)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Hope that helps a bit.<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>-Michael<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
freeswitch-dev-bounces@lists.freeswitch.org
[mailto:freeswitch-dev-bounces@lists.freeswitch.org] <b>On Behalf Of </b>Patrick
Tran<br>
<b>Sent:</b> Wednesday, June 25, 2008 6:24 PM<br>
<b>To:</b> freeswitch-dev@lists.freeswitch.org<br>
<b>Subject:</b> [Freeswitch-dev] .NET Development<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>I&#8217;m new to Freeswitch and trying to develop a .NET
Application. I&#8217;m having a lot of trouble getting started though. There
doesn&#8217;t seem to be a lot support out there for this. My development has
sort of come to a stand-still and I was wondering if anyone could help me get
pointed in the right direction. Any help would be much appreciated.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Thanks<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>-Patrick<o:p></o:p></p>

</div>

</body>

</html>