我一直在寻找一种方法来设置Android SIP堆栈,以便能够以ad-hoc方式在同一网络上的两台设备之间建立SIP呼叫。即没有注册到SIP服务器。
由于SIP演示包括服务器注册,我无法使其正常工作,如果没有此步骤,我无法拨打电话或接听电话。
我甚至不确定这是否应该可行。我能找到的这一点很少提及是冲突的(有人说它可以用特定的设置来完成,但是他们没有说明是什么,有些人说Android SIP API并不适用于此)。
我想知道是否有人有这个工作或有任何关于如何为此配置API的线索,因为我想在查看第三方之前使用内置的SIP API。
我正在开发的应用程序是一个内部应用程序,它将始终在同一设备上运行,因此所有设备上都没有SIP API的事实对我来说不是问题。
答案 0 :(得分:5)
我一直陷入同样的问题。
如果你可以在没有android sip api的情况下制作它,你可以查看rtp api,它为你提供了一些较低级别的工具来制作P2P VOIP应用程序而无需服务器。
要支持音频会议和类似用途,您需要 将两个类实例化为流的端点:
AudioStream指定远程端点并由网络组成 映射和配置的AudioCodec。 AudioGroup代表本地 一个或多个AudioStream的端点。 AudioGroup混合了所有 AudioStreams并可选择与设备扬声器和 麦克风同时。
对应的是你必须编写自己的设备发现协议,以便知道audiostream peer使用的端口,如answer
中所述。如果你打算进行一对一的谈话,问题就不那么难了,但如果你想进行一对一的谈话,那就有点棘手了。
对于一对一会话,会议主持人必须为他想要呼叫的每个远程设备实现n audiostream。每个远程对等体只有一个音频流链接到主机音频流之一。
答案 1 :(得分:4)
您可以使用开源的CSipSimple执行此操作:http://code.google.com/p/csipsimple/
您设置本地帐户,注册给自己而不是服务器,然后使用TXT模式拨打电话并拨打remote_account_name @ remote_ip_address。
答案 2 :(得分:-1)
SIP对等就像是用于配置SIP手机的分机号码。请查找创建sip peer的详细信息。我使用64位64位并安装了星号11 您可以使用星号服务器创建SIP对等体。 转到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