Windows 版本的sip phone 客户端应该是彻底的稳态了,美国那边已经放出测试3个星期,还没有收到任何问题的反馈.看来ortp的作者写出的mediasteamer,对rtp的处理确实是最优的.到此为止 osip + exOsip + ortp + mediastreamer2 + ppSip 的组合,终于成为了一个稳定而强大的版本.
本来语音处理的部分(也就是录音后用rtp发送和收到rtp后播放,用的是waveInXXX 和 waveOutXXX 系列API),以前认为很稳定了,在处理sip 对 sip,还有sip呼叫PSTN的时候都没有问题,但是在pstn呼叫sip的时候却有问题,被呼叫的sip端播放语音的时候,偶尔会断断续续,问题的原因能找到,那就是在收到的rtp语音包里面有一些包是cn(comfort noise)包,就是这些包造成了断续这个问题,分析了各种可能性,甚至使用了DirectSound来处理,竟然都解决不了这个问题,无奈之下又想起了mediastramer,并且仔细看的时候,发现它的作者竟然就是ortp的作者,本来还没有信心的,这下有了信心,花了几天的时间了解了mediastreamer的架构,然后集成到ppsip中,竟然一次OK,在Comfort Noise的问题折磨我几个月之后,竟然柳暗花明又一村,如此轻易的解决了这个问题.
看mediastramer2另一个大的收获是,mediastramer2的架构竟然非常的好,采用的是类似于directdraw的架构,也就是graph,以前看directdraw的时候还没有大懂,现在竟然一下子懂了,嘿嘿,
下面的任务就是wince版本了