我可以自己为我的VOIP应用程序处理Android碎片吗?

时间:2013-08-17 21:05:52

标签: android voip

我为Android手机构建了一个非常VOIP的应用程序。我所拥有的只是一个文本字段,允许用户输入他们想要呼叫的人的用户名。然后当他们按下通话时,它会唤醒收件人电话并播放铃声。收件人可以接听或拒绝接听电话。

目前,应用程序“几乎”可以在以下设备上正常工作:

  • Galaxy Note 1 with OS 4.0.4
  • GS3,OS 4.2.2和4.3
  • GS2 with OS 4.0.4
  • Nexus 4 with OS 4.2.2

我遇到的一些小问题是一些 GS2手机(GT-S7530M)与某些 GS3手机之间的通话,其中音频非常安静。我不知道为什么会这样,即使我们超出了音量。其他时候,电话中有很多噼啪声,或者你错过了人们的句子。我们确保网络速度始终至少为15mbps下载和1.5mbps上传。

其他所有手机似乎都能正常使用。

我正在使用linphone作为手机的sip库。我使用星号作为电话服务器。我使用GSM作为手机和星号服务器的编解码器。我很确定我没有对我的代码做任何“特殊”的事情。这是一个简单的应用程序,我认为任何有经验的Android开发人员都会发现我的代码非常简单。

我的问题是,假设我纠正了上述目标手机的问题,单个程序员尝试使这个voip应用程序在70%运行OS 4.x +的现代Android手机上运行是否现实?我们假设我希望能在几周内达到70%的目标。

你们中的一些人可能认为我的问题过于宽泛,所以我想明确表示我只是在寻找一个是或否的回答是否真实,以及你回答的原因。

我问的原因是因为我有一个早期的原型,我问过一些陌生人和其他手机,如索尼Xperia ZL,HTC One等......他们似乎有问题让我的应用程序正常工作。他们遇到的问题包括铃声不起作用,或者他们无法接听电话(即使他们成功连接到我的星号服务器),或音频质量非常差。这让我对称为Android Fragmentation的流行问题进行了更多的研究。当我看到那里的所有Android手机时,它吓到了我。 我可以在接下来的两周内自己完成70%的运行OS 4.x的现代Android手机吗?这个我创建的新版本是否会修复注释1,S3,S2和Nexus 4在其他手机上完美配合?

3 个答案:

答案 0 :(得分:2)

  

这是一个非常简单的应用

我渴望能够将自定义VOIP应用程序描述为简单的那一天。它是2013年,我们今天不能说任何程度的准确性。恕我直言,你的应用程序相当复杂。碰巧的是,大多数复杂的位都是你没有编写的开源代码(linphone)和你没有编写的第三方服务器(Asterisk)。

  

这是一个简单的应用程序,我认为任何有经验的Android开发人员都会发现我的代码非常简单

从我所知道的,你所描述的几乎所有症状都可能是linphone的一部分,也可能是Asterisk的一部分。您的代码可能很简单,但您的应用却不是。

  

单个程序员尝试让这个voip应用程序在70%运行OS 4.x +的现代Android手机上运行是否真实?

如果您从等式中删除linphone和Asterisk - 比如说,通过重写您的应用以根据GCM user notification播放铃声 - 您的目标似乎是合理的。

然而,由于您目前构建的应用程序几乎完全是linphone和Asterisk(“任何有经验的Android开发人员会发现我的代码非常简单”),您的成功取决于linphone在Android上的运行情况以及linphone的效果如何-on-Android在与Asterisk通信时起作用。 因此,唯一能够回答这些技术的人就是那些经验丰富的人。您可以尝试询问一些专用的linphone和/或Asterisk资源。或者,您可能会问一些新的StackOverflow问题,以及适合这些技术的标签,并且需要更多关注。

答案 1 :(得分:0)

没有。一些运营商造成了无聊:啜饮敌意或者没有令人敬畏的IPv4口味到IPv6。

答案 2 :(得分:-1)

目前我也在开发Android VoIP客户端。 实际上,除了这种音频处理问题之外,不同硬件和操作系统版本之间没有任何区别。

不幸的是,不同供应商在音频实现方面存在很多不一致之处。我建议你看看一些开源的SIP软电话源代码,如sipdroid,mizudroid和csipsimple。我从sipdroid学到了很多,虽然代码没有很好的评论。准备好以不同方式处理每个设备的许多解决方法。