7

我一直在寻找一种方法来设置 Android SIP 堆栈,以便能够以 ad-hoc 方式在同一网络上的两台设备之间建立 SIP 呼叫。即无需注册到 SIP 服务器。

我无法让它工作,因为 SIP 演示包含服务器注册,如果没有这一步,我无法让它拨打或接听电话。

我什至不确定这是否应该是可能的。我能找到的很少提及这一点是相互矛盾的(有人说它可以通过特定的设置来完成,他们没有说是什么,还有人说 Android SIP API 不适合这个)。

我想知道是否有人让这个工作或有任何线索来说明如何为此配置 API,因为我想在查看第三方 API 之前使用内置的 SIP API。

我正在开发的应用程序是一个内部应用程序,它将始终在相同的设备上运行,因此并非所有设备上都存在 SIP API 这一事实对我来说不是问题。

4

3 回答 3

6

我一直被困在同样的问题上。

如果您可以在没有 android sip api 的情况下实现它,您可以查看rtp api,它为您提供了一些较低级别的工具来制作 P2P VOIP 应用程序而无需服务器。

要支持音频会议和类似用途,您需要将两个类实例化为流的端点:

AudioStream 指定一个远程端点,由网络映射和配置的 AudioCodec 组成。AudioGroup 代表一个或多个 AudioStreams 的本地端点。AudioGroup 混合了所有的 AudioStreams,并且可以选择同时与设备扬声器和麦克风进行交互。

对应的是,您必须编写自己的设备发现协议才能知道音频流对等方使用的端口,如本答案中所述

如果您只打算进行一对一的对话,问题并不难,但如果您想进行一对一的对话,问题就有点棘手了。

对于一对 n 对话​​,会议主持人必须为他想要呼叫的每个远程设备实例化 n 个音频流。每个远程对等点只有一个音频流链接到一个主机音频流。

于 2014-12-31T10:58:43.473 回答
5

您可以使用开源的 CSipSimple 执行此操作:http ://code.google.com/p/csipsimple/

您设置本地帐户,注册到自己而不是服务器,然后使用 TXT 模式拨打电话并拨打 remote_account_name@remote_ip_address。

于 2013-05-28T20:12:52.900 回答
-1

sip peer 就像一个分机号码,用于在 sip phone 中配置。请查找创建 sip peer 的详细信息。我正在使用 centos 6.9 64 位并安装了 asterisk 11 您可以使用 asterisk server 创建 sip peer 。转到 vi /etc/asterisk/sip.conf

[1001]
username=1001
secret=123
qualify=yes
type=friend
disallow=all
allow=ulaw,alaw,gsm
host=dynamic

为了更详细和易于理解。请参考以下链接

https://youtu.be/27wm-fu25SM

或者

http://rulariteducation.blogspot.in/2017/07/how-to-add-sip-peer-in-asterisk.html
于 2017-07-26T07:38:37.327 回答