我想尝试在我的Xamarin应用程序(Android和iOS)中实现非常简单的VoIP电话功能。非常简单,我的意思是没有用户字典,没有“保持”,没有地址(如在SIP上)。
一个基本场景是:该应用程序有“呼叫支持”按钮。应用程序知道另一方的IP,所以只需尝试与已知IP的UDP连接,如果有人按“接受”按钮,则可以互相通话,直到有人点击“挂断”按钮。
现在,我对整个VoIP都是全新的,所以基本上我的问题是,我应该寻找什么?我是否需要“SIP堆栈”和“RTP堆栈”(不管是什么,我在问这个问题之前用jogle搜索了一下:)
或者我可以用更简单的方式做到这一点吗?例如,我找到了这个Xamarin论坛页面: http://forums.xamarin.com/discussion/2526/udpclient-in-background - 使用IAX2的人,我假设是这样的:http://www.voip-info.org/wiki/view/IAXClient,但C#wrapper上的链接现在似乎无效:/
答案 0 :(得分:0)
我倾向于顺应潮流。这里简单地使用SIP - VoIP在理论上相对简单,但在细节上有很多复杂性。而且,虽然确实说SIP已经发展成为一个大型复杂的野兽,但是使用许多其他人正在使用的标准方法意味着你不仅可以获得其他人为你做过低水平工作的好处,而且还可以利用大型开发人员和用户社区。 p>
您还可能会发现,随着时间的推移,您的简单用例会受到常见功能蠕变或增强请求的影响(例如,不同支持团队的不同帮助台或用户移动到不同区域时)。如果您的实现是基于标准SIP方法之一,那么处理这些新要求可能会更容易。
对于Android,您可以使用内置的SIP API,如果您的市场/手机支持,并且您不需要支持旧版Android。无论哪种方式,最近有很多文档记录的Andorid和iOS的SIP库。