如何使用Twilio作为我的Asterisk拨打和接听电话的SIP中继?
我有一个Twilio帐户,它有一个号码(比如8881231234),我有一个星号框。我想使用Twilio作为一个星号中继,以便能够以他们的费率拨打电话,并在我的星号上接收来自该号码的呼叫如何使用Twilio作为我的Asterisk拨打和接听电话的SIP中继?,sip,voip,asterisk,twilio,Sip,Voip,Asterisk,Twilio,我有一个Twilio帐户,它有一个号码(比如8881231234),我有一个星号框。我想使用Twilio作为一个星号中继,以便能够以他们的费率拨打电话,并在我的星号上接收来自该号码的呼叫 我还没有找到任何将Asterisk与Twilio互连的规范。是否可以设置星号,以便每个传出呼叫都通过Twilio路由,并在我的SIP电话上挂上我的88812334号码环?正如下面所指出的,Twilio现在可以作为SIP中继,您可以访问了解更多信息 这是不推荐的!!!您应该使用TWILIO自己的SIP中继 Tw
我还没有找到任何将Asterisk与Twilio互连的规范。是否可以设置星号,以便每个传出呼叫都通过Twilio路由,并在我的SIP电话上挂上我的88812334号码环?正如下面所指出的,Twilio现在可以作为SIP中继,您可以访问了解更多信息
这是不推荐的!!!您应该使用TWILIO自己的SIP中继强> Twilio不起SIP中继的作用。。。它的目标是希望在其服务上构建应用程序的开发人员。然而,没有什么可以阻止你构建一个应用程序,让你通过Twilio拨打外线电话,并在asterisk上接收来自他们的电话。您需要一个HTTP服务器来返回Twilio需要的XMLs 通过Twilio拨打电话 它有三个步骤:
[twilio]
type = peer
username = myusername
remotesecret = mypassword
host = example.sip.twilio.com
qualify = no
然后,在您的extensions.conf上使用它(我使用的是twilio的前缀88…因此,如果我拨打8818881231235,它将通过twilio在美国呼叫(888)123-1235)
就这样。。。当你拨那个,你就到了twilio
处理twilio的请求并返回TwiML
Twilio将调用您在第一步中设置的url。它执行一个HTTP POST,该POST的参数名为To,带有星号调用的URL。。。因此,如果您拨打8818881231235,您将进入To参数
sip:18881231235@example.sip.twilio.com
您应该获取该参数并提取数字,然后返回
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial callerId="+18881231234">
<Number>18881231235</Number>
</Dial>
</Response>
你需要设置一个号码来呼叫你的星号。假设您的星号域是sip.example.com,并且您希望twilio拨打分机100,那么您需要返回的内容
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Sip>sip:100@sip.example.com</Sip>
</Dial>
</Response>
如果你对我是如何做到这一点感兴趣,看看我写的这些博客吧。从他们那里复制了很多来调整这个答案
Twilio现在似乎提供SIP中继。这里是Twilio福音传道者。天哪,饼干!非常感谢你发布这个绝对令人惊讶的答案。谢谢你的评论!我喜欢你的服务:)嘿,如果你有一个twimlet从To参数中提取电话号码(我在这里用PHP做的同样的事情),那就太好了,这样就有一种方法可以将Twilio用作SIP中继,而不需要一个web服务器,当你像这样呼叫时,会使用它的定价。。。右下角的这个:或者这个:?在这两种情况下,你都有两条腿,而且你都要付费,打进来的电话(假设你有一个美国电话号码),你每分钟要付1c(进来的电话费)加上0.50c的SIP电话费(在500k分钟后会下降)。因此,在twilio上,一个来电的成本为1.5c/分钟。使用同样的逻辑,如果你拨出一个电话到美国,你将支付每分钟2c+0.5c的SIP呼叫,每分钟2.5c的总和,因为偶尔会有一次错误的上下文用于传入呼叫。事实证明,twilio调用来自TwilioIP列表中包含的几个IP地址。由于[twilio]没有上下文,因此使用了默认上下文。这可以通过指定[twilio](twiliocaller)来解决。twilio现在确实为VoIP系统提供SIP中继服务。你可以参考和了解更多信息。你完全正确。我修改了我的答案来解释这一点,我也改变了被接受的答案,因为人们应该完全去那里:)
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial callerId="+18881231234">
<Number><?php preg_match('/:([0-9]+)@/', $_POST['To'], $matches); echo $matches[1]; ?></Number>
</Dial>
</Response>
[twiliocaller](!)
context = fromtwilio
type = peer
qualify=no
allowguest=yes
[twilioip-1](twiliocaller)
host=107.21.222.153
[twilioip-2](twiliocaller)
host=107.21.211.20
[twilioip-3](twiliocaller)
host=107.21.231.147
[twilioip-4](twiliocaller)
host=54.236.81.101
[twilioip-5](twiliocaller)
host=54.236.96.128
[twilioip-6](twiliocaller)
host=54.236.97.29
[twilioip-7](twiliocaller)
host=54.236.97.135
[twilioip-8](twiliocaller)
host=54.232.85.81
[twilioip-9](twiliocaller)
host=54.232.85.82
[twilioip-10](twiliocaller)
host=54.232.85.84
[twilioip-11](twiliocaller)
host=54.232.85.85
[twilioip-12](twiliocaller)
host=54.228.219.168
[twilioip-13](twiliocaller)
host=54.228.233.229
[twilioip-14](twiliocaller)
host=176.34.236.224
[twilioip-15](twiliocaller)
host=176.34.236.247
[twilioip-16](twiliocaller)
host=46.137.219.1
[twilioip-17](twiliocaller)
host=46.137.219.3
[twilioip-18](twiliocaller)
host=46.137.219.35
[twilioip-19](twiliocaller)
host=46.137.219.135
[twilioip-20](twiliocaller)
host=54.249.244.21
[twilioip-21](twiliocaller)
host=54.249.244.24
[twilioip-22](twiliocaller)
host=54.249.244.27
[twilioip-23](twiliocaller)
host=54.249.244.28
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Sip>sip:100@sip.example.com</Sip>
</Dial>
</Response>
[twilio](twiliocaller)
type = peer
username = myusername
remotesecret = mypassword
host = example.sip.twilio.com
qualify = no