RTP Real-time Transport Protocol 实时传输入协议,使用 udp 做为载体。
SIP Session Initiation Protocol 会话初始化协议,加入,查询,注册,等功能。
VOIP Voice over Internet Protocol 网络电话。
VOIP 主要使用以上2种技术,考虑到实际的网络拓扑。还需要有 NAT 穿透功能,如果是直播还要有 P2P 功能。
windows SIP 服务器软件 及 客户软件
https://www.myvoipapp.com/download/index.html
miniSIPServer (stable, V34)
miniSIPPhone V7.2
安装上以后,自带3个帐户。 100 101 102 密码和用户名一样。
ubuntu 上的软件是 PJSIP 需要 SDL ffmpeg 等依赖自行安装
https://www.pjsip.org/release/2.8/pjproject-2.8.tar.bz2
./configure
make
sudo make install
编译后在 这里生成 测试程序。
pjsip-apps/bin
在 SIP 中注册
./pjsua-x86_64-unknown-linux-gnu --id sip:101@localhost.com --registrar sip:192.168.1.121
--realm "*" --username 101 --password 101
然后,可以愉快的打电话了。
Wireshark 输入 sip 查看包
PJSIP 这个开源项目,功能丰富,代码文档好,代码规范,大而全,支持众多平台 win linux 安卓 ce IOS。
这也是他的缺点,复杂 不太容易看懂。
配合 Wireshark 进行学习研究。
可以看到这里有2个 RTP 通道。 一个录音,一个放音。
对方端口 20002 本地端口 4000