Re: [Freeswitch-users] XMPP (mod_dingaling) for Event s/Messaging

2009-09-26 Thread Pete Mueller
I reviewed the code for chat_send. But if I'm reading it right, its designed to send a message to a channel. In reading the wiki page for mod_dingaling, it looks like FS registers a user with a server, then waits for someone to "call" them with an XMPP client. at that point it will create a channel. In my case I want to send/receive a message to/from the user freeswitch registered without a call being placed.Unless, during the registration, FS created a UUID for the open XMPP connection, in which case how would I find that UUID?-pete


 Original Message 
Subject: Re: [Freeswitch-users] XMPP (mod_dingaling) for
Events/Messaging
From: Michael Jerris m...@jerris.com
Date: Fri, September 25, 2009 7:22 pm
To: freeswitch-users@lists.freeswitch.org

see chat_send api command and api_hangup_hook. In combination that might work.MikeOn Sep 25, 2009, at 6:07 PM, Pete Mueller wrote:Hello all, I was wondering if anyone has used mod_dingaling for messaging rather than voice/video. Specifically, I would like to have FS send an XMPP message to an ActiveMQ server when it records a voicemail. Additionally I would like like to have CDR entries posted into the ActiveMQ server as calls are completed.It seems all the pieces are there, just not necessarily used for this task. My fall-back would be to use Event Socket to receive events and then forward them on to the MQ server. But if I could directly integrate it, that would be one less system to worry about.Any help would be appreciated.-pete ___FreeSWITCH-users mailing listFreeSWITCH-users@lists.freeswitch.orghttp://lists.freeswitch.org/mailman/listinfo/freeswitch-usersUNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.freeswitch.org___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org




___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


Re: [Freeswitch-users] [Freeswitch-dev] Status of ubuntu/debian packages.

2009-09-26 Thread Mathieu Parent
On Fri, Sep 25, 2009 at 6:01 PM, Massimo CtRiX Cetra
ctrix...@navynet.it wrote:
 Mathieu Parent ha scritto:
 Can you also add the tts_commandline module?
 Patch attached


 Your patch was incomplete.
 The fixed one is in 14976.

Thanks

Mathieu

___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


Re: [Freeswitch-users] Sofia regiter to provider with multiple account

2009-09-26 Thread Dome Charoenyost
2009/9/26 Brian West br...@freeswitch.org:
 Why would they require you to have 50 accounts?  Doesn't seem sane to
 me.
They provide for pc to phone user and i want to use for my corp.

:)


 /b

 On Sep 25, 2009, at 9:48 PM, Dome Charoenyost wrote:

 2009/9/26 Michael Jerris m...@jerris.com:

 On Sep 25, 2009, at 10:04 PM, Dome Charoenyost wrote:

 Dear All,
        How to config freeswitch for support this case ?
     1. FS register to provider about 50 user account. (Each account
 can't support multiple call in same time)

 Sofia gateways

     2. FS Check account not inuse before call out.

 mod_limit

     3. User account should be round-robin

 what does this mean?


 Each user account have own balance (in provider). So i want to use
 all user


 ___
 FreeSWITCH-users mailing list
 FreeSWITCH-users@lists.freeswitch.org
 http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
 UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
 http://www.freeswitch.org


___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


[Freeswitch-users] missing file default.dic in sample application gino's pizza (mod pocketsphinx)

2009-09-26 Thread Francisco Scaramanga

Hi, 

I have configured the sample application gino's pizza . If I call FreeSwitch 
with a softphone, the call is established and a voice tells Welcome to gino's 
pizza.


So far so good, but in the console output I see the error Can't open 
dictionary c:
\freeswitch2\debug\grammar\default.dic. (complete console output see below)

 

Where can I find the default.dic ? It cannot be found on my pc and google 
didn't find it.

 

What can I do now?

 

Regards

 

scaram


 

freeswi...@nb-msi 2009-09-26 14:44:17.718000 [NOTICE] switch_channel.c:613
 New Channel sofia/internal/1...@192.168.1.33 [ddf97ba6-b65b-d54a-9a11-ff83a3104
f86]
2009-09-26 14:44:17.734000 [INFO] mod_dialplan_xml.c:391 Processing 1002 FreeSwi
tch-54321 in context default
2009-09-26 14:44:17.737000 [NOTICE] mod_spidermonkey.c:2059 Channel [sofia/inter
nal/1...@192.168.1.33] has been answered
2009-09-26 14:44:19.946000 [ERR] mod_pocketsphinx.c:142 Can't open dictionary c:
\freeswitch2\debug\grammar\default.dic.
2009-09-26 14:44:19.946000 [INFO] mod_pocketsphinx.c:227 Port Closed.
2009-09-26 14:44:19.946000 [NOTICE] switch_ivr_async.c:2149 Hangup sofia/interna
l/1...@192.168.1.33 [CS_EXECUTE] [DESTINATION_OUT_OF_ORDER]
2009-09-26 14:44:19.955000 [NOTICE] switch_core_session.c:1087 Session 3 (sofia/
internal/1...@192.168.1.33) Ended
2009-09-26 14:44:19.955000 [NOTICE] switch_core_session.c:1089 Close Channel sof
ia/internal/1...@192.168.1.33 [CS_DESTROY]
  
_
http://redirect.gimas.net/?n=M0906xFTP_SpringCampaign2
-- Für Fotos hier abdrücken -___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


Re: [Freeswitch-users] Sofia regiter to provider with multiple account

2009-09-26 Thread Brian West
Why would they require you to have 50 accounts?  Doesn't seem sane to  
me.

/b

On Sep 25, 2009, at 9:48 PM, Dome Charoenyost wrote:

 2009/9/26 Michael Jerris m...@jerris.com:

 On Sep 25, 2009, at 10:04 PM, Dome Charoenyost wrote:

 Dear All,
How to config freeswitch for support this case ?
 1. FS register to provider about 50 user account. (Each account
 can't support multiple call in same time)

 Sofia gateways

 2. FS Check account not inuse before call out.

 mod_limit

 3. User account should be round-robin

 what does this mean?


 Each user account have own balance (in provider). So i want to use  
 all user


___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


[Freeswitch-users] Mod_vmd and Session Locking.

2009-09-26 Thread Vinuth Madinur
Hello All,
I'm trying to do a simple dialer, where I am:

1. Initiating mod_vmd on channel answer.
2. Staying quiet until there is a beep.
3. Leave a message on beep.
4. Hangup.

(in my scenario it's guaranteed to hit voicemail.)

But the session isn't exiting properly after hangup, with last statement
being:  switch_core_session.c:1068 Session 1 (sofia/external/1002) Locked,
Waiting on external entities.

It doesn't go to CS_DONE state. I see [CRIT] level logs when shutting down
freeswitch waiting for all these sessions to complete.
But all these sessions are getting stuck while attempting to get a write
lock on session object.
I tried this with both 1.0.3 and 1.0.4 and the behavior is similar.
Can someone please help? Or point me toward fixing it?

Thanks,
Gubbi.
___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


Re: [Freeswitch-users] Subscribing to events in managed C# / .NET

2009-09-26 Thread Josh Rivers
Sorry for fading off for a few days. Having too much fun doing stuff!
A few responses:

On Thu, Sep 24, 2009 at 1:01 AM, Michael Giagnocavo m...@giagnocavo.netwrote:

  A few questions I have:

 Testability – is this even remotely practical?

I've seen three areas of testability:
1) Interop
2) Module Extensibility Framework
3) Modules and Plugins

The interop testability picture is not an area I'm very familiar. I imagine
you could write a native mod_managed.dll testing shim and test against that.
I think this would have some limited value. It would confirm that interop
layers behaved as expected, but not much more. The biggest values would be
a) verifying that the api doesn't change accidentally, and b) providing a
good way of adding bug-solution cases when the behavior of the core is
causing a failure that we need to provide some padding around.

The extensibility portion is very easy to write tests for. The module loader
framework that I've refactored out of your code is completely stupid about
the unmanaged code. It blindly passes the pointers through to the consumers
that want them, and all of the module loader responsibilities are in managed
code and mostly coded to interface. Very easy to mock and test.

Finally the plugin testability story. Currently this is harder, since the
plugins are written to talk to a lot of static methods and direct unmanaged
types. As things evolve, I'd want to create a updated plugin interface that
passes all the interop points by interface. The unit testing responsibility
for an app or api plugin should primarily be that for a given set of inputs
or responses, it makes a specified set of calls. That should be possible to
mock and test in managed code if we provide a thin managed interface layer
over the P/Invoke|SWIG layer. I'm currently writing a plugin that does just
this, but I have the interface layer inside my code. Not everyone should
have to write their own though?

 Modularity – I agree there are two parts. But, I think they are pretty
 tightly coupled. The FS interface into unmanaged code is done via unmanaged
 code and is really clear: App, Api, ApiBackground. The other ways I can
 think of are FS-specific, such as XML binding interface and so on. But those
 are things we should just add to the mod_managed core and be done with. I’m
 thinking maybe we are talking about different things? Can you provide some
 user stories that we want to cover with a pluggable loader/executor/etc.?

 I'm going to be a bit long-winded here. I hope I can clarify my intent,
because I think I've been unclear on it so far.
A) Philosophy: I have two principal concepts that are guiding me in my push
towards modularity.
1) Single Responsibility Principal: Each class or code file should only
have one reason to change. I don't think I'm quite here in the code I've
shown you, but it's getting closer. (I could definitely use help.) The idea
here is that the class that monitors the plugin directory shouldn't also
load the files. The class that loads the files shouldn't be responsible for
configuring and creating app domains. Neither of those classes should have
concrete logging code in them. The good thing about this is that you don't
have to worry about breaking the loader when you change the watcher, and
vice-versa. If we later decide to change the watcher so that it only checks
for updates manually, we don't need to even let the loader know.
2) Open-Closed Principal: Classes should be open for extension and closed
for modification. The idea here is that once we've written a working class
that has it's bugs ironed out and it's unit tests written, we shouldn't
(ideally) ever need to change it. If we need a new behavior, we can just
subclass the original, or implement the same interface, or whatever, and use
the new class instead of the old one. If everything is nice
an loosely coupled, we can just slide the new implementation in for improved
behavior without changing the old one. What this means for the module system
is that we can create new functionality without breaking old functionality.

B) Actual uses: (Please note, that in most cases, I don't think that
mod_managed needs to build out these functions, rather, I think mod_managed
should get out of the way and let developers plug in what they want)
1) Commercial PBX Developer/Distributor:
Case: Say I want to write my own FreeSWITCH distro/UI/packaged software on
Windows, and I want to do all of my development in managed code and I don't
care about plugins or anything.
Answer: recompile my managed.dll with just a few changed lines in Loader.cs
and your code controls everything coming into mod_managed. Ultimate power.
Roll your own. Use it to launch a UI. Go nutz.
2) Complicated interwoven plugins:
Case: I want to write a bunch of plugin dlls and have them all
cross-communicate and share caches and statics.
Answer: provide your own implementation of IModuleLoader and plug it into
the registry. Now you can eliminate all of those pesky 

Re: [Freeswitch-users] Subscribing to events in managed C# / .NET

2009-09-26 Thread Josh Rivers
I don't know what we'd want to write endpoints for, so I'll leave that one
alone... ;)
I do, however, agree with you on the event handler idea. My work on the
module system is largely a precursor to putting in some work on a pub/sub
event bus in managed code. I wanted some lifecycle and exception handling
control that wasn't easy in the existing dll and I wanted to be able to
create it without breaking stuff for other people.

My question is this: is an event bus a good thing to put in mod_managed, or
should it be an optional plugin that you load in?

Josh

On Thu, Sep 24, 2009 at 9:26 PM, Michael Jerris m...@jerris.com wrote:

 There are a few other things I can think would be nice additions to
 mod_managed.  Maybe an event handler that does not require a thread to be
 sitting and waiting for events trying in a loop would be nice, instead
 something that is triggered each time there is a certain event class
 triggered.  Also, there has been some interest in doing full endpoint
 modules in mod_managed.  exposing all the state handlers in .net like ways
 and having that all work would be quite interesting, but probably requires
 someone specific actually ready to write a module like that to be
 worthwhile.
 Mike

 On Sep 24, 2009, at 4:01 AM, Michael Giagnocavo wrote:

 Great – hopefully we’ll meet on IRC or the conference sometime on Friday.
 Email me when you’re on.

 A few questions I have:

 Clarity – I agree with you there, and thanks!

 Testability – is this even remotely practical? Looking at our FS code
 plugins, there’s simply no way any amount of test environment code would get
 us to anything testable. We make tons of direct P/Invoke calls, and the
 whole model for what variables are set when, the state machine progression,
 etc. does not seem like something that we can hope to possibly model right.
 And it’s subject to many external influences (all the modules you have
 loaded in FS). Logging is a pretty simple case, sure, we can make it not
 call FS for testing. But in a real app, it just seems that there are way too
 many dependencies, no? Maybe others who have apps written can chime in?

 Modularity – I agree there are two parts. But, I think they are pretty
 tightly coupled. The FS interface into unmanaged code is done via unmanaged
 code and is really clear: App, Api, ApiBackground. The other ways I can
 think of are FS-specific, such as XML binding interface and so on. But those
 are things we should just add to the mod_managed core and be done with. I’m
 thinking maybe we are talking about different things? Can you provide some
 user stories that we want to cover with a pluggable loader/executor/etc.?
 Thanks for putting up with me!

 -Michael

 *From:* freeswitch-users-boun...@lists.freeswitch.org [mailto:
 freeswitch-users-boun...@lists.freeswitch.org] *On Behalf Of *Josh Rivers
 *Sent:* Thursday, September 24, 2009 12:32 AM
 *To:* freeswitch-users@lists.freeswitch.org
 *Subject:* Re: [Freeswitch-users] Subscribing to events in managed C# /
 .NET



 On Wed, Sep 23, 2009 at 7:31 PM, Michael Giagnocavo m...@giagnocavo.net
 wrote:

 Right off the bat: there can be tons of cleanup and refactoring, no doubt
 about that. Much of the current code is to satisfy my needs in production,
 which it does very well.
 The current base doesn't have anything wrong with it for sure, in fact, I
 learned a good bit about PInvoke. AppDomains, and In-Process Remoting in the
 last week.

 My refactoring had the following goals (in no particular order)
  - Testability - I'd really like to see a decent unit test suite on the
 more module so that we can change it with confidence. Also, it's been
 drilled into me that a testable design is a good design.
  - Clarity - Where possible, I extracted blocks of code that served a
 particular purpose so that purpose could be self-documenting in the method
 calls rather than mixed in.
  - Modularity - I wanted to make it easy to remove or add alternative
 behavior to the managed.dll.


 I’m a bit hesitant to go too far from the FreeSWITCH core as far as
 architecture goes. For instance, I’m not quite sure why’d we have our own
 managed logging subsystem that allows them to plug in other things that
 aren’t part of FS. Either they should use the FS logging system, or use
 their own such as log4net. Or perhaps I don’t see why we’d want this
 behavior.

 I completely agree, with the following caveats:
 1) I'd like to see things testable. It's very hard to do isolation testing
 with classes making direct calls out to a static Log class that in turn
 pinvokes out to unmanaged code.
 2) I'd like to allow folk to make changes to the default behavior
 (optimally) without recompiling managed.dll.

 One thing at issue here is that there are two principal purposes for
 managed.dll. The first is to provide an interface into unmanaged code. The
 second is a module/plugin extensibility framework. The first purpose should
 absolutely provide the thinnest layer possible. The second 

Re: [Freeswitch-users] Sofia regiter to provider with multiple account

2009-09-26 Thread Seven Du
I would write a simple lua script to do a round robin hunt.

2009/9/27 Dome Charoenyost d...@tel.co.th

 2009/9/26 Brian West br...@freeswitch.org:
  Why would they require you to have 50 accounts?  Doesn't seem sane to
  me.
 They provide for pc to phone user and i want to use for my corp.

 :)

 
  /b
 
  On Sep 25, 2009, at 9:48 PM, Dome Charoenyost wrote:
 
  2009/9/26 Michael Jerris m...@jerris.com:
 
  On Sep 25, 2009, at 10:04 PM, Dome Charoenyost wrote:
 
  Dear All,
 How to config freeswitch for support this case ?
  1. FS register to provider about 50 user account. (Each account
  can't support multiple call in same time)
 
  Sofia gateways
 
  2. FS Check account not inuse before call out.
 
  mod_limit
 
  3. User account should be round-robin
 
  what does this mean?
 
 
  Each user account have own balance (in provider). So i want to use
  all user
 
 
  ___
  FreeSWITCH-users mailing list
  FreeSWITCH-users@lists.freeswitch.org
  http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
  UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
  http://www.freeswitch.org
 

 ___
 FreeSWITCH-users mailing list
 FreeSWITCH-users@lists.freeswitch.org
 http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
 UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
 http://www.freeswitch.org

___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


Re: [Freeswitch-users] Mod_vmd and Session Locking.

2009-09-26 Thread Seven Du
what's your rev? I think rev14494 might related to you.

2009/9/27 Vinuth Madinur vinuth.madi...@gmail.com

 Hello All,
 I'm trying to do a simple dialer, where I am:

 1. Initiating mod_vmd on channel answer.
 2. Staying quiet until there is a beep.
 3. Leave a message on beep.
 4. Hangup.

 (in my scenario it's guaranteed to hit voicemail.)

 But the session isn't exiting properly after hangup, with last statement
 being:  switch_core_session.c:1068 Session 1 (sofia/external/1002) Locked,
 Waiting on external entities.

 It doesn't go to CS_DONE state. I see [CRIT] level logs when shutting down
 freeswitch waiting for all these sessions to complete.
 But all these sessions are getting stuck while attempting to get a write
 lock on session object.
 I tried this with both 1.0.3 and 1.0.4 and the behavior is similar.
 Can someone please help? Or point me toward fixing it?

 Thanks,
 Gubbi.


 ___
 FreeSWITCH-users mailing list
 FreeSWITCH-users@lists.freeswitch.org
 http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
 UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
 http://www.freeswitch.org


___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


[Freeswitch-users] confuse of regex command with |

2009-09-26 Thread Seven Du
Hi, is this a bug?

freeswi...@internal regex 10|09|10
false
freeswi...@internal regex 10|10
true
freeswi...@internal regex 10|(09|10)
false
freeswi...@internal 2009-09-27 11:47:00.815355 [ERR] switch_regex.c:101
COMPILE ERROR: 4 [missing )][(09]


the first one should be true?
___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


Re: [Freeswitch-users] Mod_vmd and Session Locking.

2009-09-26 Thread Vinuth Madinur
Yeah. Anthm fixed it. Was talking over on IRC yesterday. Thanks for the fix.


On Sun, Sep 27, 2009 at 7:49 AM, Seven Du dujinf...@gmail.com wrote:

 what's your rev? I think rev14494 might related to you.

 2009/9/27 Vinuth Madinur vinuth.madi...@gmail.com

 Hello All,
 I'm trying to do a simple dialer, where I am:

 1. Initiating mod_vmd on channel answer.
 2. Staying quiet until there is a beep.
 3. Leave a message on beep.
 4. Hangup.

 (in my scenario it's guaranteed to hit voicemail.)

 But the session isn't exiting properly after hangup, with last statement
 being:  switch_core_session.c:1068 Session 1 (sofia/external/1002) Locked,
 Waiting on external entities.

 It doesn't go to CS_DONE state. I see [CRIT] level logs when shutting down
 freeswitch waiting for all these sessions to complete.
 But all these sessions are getting stuck while attempting to get a write
 lock on session object.
 I tried this with both 1.0.3 and 1.0.4 and the behavior is similar.
 Can someone please help? Or point me toward fixing it?

 Thanks,
 Gubbi.


 ___
 FreeSWITCH-users mailing list
 FreeSWITCH-users@lists.freeswitch.org
 http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
 UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
 http://www.freeswitch.org



 ___
 FreeSWITCH-users mailing list
 FreeSWITCH-users@lists.freeswitch.org
 http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
 UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
 http://www.freeswitch.org


___
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org


Re: [Freeswitch-users] Subscribing to events in managed C# / .NET

2009-09-26 Thread Josh Rivers
The ability to directly create swigtypes...that's huge! I'd love to see some
examples of how to use that.

I've update my refactoring to include the changes to the trunk up through
r14981. I've also checked in updated binaries that should work with the
latest trunk builds(I hope?)
A question occurred to me: would it make any sense to push the plugin loader
into a separate DLL? That way we could keep the P/Invoke layer very cleanly
separated from the loader/process host/abstraction layer structures.

Josh

On Fri, Sep 25, 2009 at 1:13 PM, Michael Giagnocavo m...@giagnocavo.netwrote:

  There is a new function I checked in a little bit ago that lets you
 create any of the SWIGTYPE_p_xxx types – all you need is a pointer to the
 memory to represent whatever it is in native land. So with that, it’s
 actually possible to call most or all of the functions. (Yes DRK, you can
 now go do XML binding.) But sure, it’d be nice to make a real .NET-ish
 layer.



 Async events seems like it wouldn’t be hard, assuming FreeSWITCH delivers
 them that way?



 -Michael



 *From:* freeswitch-users-boun...@lists.freeswitch.org [mailto:
 freeswitch-users-boun...@lists.freeswitch.org] *On Behalf Of *Michael
 Jerris
 *Sent:* Thursday, September 24, 2009 10:26 PM

 *To:* freeswitch-users@lists.freeswitch.org
 *Subject:* Re: [Freeswitch-users] Subscribing to events in managed C# /
 .NET



 There are a few other things I can think would be nice additions to
 mod_managed.  Maybe an event handler that does not require a thread to be
 sitting and waiting for events trying in a loop would be nice, instead
 something that is triggered each time there is a certain event class
 triggered.  Also, there has been some interest in doing full endpoint
 modules in mod_managed.  exposing all the state handlers in .net like ways
 and having that all work would be quite interesting, but probably requires
 someone specific actually ready to write a module like that to be
 worthwhile.



 Mike



 On Sep 24, 2009, at 4:01 AM, Michael Giagnocavo wrote:



   Great – hopefully we’ll meet on IRC or the conference sometime on
 Friday. Email me when you’re on.



 A few questions I have:



 Clarity – I agree with you there, and thanks!



 Testability – is this even remotely practical? Looking at our FS code
 plugins, there’s simply no way any amount of test environment code would get
 us to anything testable. We make tons of direct P/Invoke calls, and the
 whole model for what variables are set when, the state machine progression,
 etc. does not seem like something that we can hope to possibly model right.
 And it’s subject to many external influences (all the modules you have
 loaded in FS). Logging is a pretty simple case, sure, we can make it not
 call FS for testing. But in a real app, it just seems that there are way too
 many dependencies, no? Maybe others who have apps written can chime in?



 Modularity – I agree there are two parts. But, I think they are pretty
 tightly coupled. The FS interface into unmanaged code is done via unmanaged
 code and is really clear: App, Api, ApiBackground. The other ways I can
 think of are FS-specific, such as XML binding interface and so on. But those
 are things we should just add to the mod_managed core and be done with. I’m
 thinking maybe we are talking about different things? Can you provide some
 user stories that we want to cover with a pluggable loader/executor/etc.?
 Thanks for putting up with me!



 -Michael



 *From:* freeswitch-users-boun...@lists.freeswitch.org [mailto:
 freeswitch-users-boun...@lists.freeswitch.org] *On Behalf Of *Josh Rivers
 *Sent:* Thursday, September 24, 2009 12:32 AM
 *To:* freeswitch-users@lists.freeswitch.org
 *Subject:* Re: [Freeswitch-users] Subscribing to events in managed C# /
 .NET





 On Wed, Sep 23, 2009 at 7:31 PM, Michael Giagnocavo m...@giagnocavo.net
 wrote:

 Right off the bat: there can be tons of cleanup and refactoring, no doubt
 about that. Much of the current code is to satisfy my needs in production,
 which it does very well.

 The current base doesn't have anything wrong with it for sure, in fact, I
 learned a good bit about PInvoke. AppDomains, and In-Process Remoting in the
 last week.



 My refactoring had the following goals (in no particular order)

  - Testability - I'd really like to see a decent unit test suite on the
 more module so that we can change it with confidence. Also, it's been
 drilled into me that a testable design is a good design.

  - Clarity - Where possible, I extracted blocks of code that served a
 particular purpose so that purpose could be self-documenting in the method
 calls rather than mixed in.

  - Modularity - I wanted to make it easy to remove or add alternative
 behavior to the managed.dll.



  I’m a bit hesitant to go too far from the FreeSWITCH core as far as
 architecture goes. For instance, I’m not quite sure why’d we have our own
 managed logging subsystem that allows them to plug in other things that