private static async Task MainAsync() { var calloutApi = SinchFactory.CreateApiFactory("00000000-0000-0000-0000-000000000000", "AAAAAAAAAAAAAAAAAAAAAA==").CreateCalloutApi(); // TTS callout var calloutResponse = await calloutApi.TtsCallout("+15612600684", "How are you doing?", "").Call(); Console.WriteLine(calloutResponse.callId); Console.ReadLine(); // Conference callout calloutResponse = await calloutApi.ConferenceCallout(To.Username("Buddy"), "ConfId-123", "", "Welcome!").Call(); Console.WriteLine(calloutResponse.callId); Console.ReadLine(); // Menu callout var menu = calloutApi.CreateMenuBuilder() .BeginMenuDefinition("main", new PromptFile("press1forinput_press2forexit"), null) .AddGotoMenuOption(Dtmf.Digit1, "input") .AddTriggerPieOption(Dtmf.Digit2, "exit") .EndMenuDefinition() .AddNumberInputMenu("input", new PromptFile("enterprompt"), 4); calloutResponse = await calloutApi .MenuCallout("+15612600684", "+15612600684", menu, "main", TimeSpan.FromSeconds(5)).Call(); Console.WriteLine(calloutResponse.callId); Console.ReadLine(); // Custom callout with ICE and ACE handlers var crf = SinchFactory.CreateCallbackResponseFactory(Locale.EnUs); var ice = crf.CreateIceSvamletBuilder() .ConnectPstn("+15612600684") .WithAnonymousCli() .WithDialTimeout(TimeSpan.FromSeconds(30)); var ace = crf.CreateAceSvamletBuilder() .Say("Hello there!") .Build(); calloutResponse = await calloutApi.CustomCallout(ice.Body, ace.Body, null, null).Call(); Console.WriteLine(calloutResponse.callId); Console.ReadLine(); }
public async Task <SvamletModel> Post(CallbackEventModel model) { var sinch = SinchFactory.CreateCallbackResponseFactory(Locale.EnUs); var reader = sinch.CreateEventReader(); var evt = reader.ReadModel(model); var builder = sinch.CreateIceSvamletBuilder(); switch (evt.Event) { case Event.IncomingCall: builder.AddNumberInputMenu("menu1", "Enter 4 digits", 4, "Enter 4 digits", 3, TimeSpan.FromSeconds(60)); builder.RunMenu("menu1"); break; case Event.PromptInput: using (var db = new ConferenceContext()) { var conference = db.Conferences.FirstOrDefault(c => c.PinCode == model.MenuResult.Value); if (conference != null) { builder.ConnectConference(conference.ConferenceId.ToString()); } else { builder.Say("Invalid code").Hangup(HangupCause.Normal); } } break; case Event.AnsweredCall: builder.Continue(); break; default: break; } return(builder.Build().Model); }
static void Main(string[] args) { var iceRequestText = File.ReadAllText("../../ice.txt"); var sinch = SinchFactory.CreateCallbackResponseFactory(Locale.EnUs); var evt = sinch.CreateEventReader().ReadJson(iceRequestText); if (evt is IIceEvent) { var iceEvent = evt as IIceEvent; Console.WriteLine("Ice Event"); Console.WriteLine("From: " + iceEvent.Cli); Console.WriteLine("To: " + iceEvent.To.Endpoint); var menu = sinch.CreateMenuBuilder(); menu.AddNumberInputMenu("ipt", new TtsPrompt("Hello!"), 4); var response = sinch.CreateIceSvamletBuilder(); var iceResponseText = response.RunMenu("ipt", menu).Body; Console.WriteLine(iceResponseText); iceResponseText = response .Say("Hello world") .Say("Will connect your call") .SetCookie("mycookie", "myvalue") .ConnectPstn("+46777888999") .WithBridgeTimeout(TimeSpan.FromMinutes(2.5)) .WithAnonymousCli() .WithCallTag(CallTag.DefaultBillingTag, "C02-14") .WithCallTag("CustomCallTag", "foo") .WithAnsweringMachineDetection().Body; Console.WriteLine(iceResponseText); } }