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

Josh Rivers josh at radianttiger.com
Mon Sep 7 23:21:42 PDT 2009


Thanks for the response!
I have tried putting a long-running loop here, but then it blocks anything
else managed from happening:

   public class TestLoop : ILoadNotificationPlugin
    {
        public bool Load()
        {
            EventConsumer con = new EventConsumer("all", "");
            while (true)
            {
                Event ev = con.pop(0);
                Log.WriteLine(LogLevel.Notice, "Event: " +
ev.serialized_string);
                freeswitch.msleep(100);
            }
        }
    }

However, if I fork off a thread here, freeswitch crashes:
    public class TestLoop : ILoadNotificationPlugin
    {
        public bool Load()
        {
            ThreadPool.QueueUserWorkItem((o) =>
            {
                Log.WriteLine(LogLevel.Notice, "Thread Starting. ");
                EventConsumer con = new EventConsumer("all", "");
                while (true)
                {
                    Event ev = con.pop(0);
                    Log.WriteLine(LogLevel.Notice, "Event: " +
ev.serialized_string);
                    freeswitch.msleep(100);
                }
            });
            return true;
        }
    }

It doesn't look like this is a good place to start a long-running process?

Thanks!
Josh

On Mon, Sep 7, 2009 at 11:05 PM, Raffaele P. Guidi <
raffaele.p.guidi at gmail.com> wrote:

> Yes!
> public class LoadDemo : ILoadNotificationPlugin {
>     public bool Load() {
>         Log.WriteLine(LogLevel.Notice, "LoadDemo running.");
>         return true;
>     }
> }
>
> this example is from Michael Giagnocavo's Demo.csx which you can find into
> the mod_managed svn.
>
> And let me add that works like a charm :)
>
> Ciao,
>    Raffaele
>
> On Sun, Sep 6, 2009 at 22:50, Josh Rivers <josh at radianttiger.com> wrote:
>
>> Is there a way to start this when FreeSWITCH starts? The lua and perl
>> modules have a 'startup-script' configuration preference. Is there something
>> similar in mod_managed? Or is there a way to have an api command executed at
>> a startup?
>>
>> <quote author="Phillip Jones">
>> Exactly what I was after - thank you!
>>
>> On Thu, Sep 3, 2009 at 1:54 PM, Jeff Lenk <jlenk at frontiernet.net> wrote:
>>
>> >
>> > try something like this
>> >
>> > EventConsumer con = new EventConsumer("all", "");
>> > Event ev = con.pop(0);
>> >
>> > see lua sample -
>> > http://wiki.freeswitch.org/wiki/Lua#freeswitch.EventConsumer
>> >
>> >
>> > Phillip Jones-2 wrote:
>> > >
>> > > Hi there,
>> > >
>> > > mod_managed exposes EventReceivedFunction such that:
>> > >
>> > >  Session.EventReceivedFunction = (e) =>
>> > >  {
>> > >        Log.WriteLine(LogLevel.Alert, "Received Event {0}",
>> e.ToString());
>> > >        return "";
>> > >  };
>> > >
>> > > should trap all events to which i subscribe.
>> > >
>> > >
>> > > But how do I subscribe to events? What is the .NET / managed
>> equivalent
>> > > of:
>> > >
>> > > switch_event_bind(const char *id, switch_event_types_t event, const
>> char
>> > > *subclass_name, switch_event_callback_t callback, void *user_data);
>> > >
>> > >
>> > >
>> > > Thank you!
>> > >
>> > >
>> > >
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at 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 at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20090907/528cd3d1/attachment-0002.html 


More information about the FreeSWITCH-users mailing list