正好我也在做这方面的项目,前期调研花了不少心血,java SIP相关资料确实非常少,C++,JS的居多。我整理了下:
找到一个封装好的SDK,JavaSIPSDK 但是这个要收费。你可以先试用,熟悉下流程 mjsip 实现了完整的UA,能跑起来,但源码看着有点乱 peers 这个也是实现了完整的UA,能跑起来 jsip 这个java官方实现(已从jdk移除了),但是只实现了sip协议、rtp、语音编码需要自己开发,才能实现一个完整打电话的功能。上面这些项目,历史久远了,都是10年前的代码,早就不维护了。当时还调研了jssip,JavaScript 实现的,活跃度较高, 需要依赖webrtc。因为要在后台跑要用node.js,jssip又不支持nodejs,后面用node-webrtc魔改了一版,可以实现打电话。
mjsip和peers最大的问题是不能并发控制打电话,改起来又麻烦,最终我还是选择了用jsip实现,其中rtp和语音编码的实现,大量参考了mjsip和peers的源码。
另外建议用freeswitch搭一个sip server 方便调试