public static async Task <FaxResource> SendFaxAsync(ITwilioRestClient client, string from, string to, Uri mediaUrl, FaxResource.QualityEnum quality = null, string sipAuthUsername = null, string sipAuthPassword = null, Uri statusCallback = null, bool?storeMedia = null, int?minutesToSend = null) { var options = new CreateFaxOptions(to, mediaUrl) { From = from, Quality = quality ?? FaxResource.QualityEnum.Standard, SipAuthUsername = sipAuthUsername, SipAuthPassword = sipAuthPassword, StatusCallback = statusCallback, StoreMedia = storeMedia, Ttl = minutesToSend }; return(await FaxResource.CreateAsync(options, client)); }
public async Task <IActionResult> Post() { Logger.LogInformation("Outgoing Request:\n{0}", JsonConvert.SerializeObject(Request.Form)); var msg = CreateOutgoingMessage(); try { // TODO: check from domain dynamic envelope = JsonConvert.DeserializeObject(Request.Form["envelope"]); // Send FAX TwilioClient.Init(Settings.Twilio.UserName, Settings.Twilio.Password); var options = await ParseRequest(Request); Logger.LogDebug("Request to Twilio:\n{0}", JsonConvert.SerializeObject(options)); var result = await FaxResource.CreateAsync(options, TwilioClient.GetRestClient()); Logger.LogDebug("Result from Twilio:\n{0}", JsonConvert.SerializeObject(result)); // Store reply message Cache.Set(result.Sid, msg); } catch (ArgumentException exn) { Logger.LogError(exn, "Bad request"); SetErrorMessage(msg, Request.Form, "Bad request", exn); await msg.SendAsync(Settings.SendGrid); } catch (Twilio.Exceptions.TwilioException exn) { Logger.LogError(exn, "Request to Twilio failed"); SetErrorMessage(msg, Request.Form, "Request to Twilio failed", exn); await msg.SendAsync(Settings.SendGrid); } catch (Exception exn) { Logger.LogError(exn, "Internal error"); return(StatusCode(500)); } return(Ok()); }