[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