avmd from mod managed
Hello, Is there a way to do AVMD from mod_managed? I see JavaScript example technique from http://wiki.freeswitch.org/wiki/Mod_avmd but it seems signature of StreamFile is different in mod_managed. In JavaScript, second argument to StreamFile is a function (OnInput) where detection is done while is mod_managed, it is sample start number. So is AVMD possible from mod_managed? Thank you. Malay
Sure, Modify this sample out of demo.csx from the source tree. maybe enough here to get you started. using System; using FreeSWITCH; using FreeSWITCH.Native; public class AppDemo : IAppPlugin { ManagedSession Session; public void Run(AppContext context) { Session = context.Session; Session.Answer(); Session.DtmfReceivedFunction = (d, t) => { Log.WriteLine(LogLevel.Notice, "Received {0} for {1}.", d, t); return ""; }; Session.EventReceivedFunction = (ev, s) => { return ""; }; // add your stuff here Log.WriteLine(LogLevel.Notice, "AppDemo is finishing its run and will now hang up."); Session.Hangup("USER_BUSY"); } } -- View this message in context: http://freeswitch-users.2379917.n2.nabble.com/avmd-from-mod-managed-tp609262... Sent from the freeswitch-users mailing list archive at Nabble.com.
Hi Jeff, Hello all. Still not able to figure out avmd in C# managed code. Please guide me. 1. My EventReceivedFunction takes only one argument (ev). There is a compile time error in visual studio if I pass (ev,s). My FreeSwitch.Managed.dll version is 1.0.5. Interesting thing is the intellisense does show as if EventReceivedFunction takes two arguments as you've shown. dtmf function works with two arguments. 2. Now, I look at examples on this page: http://wiki.freeswitch.org/wiki/Mod_avmd What is C# managed equivalent? My code: mObjMainSession.Answer(); mObjMainSession.Execute("avmd", "start"); mObjMainSession.DtmfReceivedFunction = (d, t) => { Log.WriteLine(LogLevel.Notice, aObjCntx.Session.uuid + "-" + "Received {0} for {1}.", d, t); return ""; }; if (check this is an outbound call) { mObjMainSession.EventReceivedFunction = (ev) => { Log.WriteLine(LogLevel.Notice, aObjCntx.Session.uuid + "-" + "Event type {0} / Event body {2} .", ev.GetEventType(), ev.GetBody()); if (mObjMainSession.GetVariable("avmd_detect") == "TRUE") { Log.WriteLine(LogLevel.Notice, aObjCntx.Session.uuid + "-" + "VM detected"); } return ""; }; } If "VM detected", what do I do? Just call hang up from EventReceivedFunction? Do I call "mObjMainSession.Execute("avmd", "stop");" anywhere? Tutorial also says, one must wait a few seconds after answering the call before starting avmd. What does that mean? How do I find out load on CPU being put by avmd? I will be making 50 concurrent outbound calls. 3. Same managed code on my extension handles inbound (uses calling system) as well as outbound calls (system calling users). Should I only enable/check avmd when it is an outbound call? Please help. Thanks. On Sun, Mar 6, 2011 at 11:07 AM, Jeff Lenk <jeff@jefflenk.com> wrote:
Sure,
Modify this sample out of demo.csx from the source tree. maybe enough here to get you started.
using System; using FreeSWITCH; using FreeSWITCH.Native;
public class AppDemo : IAppPlugin {
ManagedSession Session; public void Run(AppContext context) { Session = context.Session; Session.Answer(); Session.DtmfReceivedFunction = (d, t) => { Log.WriteLine(LogLevel.Notice, "Received {0} for {1}.", d, t); return ""; };
Session.EventReceivedFunction = (ev, s) => { return ""; };
// add your stuff here
Log.WriteLine(LogLevel.Notice, "AppDemo is finishing its run and will now hang up."); Session.Hangup("USER_BUSY"); }
}
-- View this message in context: http://freeswitch-users.2379917.n2.nabble.com/avmd-from-mod-managed-tp609262... Sent from the freeswitch-users mailing list archive at Nabble.com.
_______________________________________________ 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
participants (2)
-
Jeff Lenk
-
Malay Thakershi