Sipdroid中通话是独立的一块,最前面一块是客户端和SIP服务器的通信,用了N多N多的类和包其实就是为了更好的跟SIP服务器通信,当你发送sip通话成功后,会返回给你message,告诉你通话成功,好像在UserAgnet的接口方法中,然后在执行lunchMediaApplication();在通话的过程中是直接的通过数据报形式进行通话,服务器不需要进行任何操作,只需要提供一个数据报端口,让一个发送PCMU音频数据,另一个接受就行了,而且PCMU的编码也没有用到JNI那块,在SIPDROID是直接通过JAVA层来实现的,我目前正在一直Amr的编解码库,解码库弄出来了,但是编码库遇到了很大的麻烦。
看Sipdroid其实一点也不复杂,咱们完全没必要照搬Sip协议,完全可以制定自己的协议,只要服务器那边做好中专处理就行了,关键是服务器是怎么找手机的那块的才是最核心,那个不看你这个问题,我都差点忘了,明天研究下