[Freeswitch-users] Setting CallBack API's in Mod_managed
Srini K
aksrini at hotmail.com
Mon Jan 13 12:47:22 MSK 2014
Hi,
How to set hooks like api_on_answer/execute_on_answer using
mod_managed during originate.
Iam able to get call back
notification on Originate by ‘new Api().ExecuteString("originate channel/params
&managed(Myclassname"))
Iam not able to get notification
on outbound answer. I want my API to be called. Sample code looks like…
public void Run(AppContext
context)
{
try
{
context.Session.Answer();
//
Create UUID
string
OutboundUuid = new Api().ExecuteString("create_uuid");
string
route = "{origination_caller_id_number=4154151234"
+ "}[origination_uuid=" +
OutboundUuid + "]sofia/gateway/36/1234567890";
string
dialPlan = "originate " + route + " '&managed(MyNameSpace.OutboundLeg)'";
new
Api().ExecuteString(dialPlan);
string
bridgeResult = new Api().ExecuteString(string.Format("uuid_bridge
{0} {1}", context.Session.GetUuid(), OutboundUuid));
}
catch
(Exception exception)
{
Log.WriteLine(LogLevel.Notice, exception.ToString());
}
}
public class
OutboundLeg : IAppPlugin
{
public void Run(AppContext
context)
{
// This is getting called on
outboundleg orgination
Log.WriteLine(LogLevel.Warning, "OutboundLeg
Notified ------->"); } public void OnAnswer()
{
Log.WriteLine(LogLevel.Warning, "OutboundLeg
OnAnswered ------->"); }
public void OnAnswer(string
uuid)
{
Log.WriteLine(LogLevel.Warning, "OutboundLeg
OnAnswered ------->");
}
}
I want OutboundLeg.OnAnswer() to be called on outbound answer. I tried
the following syntax but it didn’t work.
originate {origination_caller_id_number=4154151234,
nolocal:api_on_answer='managed MyNameSpace.OutboundLeg.OnAnswer OutboundUuid’}[origination_uuid=OutboundUuid]sofia/gateway/36/1234567890 '&managed(MyNameSpace.OutboundLeg)'
originate {origination_caller_id_number=4154151234,
nolocal:api_on_answer='&managed MyNameSpace.OutboundLeg.OnAnswer OutboundUuid’}[origination_uuid=OutboundUuid]sofia/gateway/36/1234567890 '&managed(MyNameSpace.OutboundLeg)'
Also tried setting the
Session variable on the outbound leg by
outboundSession.SetVariable("export", "nolocal:api_on_answer='managed
MyNameSpace.OutboundLeg.OnAnswer");
Also tried execute_on_answer instead of
api_on_answer.
Please do let me know
the correct syntax to use execute_on_answer/api_on_answer.
Note: I was able to play the prompt on
outbound answer by calling system api
originate {origination_caller_id_number=4154151234, api_on_answer='uuid_broadcast
OutboundUuid prompt.wav both'}[origination_uuid=OutboundUuid]sofia/gateway/36/1234567890 '&managed(MyNameSpace.OutboundLeg)'
Thanks
Srini
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20140113/ffa81b34/attachment-0001.html
Join us at ClueCon 2013 Aug 6-8, 2013
More information about the FreeSWITCH-users
mailing list