这里是 Twilio 开发者宣传员。
您完全可以使用 Twilio 做到这一点。不过,您需要一台运行小型应用程序的服务器,我将解释您需要的流程。
应用程序需要在您购买 Twilio 号码时可以设置为消息请求 URL 的 URL 上可用。然后,当向号码发送消息时,Twilio 将向该 URL 发出 HTTP 请求。
您的应用程序必须做两件事来响应该请求。 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>
总而言之,使用 Sinatra 作为 Web 框架如下所示:
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# 示例。
让我知道这是否有帮助。