示例#1
0
 public static async Task Call(string phoneNumber, string to)
 {
     MainForm.callLabel.Text = "Attempting call...";
     if (Program.ApplicationInstance._embedded.communication._links.startPhoneAudio == null) return;
     if (Program.ApplicationInstance._embedded.communication._links.startPhoneAudio.href.IsEmpty())
     {
         var response = await (new LyncHttpClient()).PutAsync(
             Program.ApplicationInstance._embedded.communication._links.self.href, new StringContent(""));
         if (response.IsSuccessStatusCode)
         {
             Program.ApplicationInstance._embedded.communication._links.startPhoneAudio.href =
                 (string)(JObject.Parse(await response.Content.ReadAsStringAsync())).SelectToken("_links.startPhoneAudio.href");
         }
         else
         {
             
             MainForm.callLabel.Text = "Failed";
             return;
         }
     }
     var lyncClient = new LyncHttpClient();
     var lyncResponse = await lyncClient.PostAsync(Program.ApplicationInstance._embedded.communication._links.startPhoneAudio.href,
         new StringContent(
         await Task.Run<string>(delegate
         {
             return JsonConvert.SerializeObject(new StartPhoneAudioPayload()
                 {
                     //Fill these values
                     Importance = "Normal",
                     OperationId = Guid.NewGuid().ToString(),
                     PhoneNumber = phoneNumber,
                     Subject = "We want to see that what we think should work actually works.",
                     ThreadId = Guid.NewGuid().ToString(),
                     To = String.Concat("sip:", to)
                 });
         }), Encoding.UTF8, "application/json"));
     lyncResponse.ToString();
 }