android - 如何使用 RTP 发送和接收语音流

标签 android sip voip rtp jain-sip

我是使用 RTP 进行 SIP 通话的新手,现在我正在尝试发送和接收 使用 RTP 的语音流进行 sip 调用。我完成了连接 两个模拟器,能够使用 jain sip 发送 INVITE 和 INVITE-ACK。

收到 Ack 后,我想启动 RTP 进行媒体流传输,我使用 RtpPacket 发送和接收函数

我使用 RtpFunction 发送带有所有 RTP header 的媒体,如下所示:

byte Version;
boolean Padding;
boolean Extension;
byte CC;
boolean Marker;
byte PayloadType;
short SequenceNumber;
int TimeStamp;

请提供一些想法和我可以找到答案的实际链接。

最佳答案

这可以通过更简单的方式实现

AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.setMode(AudioManager.MODE_IN_COMMUNICATION);

audioGroup = new AudioGroup();
audioGroup.setMode(AudioGroup.MODE_ECHO_SUPPRESSION);

audioStream = new AudioStream(InetAddress.getByAddress(getLocalIPAddress()));
audioStream.setCodec(AudioCodec.PCMU);
audioStream.setMode(RtpStream.MODE_NORMAL);
audioStream.associate(InetAddress.getByName(SipStackAndroid.getRemoteIp()), REMOTE_PORT);
audioStream.join(audioGroup);

关于android - 如何使用 RTP 发送和接收语音流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12635875/

相关文章:

android - 如何将操作栏主页图标移动到右侧?

使用 SIPDROID 的 Android P2P 视频聊天

android - 是否可以将 GSM 调用重定向/转发到 VOIP?

android - Android apk 构建的条件资源包含/排除

java - 拍照和使用图像 - 内存不足错误

java - 这个堆栈溢出的原因是什么?

c - sip 解析和库?

ios - 如何获取 pjsip iOS API 调用状态,如忙、响铃或不可用

ios - VoIP 和 Callkit 框架音频问题

ios - 如何在 Hybrid iOS 应用程序中实现 WebRTC?