Twilio API - Как повесить все активные вызовы с помощью C #? - PullRequest
0 голосов
/ 14 ноября 2018

Я ищу помощи в отбивании всех вызовов независимо от статуса, используя C # и Twilio API.Что-то вроде бессмысленного 'Kill Switch'.

Я видел этот код, написанный на python, и задавался вопросом, есть ли у кого-нибудь примеры на C #, на которые я мог бы взглянуть?

from twilio.rest import TwilioRestClient
from twilio.rest.resources import Call

ACCOUNT_SID = "YOUR_ACCOUNT_SID"
AUTH_TOKEN = "YOUR_AUTH_TOKEN"
client = TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN)
calls = client.calls.list(status=Call.IN_PROGRESS)

for c in calls:
c.hangup()

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Я придумал это. Не совсем элегантно, но работает:

private void KillSwitch(string accountSid, string authToken)
    {
        TwilioClient.Init(accountSid, authToken);
        var callsInProgress = CallResource.Read(status: CallResource.StatusEnum.InProgress);
        var callsQueued = CallResource.Read(status: CallResource.StatusEnum.Queued);
        var callsRinging = CallResource.Read(status: CallResource.StatusEnum.Ringing);
        foreach (var call in callsQueued)
        {
            CallResource.Update(status: CallResource.UpdateStatusEnum.Completed, pathSid: call.Sid);
        }
        foreach (var call in callsInProgress)
        {
            CallResource.Update(status: CallResource.UpdateStatusEnum.Completed, pathSid: call.Sid);
        }
        foreach (var call in callsRinging)
        {
            CallResource.Update(status: CallResource.UpdateStatusEnum.Completed, pathSid: call.Sid);
        }
    }
0 голосов
/ 15 ноября 2018

Вы можете сделать что-то вроде этого:

// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Api.V2010.Account;


class Program 
{
    static void Main(string[] args)
    {
        // Find your Account Sid and Token at twilio.com/console
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken = "your_auth_token";

        TwilioClient.Init(accountSid, authToken);

        var call = CallResource.Update(
            status: CallResource.UpdateStatusEnum.Completed,
            pathSid: "CAe1644a7eed5088b159577c5802d8be38"
        );

        Console.WriteLine(call.To);
    }
}

Вы можете заключить метод CallResource.Update(...) в цикл for и передать список активных вызовов в качестве параметра.

Вы можете найти больше информации здесь: https://www.twilio.com/docs/voice/tutorials/how-to-modify-calls-in-progress-in-csharp#hanging-up-a-call-in-progress

...