Exemple #1
0
        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);
        }
Exemple #3
0
        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);
            }
        }