2017-12-06 18 views
1

Twilioの音声APIを使用して、C#を使用してコンソールアプリケーションから発信コールを行いたいとします。しかし、ほとんどの場合、私はconnection errorメッセージを受け取ります。私のシステムはプロキシサーバーを使用しています。だから私は、コードでプロキシ認証を追加したい。提案してください。Twilio voice api with C#

私のコードは以下の通りである:ここ

const string accountSid = "*****************"; 
const string authToken = "*****************"; 
var client = new TwilioRestClient(accountSid, authToken); TwilioClient.Init(accountSid, authToken); 
var to = new PhoneNumber("*****************"); 
var from = new PhoneNumber("*****************"); `enter code here` 
var call = CallResource.Create(to, from, url: new Uri(tempURL));

答えて

0

Twilioエバンジェリスト。

ここでプロキシを使用しようとしている場合、私はRest APIを使用することが役立つと思います。 HttpClientをオブジェクトにプロキシサーバーをフックアップするために、次のコードを試してみてください。

public static HttpClient GetProxy() 
{ 
    // First create a proxy object 
    var proxyUri = $"{proxyServerSettings.Address}:{proxyServerSettings.Port}"; 

    var proxyCreds = new NetworkCredential("proxyuser", "proxypassword"); 

    var proxy = new WebProxy(proxyUri, false) 
    { 
     UseDefaultCredentials = false, 
     Credentials = proxyCreds, 
    }; 

    // Now create a client handler which uses that proxy 
    var httpClientHandler = new HttpClientHandler() 
    { 
     Proxy = proxy, 
     PreAuthenticate = true, 
     UseDefaultCredentials = false, 
    }; 

    return new HttpClient(httpClientHandler); 
} 

はプロキシとの通話を行うには、あなたはここでサンプルコードを使用することができます。

const string accountSid = "*****************"; 
const string authToken = "*****************"; 
string to = "+1xxxxxxxxxx"; 
string from = "+1xxxxxxxxxx"; 
string callUrl = $"https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Calls"; 
var httpClient = GetProxy(); 
var authorizationValue = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{accountSid}:{authToken}")); 
httpClient.DefaultRequestHeaders.Clear(); 
httpClient.DefaultRequestHeaders.Add("Authorization", $"Basic {authorizationValue}"); 
var result= httpClient.PostAsync(callUrl, new FormUrlEncodedContent(new Dictionary<string,string> 
{ 
    {"To", to}, 
    {"From", from}, 
    {"Url", "http://demo.twilio.com/docs/voice.xml"} 
})); 

は私があれば教えてくださいこれは、追加の問題に遭遇した場合に役立ちます。ここで助けてくれるよ

+0

私はtwillのテキスト機能を使用しています。 var call = CallResource.Create(to、from、url:new Uri(tempURL));ここtempURLは、私たちが通過しているtwilio twilです。だからあなたのコードにこれを含めることができます – Ajith

+0

UriTemp = String.Format( "http://twimlets.com/echo?Twiml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22 %3F%3E%0A%3CResponse%3E%0A%20%20%20%20%3CSay%20%%3D%22%%22%20%%3D%22en-gb%22%3EHi%20i%20am%20calling%20from %20Service%20Desk%20A%20M%20S%20Alerts%20A%20High%20Priority%20Inside%20P%20 {1}%20has%20been%20%20%20%20service%20Service%20name%20is%20 { 0}。%20%3C%2FSay%3E%0A%3C%2FResponse%3E& "、servicename、Priority); – Ajith

+0

遅延の申し立て。ちょうどここに追いつく。このコードサンプルのように、 "URL"パラメータとその値を追加するだけでURLを送信できます: 'var result = httpClient.PostAsync(callUrl、new FormUrlEncodedContent(new Dictionary { { 、to}、 {"From"、from}、 {"URL"、 "LINK_TO_TWIML_URL"})); [docsへのリンク](https://www.twilio.com/docs)/api/voice/making-calls#post-parameters)、あなたが投稿できる他のパラメータをリストします。 –