我一直在了解更多关于WebRTC,SIP和PSTN以及它们如何协同工作,尤其是在浏览器中接听电话的能力。我花了一些时间在Twilio的网站上,我喜欢他们能够让你接到一个从PSTN到你的浏览器的电话。
我想了解他们如何让某人拨打正常的PSTN电话号码,并将电话转到网络浏览器。
我碰到了this question并且得到了一些了解但是仍有一些东西对我来说仍然缺失。
为了帮助澄清我的问题,让我们采取以下方案:
我们假设我住在伦敦并拥有自己的SIP服务器和SIP帐户,并且有一个PSTN电话号码,并且该号码被映射到SIP帐户。现在我希望能够在浏览器中接听来自世界各地的电话。当人们拨打PSTN号码时,呼叫将通过我的电信提供商。那么这些电话如何进入我的浏览器?在将呼叫定向到浏览器之前,是否必须将SIP服务器连接到电信提供商系统?
这是否意味着能够将呼叫定向到浏览器,电信公司系统必须知道对于这个特定的PSTN号码,呼叫必须来到我的SIP服务器或类似的东西?
我想知道访问我的浏览器的所有步骤,包括软件和(可能是硬件)介于两者之间。
Twilio为想要他们的人提供本地号码。据我所知,Twilio与电信公司签订协议以获取这些数字。 Twilio系统是否可以连接到所有这些电信公司系统,然后才能将呼叫定向到用户的浏览器?
答案 0 :(得分:5)
涡流,
我想说你的问题可以分成2个技术解决方案。 首先 - 从PSTN拨打电话到WebRTC 第二 - 浏览器上的来电
从PSTN拨打电话到WebRTC
这样做需要网关(GW)。在这个事实中,WebRTC没有什么特别之处。将PSTN呼叫接入任何VoIP网络(SIP,H.323,专有)将需要终止PSTN呼叫并初始化VoIP呼叫。对于WebRTC,有一些特殊要求,如安全性,WebSockets,常见的Opus 9或G.711)。 另一个特殊之处是WebRTC没有指定信令。您可以使用SIP,但许多人只使用简单的专有信令。这就是为什么许多解决方案为GW和WebRTC客户创建一种端到端解决方案的原因。
浏览器上的来电
这是一个更复杂的要求,它实际上取决于您的整体应用程序。 如果您的浏览器没有运行,则无法通过简单的方式接听来电。一个解决方案可能是您安装用户的一些小型应用程序会启动浏览器,但是您会错过无安装优势,但它比完整的客户端安装要好,这需要比这个小型启动器应用程序更多的更新。 另一种情况是,用户正在浏览您的网站,您发现他遇到麻烦或者想要买东西(或选择任何其他用例)并且您要求他接听来电。这是一个更简单的情况,因为你已经运行了JS。 如上所述,这完全取决于具体的应用和场景。
阿米尔
答案 1 :(得分:3)
让我们首先看一下包含SIP和突破到PSTN的语音环境架构中的元素。
这可以通过以下一个或两个来实现:
现在,一个发往PSTN的SIP用户的出站呼叫将到达软交换机,它将通过SIP中继或PSTN GW将其路由出去。对于来自PSTN的入站呼叫,它将通过SIP中继或PSTN GW进入,软交换机将其路由到您的用户。您的用户可以是标准的注册SIP用户,也可以是webRTC用户。无论哪种方式,呼叫都可以路由到他。
在您的示例中:
第一部分:::您需要通过SIP中继或ISDN / GSM /模拟连接将SIP服务器/软交换连接到您的提供商。对于SIP中继,提供商将为您提供其范围内的DID号码,并将其映射到您的SIP中继。对该号码的任何呼叫都将沿着SIP干线向SIP服务器发送。一旦它到达您的SIP服务器,您就可以轻松地将其发送给任何SIP或webRTC用户。您的SIP服务器可以很容易地成为Asterisk框,运行这些模块:
第二部分::: Twilio通过SS7或SIP与电信公司有自己的互连,或者他们与电信公司合作提供突破。
答案 2 :(得分:1)
对于SIP代理(无论是VOIP电话还是带有SIP Websockets的WebRTC)之间的相互通信,我们需要一个PSTN网关,它主要由3个组件MGC(媒体网关控制器)控制,SGW(信令网关)转换信号ISUP从PSTN到SIP,MGW(媒体网关控制器),用于将媒体从G711 / G729转换为Opus / vp8。
对于号码转换,电信服务提供商维护用于将sipuri映射到电话号码的ENUM基础。如果您是OTT玩家,您应该进行一次验证/输入以存储映射值。
我不能评论twilio的过程,因为我不知道他们做了什么,但架构指南使用网关在IP世界和GSM / UMTS / PSTN世界之间进行互连。
答案 3 :(得分:0)
您可以使用plivo web SDK开发您的应用。这样您就不必担心电信提供商或服务器。点击此处https://plivo.com/docs/sdk/web/