Feature Suggestion : Dialplan plugins

Feb 17, 2010 at 1:02 PM

I wonder if it might be a useful architectural change to implement a dialplan plugin infrastructure. This would also make it easier for other developers (like me) to add dialplan functionality without needing to get in the guts of the main project. It would also mean that modules with other license models (proprietry, or GPL) could be developed and distributed independantly of the main project.

I already have some changes in progress that I will submit as a patch shortly. If anyone has any input / ideas then I would be happy to incorporate.

I am implementing the infrastructure using MEF (http://mef.codeplex.com) and it will basically allow the user to drop a dll into the plugins directory and the methods will be avaialable in the dialplan.

Feb 17, 2010 at 10:23 PM

Looks like a superb idea. I look forward to the patch.

I've had a quick look at the MEF documentation and I don't think it would require much work for sipsorcery to incorporate it, the only assembly affected would be SIPSorcery.AppServer.DialPlan.

Feb 18, 2010 at 8:12 PM

So far I have incorporated MEF and abstracted the GTalk method out into a plugin, my remaining problem is getting it to play nice with IronRuby as im not familier with Ruby syntax and the only MEF + IronRuby stuff I found was focussed on creating plugins using ruby, not consuming them in a script (http://blogs.msdn.com/nblumhardt/archive/2008/12/14/ruby-on-mef-imports-and-exports.aspx).

Anyway - I will upload what I have tomorrow.

Feb 18, 2010 at 9:05 PM

That article looks like it's attempting to load the parts from IronRuby. In sipsorcery's case it would be better to load the parts in C# and then focus on consuming them in the Ruby dialplan scripts.