公司准备做一个android上的语音对讲应用,要支持多方通话,最近看了下sip方面的。服务端选了Asterisk,用Asterisk-java(ami)做通讯服务器,Android客户端与通讯服务器通信,通讯服务器在向Asterisk发指令,不知道可行不,存在哪些问题,或者有更好的方案,请各位高手指点下,小弟谢谢了~

解决方案 »

  1.   

    整个cs架构不是太清楚,不过我做过android终端sip应用,主要负责sip报文组装解析,当时学习了一下开源的sipdroid源码。
    sip这玩意,我们一开始没用,用自己定义的xml协议,后来才换用sip协议的,主要用于建立用户呼叫连接。
    用户上线之后,我们的方案是,举例(单呼),a呼叫b,通过android终端采集到用户原始pcm数据,通过jni调用amr编码so库文件对pcm数据进行压缩编码,然后将数据打成rtp数据包(ps,20毫秒为一帧,6帧为一个rtp包),网络层通过udp将rtp数据发给b.....b接收到数据之后然后再从rtp包中提取出amr数据,然后再通过audiotrack播放。
      

  2.   

    AnyChat音视频互动开发方案不错,支持多个平台的部署,有意思可以百度一下吧