Hi David,
It's my intention to get it all working and we're going to be putting
some people on testing it out soon. I've just been busy with other stuff and
haven't updated it. I imagine within a month we'll have gotten things smoothed
out if no one else has by then. I'd hope that it'd be an "official" plugin as
it eliminates the need for other language plugins; then again I'm biased
against languages with no or poor specs or compilers ;).
I'm not sure there's an official bug opened for the string problem.
IIRC, gfree is used all the time to free PInvoke strings, and that crashes on
Windows. There was a patch submitted; I think it's in the 2.0 branch (which
will really be the only deployment option anyways). It's easy to see if you hit
the bug; run a plugin on Windows and see if it crashes (I believe the managed
loader runs some functions that'd crash).
-Michael
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Brazier
Sent: Wednesday, July 30, 2008 9:51 AM
To: [email protected]
Cc: [EMAIL PROTECTED]
Subject: Re: [Freeswitch-dev] .NET Development
Hi
Just wanted to check the status of mod_mono. To build it from SVN trunk, I
needed to run swig to update all that stuff, basically (I think) because it was
last updated for 1.0.0 and the switch core has moved on since then. That,
along with a few other bumps, got it compiled and working on Windows. On
Linux, I have had to do more like work out prerequisites, write Makefiles,
manually do the "swigStringFix" (Michael do you have a reference to what Mono
bug that works around?) etc., but I have finally got mod_mono to load (but not
tested yet).
So is it intended that the main FS build would incorporate all the above so
that mod_mono/mod_mono_managed becomes a standard module (built but not
necessarily loaded by default)? Is anyone else working on this?
Should I update the wiki page?
Cheers
David
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael
Giagnocavo
Sent: 26 June 2008 01:49
To: [email protected]
Subject: Re: [Freeswitch-dev] .NET Development
Hi Patrick,
What kind of .NET application are you developing? In the contrib folder
there is the .NET event socket code (I think that's where it is). But I don't
know anything about that.
I do know a bit about mod_mono, so I'll talk about that:
To get mod_mono to build, you'll need Windows and VS 2008 (well, I don't
have the linux build steps anyways). You'll have to generate mono.lib for your
compiler. From here:
http://www.mono-project.com/Embedding_Mono
"On windows you need to generate an import library for mono.dll by getting the
following file:
http://anonsvn.mono-project.com/viewcvs/*checkout*/trunk/mono/msvc/mono.def
and creating mono.lib with the command:
lib /nologo /def:mono.def /out:mono.lib /machine:x86
"
Make sure your PATH has the Mono bin folder in it (such as "C:\Program
files\Mono-1.9.1\bin").
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 <fsdir>\mod\mono\. If you compile debug, a few simple
demos will compile and load (they are in the mod_mono_managed source, Demo.cs).
It's quite easy, as it uses the FS C++ API here's a simple, pointless app in
Javascript for .NET:
import System;
import FreeSWITCH;
class JExample extends AppFunction
{
protected override function Run()
{
Session.Answer();
Session.Hangup("USER_BUSY");
}
}
Here is a 40-line RSS reader (well, printer, since I haven't
gotten Cepstral building on Windows) in F#:
#light
namespace rss
open System
open System.Net
open System.IO
open System.Xml.Linq
open FreeSWITCH
module funcs =
let httpGet (url : string) =
let req = WebRequest.Create(url)
use resp = req.GetResponse()
use stream = resp.GetResponseStream()
use reader = new StreamReader(stream)
reader.ReadToEnd()
let getXDoc url = XDocument.Parse(httpGet url)
let xname s = XName.Get(s)
let getChannelTitle (doc : XDocument) = Seq.hd(doc.Descendants(xname
"title")).Value
let getItemData (item : XElement) = (item.Element(xname "title").Value,
item.Element(xname "description").Value)
open funcs
type reader() =
inherit AppFunction()
member app.item : int = 0
member app.say s =
// We need to init the TTS and all that, but for now...
Log.WriteLine(LogLevel.Info, "Say: " + s)
//app.Session.Speak s |> ignore
override app.Run() =
app.Session.Answer |> ignore
// app.Session.SetTtsParameters ("cepstral", "david")
app.say ("Reading " + app.Arguments)
let doc = getXDoc (app.Arguments)
app.say (getChannelTitle doc)
doc.Descendants(xname "item")
|> Seq.map getItemData
|> Seq.iter (fun (title, desc) ->
app.say ("Item, " + title)
app.say ("Description, " + desc))
app.Session.Hangup("NORMAL_CLEARING")
Hope that helps a bit.
-Michael
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Patrick Tran
Sent: Wednesday, June 25, 2008 6:24 PM
To: [email protected]
Subject: [Freeswitch-dev] .NET Development
I'm new to Freeswitch and trying to develop a .NET Application. I'm having a
lot of trouble getting started though. There doesn'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.
Thanks
-Patrick
360CRM Limited, registered address, Caledonia House, 89 Seaward Street,
Glasgow, G41 1HJ, Registered in Scotland, company number SC261952.
This email and its attachments may be confidential and are intended solely for
the use of the individual to whom it is addressed. Any views or opinions
expressed are solely those of the author and do not necessarily represent those
of 360CRM Ltd. This email does not form any part of a contract. If you are
not the intended recipient of this email and its attachments, you must take no
action based upon them, nor must you copy or show them to anyone. Please
contact the sender if you believe you have received this email in error.
_______________________________________________
Freeswitch-dev mailing list
[email protected]
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
[email protected]
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org