protected override void ExecuteNoun(NativeActivityContext context) { var twilio = context.GetExtension <ITwilioContext>(); // insert Sip element var element = new XElement("Sip"); GetElement(context).Add(element); if (Called != null) { // url attribute will execute the Called activity element.Add(new XAttribute("url", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnCalled)))); } // schedule URI activities if (Uris.Count > 0) { twilio.SetElement(context, element); foreach (var uri in Uris) { context.ScheduleActivity(uri); } } }
protected override void Execute(NativeActivityContext context) { var twilio = context.GetExtension <ITwilioContext>(); var timeout = Timeout.Get(context); var finishOnKey = FinishOnKey.Get(context); var numDigits = NumDigits.Get(context); var finishUrl = twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnFinish)); // append gather element var element = new XElement("Gather", new XAttribute("action", finishUrl), timeout != null ? new XAttribute("timeout", ((TimeSpan)timeout).TotalSeconds) : null, finishOnKey != null ? new XAttribute("finishOnKey", finishOnKey) : null, numDigits != null ? new XAttribute("numDigits", numDigits) : null); // write gather element GetElement(context).Add( element, new XElement("Redirect", finishUrl)); if (Body != null) { SetElement(context, element); context.ScheduleActivity(Body); } }
protected override void Execute(NativeActivityContext context) { var twilio = context.GetExtension <ITwilioContext>(); var timeout = Timeout.Get(context); var finishOnKey = FinishOnKey.Get(context); var maxLength = MaxLength.Get(context); var transcribe = Transcribe.Get(context); var playBeep = PlayBeep.Get(context); var actionUrl = twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnAction)); // append record element var element = new XElement("Record", new XAttribute("action", actionUrl), timeout != null ? new XAttribute("timeout", ((TimeSpan)timeout).TotalSeconds) : null, finishOnKey != null ? new XAttribute("finishOnKey", finishOnKey) : null, maxLength != null ? new XAttribute("maxLength", ((TimeSpan)maxLength).TotalSeconds) : null, transcribe != null ? new XAttribute("transcribe", (bool)transcribe ? "true" : "false") : null, playBeep != null ? new XAttribute("playBeep", (bool)playBeep ? "true" : "false") : null); // write dial element and catch redirect GetElement(context).Add( element, new XElement("Redirect", actionUrl)); }
protected override void Execute(NativeActivityContext context) { var twilio = context.GetExtension<ITwilioContext>(); var duration = Duration.Get(context); GetElement(context).Add( new XElement("Pause", new XAttribute("length", (int)duration.TotalSeconds)), new XElement("Redirect", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(this)))); }
protected override void Execute(NativeActivityContext context) { var twilio = context.GetExtension <ITwilioContext>(); var duration = Duration.Get(context); GetElement(context).Add( new XElement("Pause", new XAttribute("length", (int)duration.TotalSeconds)), new XElement("Redirect", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(this)))); }
protected override void Execute(NativeActivityContext context) { var twilio = context.GetExtension <ITwilioContext>(); var queue = Queue.Get(context); // enqueue element GetElement(context).Add( new XElement("Enqueue", new XAttribute("action", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnFinish))), Wait != null ? new XAttribute("waitUrl", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnWait))) : null, queue)); }
/// <summary> /// Invoked when the wait bookmark is completed. /// </summary> /// <param name="context"></param> /// <param name="completedInstance"></param> void OnWaitComplete(NativeActivityContext context, ActivityInstance completedInstance) { if (completedInstance.State != ActivityInstanceState.Executing) { return; } var twilio = context.GetExtension <ITwilioContext>(); GetElement(context).Add( new XElement("Redirect", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnWait)))); }
protected override void ExecuteNoun(NativeActivityContext context) { var twilio = context.GetExtension<ITwilioContext>(); var name = Name.Get(context); // add new Number element var element = new XElement("Queue", name); GetElement(context).Add(element); // bookmark to execute Caller activity if (Pickup != null) element.Add(new XAttribute("url", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnPickup)))); }
protected override void ExecuteNoun(NativeActivityContext context) { var twilio = context.GetExtension<ITwilioContext>(); var number = Number.Get(context); var sendDigits = SendDigits.Get(context); // add new Number element var element = new XElement("Number", !string.IsNullOrWhiteSpace(sendDigits) ? new XAttribute("sendDigits", sendDigits) : null, number); GetElement(context).Add(element); // bookmark to execute Called activity if (Pickup != null) element.Add(new XAttribute("url", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnPickup)))); }
protected override void ExecuteNoun(NativeActivityContext context) { var twilio = context.GetExtension <ITwilioContext>(); var name = Name.Get(context); // add new Number element var element = new XElement("Queue", name); GetElement(context).Add(element); // bookmark to execute Caller activity if (Pickup != null) { element.Add(new XAttribute("url", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnPickup)))); } }
protected override void ExecuteNoun(NativeActivityContext context) { var twilio = context.GetExtension <ITwilioContext>(); var number = Number.Get(context); var sendDigits = SendDigits.Get(context); // add new Number element var element = new XElement("Number", !string.IsNullOrWhiteSpace(sendDigits) ? new XAttribute("sendDigits", sendDigits) : null, number); GetElement(context).Add(element); // bookmark to execute Called activity if (Pickup != null) { element.Add(new XAttribute("url", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnPickup)))); } }
protected override void ExecuteNoun(NativeActivityContext context) { var twilio = context.GetExtension<ITwilioContext>(); // insert Sip element var element = new XElement("Sip"); GetElement(context).Add(element); if (Called != null) // url attribute will execute the Called activity element.Add(new XAttribute("url", twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnCalled)))); // schedule URI activities if (Uris.Count > 0) { twilio.SetElement(context, element); foreach (var uri in Uris) context.ScheduleActivity(uri); } }
protected override void Execute(NativeActivityContext context) { var twilio = context.GetExtension <ITwilioContext>(); var timeout = Timeout.Get(context); var hangupOnStar = HangupOnStar.Get(context); var timeLimit = TimeLimit.Get(context); var callerId = CallerId.Get(context); var record = Record.Get(context); // dial completion var finishUrl = twilio.ResolveBookmarkUrl(context.CreateTwilioBookmark(OnFinish)); // dial element var element = new XElement("Dial", new XAttribute("action", finishUrl), timeout != null ? new XAttribute("timeout", ((TimeSpan)timeout).TotalSeconds) : null, hangupOnStar != null ? new XAttribute("hangupOnStar", (bool)hangupOnStar ? "true" : "false") : null, timeLimit != null ? new XAttribute("timeLimit", ((TimeSpan)timeLimit).TotalSeconds) : null, callerId != null ? new XAttribute("callerId", callerId) : null, record != null ? new XAttribute("record", (bool)record ? "true" : "false") : null); // write Dial element GetElement(context).Add( element, new XElement("Redirect", finishUrl)); // execute nouns if (Activities.Count > 0) { // schedule nouns with reference to Dial element twilio.SetElement(context, element); foreach (var noun in Activities) { context.ScheduleActivity(noun); } } }