问题标签 [voip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
147 浏览

voip - 需要有关 VOIP 呼叫中继和终止的建议

我正在开展一个项目,我们向最终用户拨打 VOIP 电话,基本上就像 Skype 一样。

问题是,如果必须拨打普通的固定电话,来自 VOIP 的所有呼叫都需要作为 PSTN 终止。在印度环境中,如果通过 VOIP 服务,印度政府不允许呼叫(从移动电话到固定电话/固定电话到固定电话等),呼叫必须在用户端以 PSTN 结束,并且国家法律不允许这样,它只允许来自国外的呼叫以 PSTN 结束,而不是来自国内。

是否有解决此问题的解决方案?这个问题有点难以表达,但如果您有任何疑问,请务必提出。

非常感谢大家的帮助

莫汉

0 投票
2 回答
937 浏览

android - Atom处理器平台推荐Android吗?

我将开发一款具有 Atom 处理器的手持设备。我正在考虑使用 Android 嵌入式操作系统在此设备上运行电信应用程序。我从朋友那里听说,Android 适合无线应用。但我的设备不需要任何无线应用程序。我只需要数据(ping、traceroute...)、IPTV 和 VoIP 应用程序即可在此设备上运行。那么在我的设备上使用 Android 是否可取?

0 投票
3 回答
1362 浏览

c# - 带有可转售 API 的 VOIP 服务?

希望为我的桌面应用程序添加拨号功能。要求:

  1. API/SDK 允许无缝集成到 C#。应用程序用户不知道 VOIP 提供商是谁。
  2. 允许转售许可证。我们将其作为套餐的一部分向我们的最终用户收费

有符合这个要求的套餐吗?

0 投票
1 回答
851 浏览

sockets - sendng RTP 的 udp 套接字选项

我在 Windows 平台上打开套接字以发送 RTP 语音数据包。该应用程序是软电话。应该在此套接字上设置哪些首选选项。

0 投票
2 回答
5308 浏览

voip - 语音聊天应用程序(客户端/服务器)的结构?

我需要专家意见,如果我的问题本身是一个令人困惑的问题,我很抱歉。

我正在阅读有关 VOIP 应用程序(客户端/服务器)的结构。大多数情况下,建议将 UDP 用于语音流。我还检查了一些语音聊天应用程序,如 paltalk 和 inspeak,他们的网站提到他们使用 udp 语音流,这似乎不正确,原因如下。

我检查了 paltalk 和 inspeak 使用的流量/端口。他们打开了 UDP 和 TCP 端口,使用数据包嗅探器我可以看到没有太多的 UDP 通信,但主要是 TCP 通信正在进行。

另外据我所知,在 UDP 协议中,服务器无法将数据发送到 NAT(DSL 路由器)后面的客户端。并且“UDP Braodcast”不是基于“互联网”的语音聊天应用程序的选项。这就是为什么雅虎在他们的文档中提到,如果无法进行 udp 通信,雅虎信使会切换到 tcp。

所以我的问题是......

  1. 我在上述陈述中是否理解错误?

  2. 如果 UDP 不可行,那么那些聊天应用程序使用 TCP 流进行语音?

  3. 由于我经历过 TCP 语音流会产生延迟,没有语音中断但语音延迟,那么语音聊天服务器/客户端通信的最佳结构应该是什么?

到目前为止,我认为,如果客户端将数据作为 udp 数据包发送到服务器并且服务器通过 TCP 流将数据包分发给客户端,这是一个合适的解决方案吗?我的意思是这就是商业语音聊天应用程序的作用吗?

感谢您的回答将帮助我和许多其他程序员。

杰夫

0 投票
2 回答
170 浏览

client - 是否有可以修改的具有群组即时消息和语音功能的基于 Flash 的 Web 客户端?

我正在寻找一个基于 Flash 的 Web 客户端,它具有我可以修改的群组即时消息和语音功能。有谁知道任何开源或专有解决方案?

0 投票
1 回答
5205 浏览

delphi - Directsound - 播放充满来自网络的数据的流缓冲区时出现问题!为 Delphi 使用移植的 DirectX 标头

再次回到另一个 DirectSound 问题,这个关于 DirectSound 缓冲区可以使用的方式:

我有大约 30 毫秒间隔通过网络传入的数据包,其中包含由应用程序的其他部分解码为原始 wav 数据的音频数据。

当 Indata 事件由这些其他代码段触发时,我基本上被放入一个以音频数据作为参数的过程中。

DSCurrentBuffer 初始化如下:

我将此数据写入我的辅助缓冲区,如下所示:

输入数据在这里转换为音频数据,与问题本身无关。

以上是我在 OnAudioData 事件中运行的代码(由我们的专有组件定义,该组件解码使用我们的协议发送的消息。)基本上,只要我收到带有音频数据的 UDP 消息,就会运行该代码。

写入缓冲区后,一旦缓冲区中有足够的数据,我将执行以下操作以开始播放: 顺便说一下,BufferSize 目前设置为相当于 1 秒。

到目前为止一切都很好,虽然音频播放有点断断续续。不幸的是,这段代码还不够。

我还需要停止播放并等待缓冲区在数据用完时再次填满。这是我遇到问题的地方。

基本上,我需要能够找出音频播放何时到达我上次写入缓冲区的位置,并在它到达时停止它。否则,我收到的音频数据的任何延迟都会弄乱音频,当然。不幸的是,我不能停止写入缓冲区,因为如果我让缓冲区继续播放,它只会播放一秒钟前留下的旧数据(什么是循环的等等。)所以我需要知道 PlayCursorPosition 是否已达到我在缓冲区写入代码中跟踪的 LastWrittenByte 值。

DirectSound Notifications 似乎可以为我做到这一点,但是每次我向它写入数据时停止然后重新启动缓冲区(SetNotificationPositions() 需要停止缓冲区)对播放本身有显着影响,所以音频播放的声音比以前更加破碎。

我将此添加到编写代码的末尾以获取通知。每次我将数据写入缓冲区时,我都希望设置一个新的通知可能不会很好......但是,嘿,我认为尝试一下不会有什么坏处:

NotificationThread 是一个执行 WaitForSingleObject 的线程。CreateEvent 创建一个新的事件句柄并使其成为 WaitForSingleObject 将开始等待它而不是前一个。ReachedLastWrittenByte 是我的应用程序中定义的一个过程。线程启动一个临界区,并在触发通知时调用它。(WaitForSingleObject 的调用超时时间为 20 毫秒,因此我可以在调用 CreateEvent 时更新句柄,当然。)

ReachedLastWrittenByte() 执行以下操作:

当我的通知被触发并且我在我正在使用的辅助缓冲区上调用 Stop 时,音频仍然继续循环主缓冲区中似乎是剩余数据的内容......

即便如此,通知也没有正确触发。如果我停止从发送这些音频消息的其他应用程序广播音频数据,它只会不断循环缓冲区中的剩余部分。所以基本上,不管怎样,它都会超过我设置的最新通知(lastwrittenbyte)。在播放时,它只是偶尔停止,填充缓冲区然后开始播放......并跳过它刚刚缓冲的半秒数据,继续播放缓冲区填充后传入的数据(所以它填满缓冲区,但显然不关心在开始填充新数据之前播放其内容。是的。我也不知道。)

我在这里似乎缺少什么?使用 DirectSound Notificatiosn 找出最近写入的字节何时播放的想法是徒劳的吗?你会认为有一些方法可以使用流缓冲区进行这种缓冲。

0 投票
2 回答
522 浏览

iphone - iPhone 上 3G 上的 VoIP,SDK 有什么变化?

我一直在查看 SDK3.2 以了解在 3G 网络上通过 IP 直接调用的新功能,但我在 API 差异中看不到任何明显的内容。这只是 Apple 在低级私有框架上允许的事情,还是它也反映在公共框架上?如果是这样,哪个框架、类、方法?

谢谢你的帮助

0 投票
1 回答
806 浏览

c# - 语音会议 - 如何让更多人参与对话?

首先,我只是一个业余爱好者,所以如果这是一个愚蠢的问题或者我太天真了,我很抱歉。(这也意味着我买不起昂贵的图书馆)

情况是这样的:我正在 C#.NET 中构建一个简单的语音聊天应用程序(类似于 Ventrilo 或 TeamSpeak,但仅适用于大约 15 或 20 人,并在 100Mbps LAN 上运行)。我有工作服务器(每个客户端的生成线程)和客户端应用程序,使用 UDP 进行连接,使用 DirectSound 来捕获和播放声音。我可以进行“一对一”通话,但我无法弄清楚最重要的事情之一:

我如何在对话中有两个以上的人?

0 投票
1 回答
183 浏览

hardware - 使用 Sailfin 的 VoIP 应用程序

我正在考虑开发在 Sailfin ( https://sailfin.dev.java.net/ ) 上运行的 VoIP 应用程序。

我已启动并运行服务器并安装了示例应用程序。我想要做的是:

在我的 VoIP 应用程序中接收来自我的座机的电话。从应用程序呼叫 PSTN 中的其他号码。

我不确定的部分是固定电话插孔和我的开发盒之间需要什么硬件?

谢谢!