Twilio разработчик евангелист здесь.
Вы можете абсолютно сделать это с Twilio. Вам понадобится сервер с небольшим приложением, работающим на нем, но я объясню, какой поток вам понадобится.
Приложение должно быть доступно по URL-адресу, который вы можете настроить в качестве URL-адреса запроса обмена сообщениями при покупке номера Twilio. Затем, когда сообщение было отправлено на номер, Twilio отправит HTTP-запрос на URL-адрес.
Ваше приложение должно было бы сделать две вещи в ответ на этот запрос. To initiate the call, it would need to make a request to the Twilio API. В Ruby вы можете сделать следующее:
require "twilio-ruby"
client = Twilio::REST::Client.new("YOUR_TWILIO_ACCOUNT_SID", "YOUR_TWILIO_AUTH_TOKEN")
client.calls.create(
:to => "YOUR_RELATIVES_NUMBER",
:from => "YOUR_TWILIO_NUMBER",
:url => "http://your-url.com/hangup"
)
Чтобы переслать сообщение, Вам необходимо будет вернуть некоторые XML, известные как TwiML, чтобы tell Twilio to forward the message номер вашего родственника тоже. Это XML будет выглядеть следующим образом:
<Response>
<Message to="YOUR_RELATIVES_NUMBER" from="YOUR_TWILIO_NUMBER">params["Body"]</Message>
</Response>
Вы должны были бы еще одну конечную точку для вашего приложения, что бы hangup the call when answered. Это будет возвращать некоторые очень простые TwiML так:
<Response>
<Hangup/>
</Response>
Все вместе, используя Синатру в качестве веб-структуры это будет выглядеть так:
require 'twilio-ruby'
require 'sinatra'
post '/messages' do
client = Twilio::REST::Client.new("YOUR_TWILIO_ACCOUNT_SID", "YOUR_TWILIO_AUTH_TOKEN")
client.calls.create(
:to => "YOUR_RELATIVES_NUMBER",
:from => "YOUR_TWILIO_NUMBER",
:url => "http://your-url.com/hangup"
)
twiml = Twilio::TwiML::Response.new do |r|
r.Message params["Body"], :to => "YOUR_RELATIVES_NUMBER", :from => "YOUR_TWILIO_NUMBER"
end
return twiml.to_xml
end
post '/hangup' do
twiml = Twilio::TwiML::Response.new do |r|
r.Hangup
end
return twiml.to_xml
end
Единственным недостатком будет то, что все сообщения будут появляться на поступают из номера Twilio, поскольку Twilio не позволяет подменять номера для SMS-сообщений.
Я заметил, что вы ответили на вопрос о StackOverflow тегом C#. Я не разработчик C#, поэтому примеры Ruby, но в документации, которую я связал по всему выше, есть примеры и на C#.
Дайте мне знать, если это вообще поможет.
Спасибо, очень полезно, и извините за задержку в подтверждении. Я больше сосредоточен на C#, но не беспокойтесь, это поможет мне оценить возможности. – MattPil29