コード例 #1
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("Customer Waiting Room", beep: "false");
        response.Dial(dial);

        System.Console.WriteLine(response.ToString());
    }
コード例 #2
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("SimpleRoom", muted: "true");
        response.Dial(dial);

        System.Console.WriteLine(response.ToString());
    }
コード例 #3
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("SimpleRoom", muted: true);
        response.Append(dial);

        Console.WriteLine(response.ToString());;
    }
コード例 #4
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("Room 1234");
        response.Append(dial);

        Console.WriteLine(response.ToString());
    }
コード例 #5
0
ファイル: conference-9.5.x.cs プロジェクト: c9n/api-snippets
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial(action: "handleLeaveConference.php", method: "POST",
                                hangupOnStar: "true", timeLimit: 30);

        dial.Conference("LoveTwilio");
        response.Dial(dial);

        System.Console.WriteLine(response.ToString());
    }
コード例 #6
0
ファイル: conference-6.5.x.cs プロジェクト: c9n/api-snippets
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("NoMusicNoBeepRoom", beep: "false", waitUrl: "",
                        startConferenceOnEnter: "true", endConferenceOnExit: "true");
        response.Dial(dial);

        System.Console.WriteLine(response.ToString());
    }
コード例 #7
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("Customer Waiting Room", beep: Conference.BeepEnum
                        .False);
        response.Append(dial);

        Console.WriteLine(response.ToString());
    }
コード例 #8
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("Customer Waiting Room", beep: "false",
                        endConferenceOnExit: true);
        response.Append(dial);

        Console.WriteLine(response.ToString());;
    }
コード例 #9
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("LoveTwilio", record: "record-from-start",
                        recordingStatusCallback: new Uri("www.myexample.com"));
        response.Append(dial);

        Console.WriteLine(response.ToString());;
    }
コード例 #10
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial(record: "record-from-ringing-dual",
                                recordingStatusCallback: "www.myexample.com");

        dial.Conference("myteamroom");
        response.Dial(dial);

        System.Console.WriteLine(response.ToString());
    }
コード例 #11
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("moderated-conference-room",
                        startConferenceOnEnter: true, endConferenceOnExit: true);
        response.Append(dial);

        Console.WriteLine(response.ToString());
    }
コード例 #12
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("NoMusicNoBeepRoom", beep: "false", waitUrl: "http://your-webhook-host.com",
                        startConferenceOnEnter: true, endConferenceOnExit: true);
        response.Dial(dial);

        System.Console.WriteLine(response.ToString());
    }
コード例 #13
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("moderated-conference-room",
                        startConferenceOnEnter: false);
        response.Dial(dial);

        System.Console.WriteLine(response.ToString());
    }
コード例 #14
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial(action: new Uri("handleLeaveConference.php"), method: HttpMethod.Post,
                                hangupOnStar: true, timeLimit: 30);

        dial.Conference("LoveTwilio");
        response.Append(dial);

        Console.WriteLine(response.ToString());;
    }
コード例 #15
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("NoMusicNoBeepRoom", beep: Conference.BeepEnum.False,
                        waitUrl: new Uri("http://your-webhook-host.com"),
                        startConferenceOnEnter: true, endConferenceOnExit: true);
        response.Append(dial);

        Console.WriteLine(response.ToString());
    }
コード例 #16
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial(record: Dial.RecordEnum.RecordFromRingingDual,
                                recordingStatusCallback: new Uri("www.myexample.com", UriKind
                                                                 .Relative));

        dial.Conference("myteamroom");
        response.Append(dial);

        Console.WriteLine(response.ToString());
    }
コード例 #17
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("EventedConf",
                        statusCallback: "https://myapp.com/events",
                        statusCallbackEvent: "start end join leave mute hold");
        response.Dial(dial);

        System.Console.WriteLine(response.ToString());
    }
コード例 #18
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("LoveTwilio", record: Conference.RecordEnum
                        .RecordFromStart,
                        recordingStatusCallback: new Uri("www.myexample.com", UriKind
                                                         .Relative));
        response.Append(dial);

        Console.WriteLine(response.ToString());
    }
コード例 #19
0
        public ActionResult TransferTwiml()
        {
            var response = new VoiceResponse();
            var dial     = new Dial();

            dial.Conference(Request.Params.Get("conference"));

            response.Append(dial);

            Console.Write(response.ToString());

            return(Content(response.ToString(), contentType: "text/xml"));
        }
コード例 #20
0
        public IActionResult TransferTwiml()
        {
            var response = new VoiceResponse();
            var dial     = new Dial();

            dial.Conference(HttpContext.Request.Query["conference"]);

            response.Append(dial);

            Console.Write(response.ToString());

            return(Content(response.ToString(), contentType: "text/xml"));
        }
コード例 #21
0
        // this is an endpoint to add the callee into the conference call

        public ActionResult JoinConfrence(string call_session_id)
        {
            var    response = new VoiceResponse();
            string leaveUrl = _twilioSettings.TwilioApiUrl + "Leave";
            var    dial     = new Dial();

            dial.Conference(name: call_session_id,
                            statusCallbackEvent: new[] { Conference.EventEnum.Leave }.ToList(),
                            statusCallback: new Uri("http://338e35e84b93.ngrok.io/TwilioCall/Leave"),
                            endConferenceOnExit: true
                            );
            response.Append(dial);

            return(Content(response.ToString()));
        }
コード例 #22
0
    static void Main()
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        dial.Conference("EventedConf",
                        statusCallback: new Uri("https://myapp.com/events"),
                        statusCallbackEvent: new [] { Conference.EventEnum.Start, Conference
                                                      .EventEnum.End, Conference.EventEnum.Join, Conference.EventEnum
                                                      .Leave, Conference.EventEnum.Mute, Conference.EventEnum.Hold }
                        .ToList());
        response.Append(dial);

        Console.WriteLine(response.ToString());
    }
コード例 #23
0
    public ActionResult Index(string from)
    {
        var response = new VoiceResponse();
        var dial     = new Dial();

        // If the caller is our MODERATOR, then start the conference when they
        // join and end the conference when they leave
        if (from == Moderator)
        {
            dial.Conference("My conference",
                            startConferenceOnEnter: true,
                            endConferenceOnExit: true);
        }
        else
        {
            // Otherwise have the caller join as a regular participant
            dial.Conference("My conference",
                            startConferenceOnEnter: false);
        }

        response.Dial(dial);

        return(TwiML(response));
    }
コード例 #24
0
        public IActionResult Index(string from)
        {
            var response = new VoiceResponse();

            if (from == _twilioPhone)
            {
                var dial = new Dial();
                dial.Conference("Room 1",
                                startConferenceOnEnter: true,
                                endConferenceOnExit: true);
                response.Append(dial);
            }
            else
            {
                response.Reject();
            }

            return(TwiML(response));
        }
コード例 #25
0
        public ActionResult Connect(string digits)
        {
            var isMuted = digits.Equals("1");                     // Listener
            var canControlConferenceOnEnter = digits.Equals("3"); // Moderator

            var response = new VoiceResponse();

            response.Say("You have joined the conference");

            var dial = new Dial();

            dial.Conference("RapidResponseRoom",
                            waitUrl: "http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient",
                            muted: isMuted,
                            startConferenceOnEnter: canControlConferenceOnEnter,
                            endConferenceOnExit: canControlConferenceOnEnter);

            response.Dial(dial);

            return(TwiML(response));
        }
コード例 #26
0
        public void TestElementWithChildren()
        {
            var elem = new Dial();

            elem.Client(
                "identity",
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get,
                Promoter.ListOfOne(Client.EventEnum.Initiated),
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get
                );

            elem.Conference(
                "name",
                true,
                Conference.BeepEnum.True,
                true,
                true,
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get,
                1,
                Conference.RecordEnum.DoNotRecord,
                Conference.RegionEnum.Us1,
                "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
                Conference.TrimEnum.TrimSilence,
                Promoter.ListOfOne(Conference.EventEnum.Start),
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get,
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get,
                Promoter.ListOfOne(Conference.RecordingEventEnum.InProgress),
                new Uri("https://example.com"),
                Conference.JitterBufferSizeEnum.Large,
                "participant_label"
                );

            elem.Number(
                new Twilio.Types.PhoneNumber("+15017122661"),
                "send_digits",
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get,
                Promoter.ListOfOne(Number.EventEnum.Initiated),
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get,
                "BYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
                );

            elem.Queue(
                "name",
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get,
                "reservation_sid",
                "post_work_activity_sid"
                );

            elem.Sim("DEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");

            elem.Sip(
                new Uri("https://example.com"),
                "username",
                "password",
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get,
                Promoter.ListOfOne(Sip.EventEnum.Initiated),
                new Uri("https://example.com"),
                Twilio.Http.HttpMethod.Get
                );

            Assert.AreEqual(
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + Environment.NewLine +
                "<Dial>" + Environment.NewLine +
                "  <Client url=\"https://example.com\" method=\"GET\" statusCallbackEvent=\"initiated\" statusCallback=\"https://example.com\" statusCallbackMethod=\"GET\">identity</Client>" + Environment.NewLine +
                "  <Conference muted=\"true\" beep=\"true\" startConferenceOnEnter=\"true\" endConferenceOnExit=\"true\" waitUrl=\"https://example.com\" waitMethod=\"GET\" maxParticipants=\"1\" record=\"do-not-record\" region=\"us1\" coach=\"CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\" trim=\"trim-silence\" statusCallbackEvent=\"start\" statusCallback=\"https://example.com\" statusCallbackMethod=\"GET\" recordingStatusCallback=\"https://example.com\" recordingStatusCallbackMethod=\"GET\" recordingStatusCallbackEvent=\"in-progress\" eventCallbackUrl=\"https://example.com\" jitterBufferSize=\"large\" participantLabel=\"participant_label\">name</Conference>" + Environment.NewLine +
                "  <Number sendDigits=\"send_digits\" url=\"https://example.com\" method=\"GET\" statusCallbackEvent=\"initiated\" statusCallback=\"https://example.com\" statusCallbackMethod=\"GET\" byoc=\"BYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\">+15017122661</Number>" + Environment.NewLine +
                "  <Queue url=\"https://example.com\" method=\"GET\" reservationSid=\"reservation_sid\" postWorkActivitySid=\"post_work_activity_sid\">name</Queue>" + Environment.NewLine +
                "  <Sim>DEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</Sim>" + Environment.NewLine +
                "  <Sip username=\"username\" password=\"password\" url=\"https://example.com\" method=\"GET\" statusCallbackEvent=\"initiated\" statusCallback=\"https://example.com\" statusCallbackMethod=\"GET\">https://example.com</Sip>" + Environment.NewLine +
                "</Dial>",
                elem.ToString()
                );
        }
コード例 #27
0
        //    public async Task<ActionResult<ResponseModel>> CallByRequest(PrankCallRequestModel request)
        public async Task <ActionResult <ResponseModel> > CallByRequest()
        {
            int    prankId         = 4;
            int    deviceId        = 12;
            int    prankCallFromId = 1;
            string toPhoneNumberCountryCodePrefix = "91";
            string ToPhoneNo = "7665704988";
            var    request   = new PrankCallRequestModel()
            {
                PrankId         = prankId,
                DeviceId        = deviceId,
                PrankCallFromId = prankCallFromId,
                ToPhoneNumberCountryCodePrefix = toPhoneNumberCountryCodePrefix,
                ToPhoneNumber           = ToPhoneNo,
                CostPoint               = 10,
                ToPhoneNumberPersonName = "sds"
            };

            var response   = new VoiceResponse();
            var fromNumber = await _dataContext.PrankCallFromPhoneNumber(request.ToPhoneNumberCountryCodePrefix).ToListAsync();

            var objPrankCallFromPhone = new PrankCallFromPhoneNumberModel();

            if (fromNumber != null && fromNumber.Any())
            {
                objPrankCallFromPhone = fromNumber.FirstOrDefault();
                if (!string.IsNullOrEmpty(objPrankCallFromPhone.CountryCode))
                {
                    TwilioClient.Init(_twilioSettings.TwilioAccountSid, _twilioSettings.TwilioAuthToken);

                    StringBuilder str_build = new StringBuilder();
                    Random        random    = new Random();

                    int  length = 7;
                    char letter;

                    for (int i = 0; i < length; i++)
                    {
                        double flt   = random.NextDouble();
                        int    shift = Convert.ToInt32(Math.Floor(25 * flt));
                        letter = Convert.ToChar(shift + 65);
                        str_build.Append(letter);
                    }

                    string sessionId = str_build.ToString();
                    request.PrankCallFromId = objPrankCallFromPhone.PrankCallFromId;

                    // http://960d5976e357.ngrok.io/JoinConfrence/


                    string joinConfrenceUrl = _twilioSettings.TwilioApiUrl + "JoinConfrence?call_session_id=" + sessionId;
                    string completeCallUrl  = _twilioSettings.TwilioApiUrl + "CompleteCall";

                    var call = CallResource.Create(
                        to: new Twilio.Types.PhoneNumber(objPrankCallFromPhone.CountryCode + request.ToPhoneNumber),
                        from: new Twilio.Types.PhoneNumber(objPrankCallFromPhone.CountryCode + objPrankCallFromPhone.PhoneNumber),  //"+918764245892"
                        url: new Uri(joinConfrenceUrl),
                        statusCallbackEvent: new[] { Number.EventEnum.Completed.ToString() }.ToList(),
                        statusCallback: new Uri(completeCallUrl),
                        statusCallbackMethod: Twilio.Http.HttpMethod.Post
                        );

                    sessionID_to_callsid = call.Sid;

                    //  dials the caller (from number) into the conference

                    string confrenceCalleeUrl = _twilioSettings.TwilioApiUrl + "ConfrenceCallee?confrenceFriendlyName=" + sessionId;
                    var    CallRequest        = JsonConvert.SerializeObject(request);
                    //string confrenceRecordingCallbackUrl = _twilioSettings.TwilioApiUrl + "ConfrenceRecordingCallback?callRequest=" + CallRequest;
                    string confrenceRecordingCallbackUrl = _twilioSettings.TwilioApiUrl + "ConfrenceRecordingCallback?callRequest=d";
                    var    dial = new Dial();
                    dial.Conference(name: sessionId,
                                    waitUrl: new Uri("https://twimlets.com/holdmusic?Bucket=com.twilio.music.electronica"),
                                    statusCallbackEvent: new[] { Conference.EventEnum.Join }.ToList(),
                                    beep: Conference.BeepEnum.Onenter,
                                    statusCallback: new Uri(confrenceCalleeUrl),
                                    startConferenceOnEnter: true,
                                    endConferenceOnExit: true,
                                    record: Conference.RecordEnum.RecordFromStart,
                                    trim: Conference.TrimEnum.TrimSilence,
                                    muted: true,
                                    recordingStatusCallback: new Uri(confrenceRecordingCallbackUrl));

                    response.Append(dial);
                }
            }
            return(Content(response.ToString()));
        }
コード例 #28
0
        public ActionResult MakeCall()
        {
            var response = new VoiceResponse();

            TwilioClient.Init(_twilioSettings.TwilioAccountSid, _twilioSettings.TwilioAuthToken);

            StringBuilder str_build = new StringBuilder();
            Random        random    = new Random();

            int  length = 7;
            char letter;

            for (int i = 0; i < length; i++)
            {
                double flt   = random.NextDouble();
                int    shift = Convert.ToInt32(Math.Floor(25 * flt));
                letter = Convert.ToChar(shift + 65);
                str_build.Append(letter);
            }

            string sessionId = str_build.ToString();



            string joinConfrenceUrl = _twilioSettings.TwilioApiUrl + "JoinConfrence/" + sessionId;
            string completeCallUrl  = _twilioSettings.TwilioApiUrl + "CompleteCall";

            var call = CallResource.Create(
                to: new Twilio.Types.PhoneNumber("+917665704988"),
                from: new Twilio.Types.PhoneNumber("+918764245892"),
                url: new Uri(joinConfrenceUrl),
                statusCallbackEvent: new[] { Number.EventEnum.Completed.ToString() }.ToList(),
                statusCallback: new Uri("http://338e35e84b93.ngrok.io/TwilioCall/CompleteCall"),
                statusCallbackMethod: Twilio.Http.HttpMethod.Post
                );

            sessionID_to_callsid = call.Sid;

            //  dials the caller (from number) into the conference

            string confrenceCalleeUrl = _twilioSettings.TwilioApiUrl + "ConfrenceCallee/" + sessionId;

            string confrenceRecordingCallbackUrl = _twilioSettings.TwilioApiUrl + "ConfrenceRecordingCallback";
            var    dial = new Dial();

            dial.Conference(name: sessionId,
                            waitUrl: new Uri("https://twimlets.com/holdmusic?Bucket=com.twilio.music.electronica"),
                            statusCallbackEvent: new[] { Conference.EventEnum.Join }.ToList(),
                            beep: Conference.BeepEnum.Onenter,
                            statusCallback: new Uri("http://338e35e84b93.ngrok.io/TwilioCall/ConfrenceCallee/" + sessionId),
                            startConferenceOnEnter: true,
                            endConferenceOnExit: true,
                            record: Conference.RecordEnum.RecordFromStart,
                            trim: Conference.TrimEnum.TrimSilence,
                            muted: true,
                            recordingStatusCallback: new Uri("http://338e35e84b93.ngrok.io/TwilioCall/ConfrenceRecordingCallback"));

            response.Append(dial);

            return(Content(response.ToString()));
        }