基于 SIP 的应用程序方案如何工作?

How does a SIP based app scheme work?

这是一个关于 SIP 协议如何工作的抽象问题。假设我有一个 SIP 服务器 (Asterisk/Yate)。我有两个 Android 设备希望相互连接以进行音频通话。 (我正在寻找纯 VoIP 电话,不需要电话号码或运营商信息)。

这将如何运作?数据包必须通过服务器吗?或者连接是否发生在端点之间。如果数据包必须经过服务器,SIP服务器是否也提供配置文件,或者配置文件是否必须由第三方创建?

我需要了解该方案的工作原理才能开始计划构建系统。

我已经阅读了很多技术文档,但是none显示了系统的抽象。如果能提供资源给我就好了

谢谢

由于您的设备不知道彼此的位置(ip/port),他们调用 sip 服务器或代理。

Sip 服务器匹配拨号规则并向另一端发送更改(服务器)或未更改(代理)的请求。

在 INVITE 请求中,每个对等方发送 address/port 和有关媒体流 RTP 的信息

如果该信息不变(代理),他们可以看到彼此的 rtp 信息并直接发送 rtp 数据包。

在呼叫桥接后还有可能的另一个 INVITE,调用 re-INVITE,其中包含有关 rtp 的新流的信息(可以在其他 ip/port 或视频上播放声音)

sip standart 中没有所谓的配置文件,抱歉。

无论如何,如果您对 sip 服务器的实际经验有限,开始规划 voip 系统是个坏主意。

youtube 上有很多文章(包括维基百科)、主题为 "how sip works" 的视频,无法将所有内容都放在一个答案中。