c# - Ozeki VoIP 没有接收到音频
问题描述
我一直在用 c# 开发一个 Softphone 项目,并且一直在使用 Ozeki VoIP SDK。
到目前为止,我已经成功注册了软电话并拨打了外线电话。但是,我听不到被叫方的声音,但他们可以听到我的声音。(我是软电话,被叫方是 Cisco SPA504G 电话)
使用其他应用程序(例如 X-Lite)时,2 路音频很好
SIP 跟踪显示我正在发送但未接收任何 RTP 包,这是我在代码中做错了什么(见下文)还是 PBX 端的问题。(三线 PBX)
void CreateCall()
{
string numberToDial = txtNum.Text;
logOutput("Call " + numberToDial);
txtLog.ScrollToCaret();
call = softphone.CreateCallObject(phoneLine, numberToDial);
call.CallStateChanged += call_CallStateChanged;
call.Start();
}
private void SetupDevices()
{
connector.Connect(microphone, mediaSender);
connector.Connect(mediaReceiver, speaker);
mediaSender.AttachToCall(call);
mediaReceiver.AttachToCall(call);
microphone.Start();
speaker.Start();
}
void call_CallStateChanged(object sender, CallStateChangedArgs e)
{
if (e.State == CallState.Answered)
{
WireUpCallEvents();
}
if (e.State == CallState.Completed)
{
WireDownCallEvents();
}
logOutput("Call state: " + e.State);
}
private void WireUpCallEvents()
{
call.CallStateChanged += (call_CallStateChanged);
SetupDevices();
}
private void WireDownCallEvents()
{
call.CallStateChanged -= (call_CallStateChanged);
}
解决方案
在另一个 PBX 上尝试了另一个扩展后,我发现问题是由未设置附加设置“nat”引起的。一旦我将它设置为“是”,我就能够在双方上获得 2 路音频。
这是一个 Thridlane PBX,所以设置在“选定的租户 PBX”=>“分机和联系人”=>“用户分机”=>(我使用的分机号码)=>电话。
推荐阅读
- python - 用 return 语句替换 print()
- r - 我必须通过 r 获得素数,但我有一个错误
- python - 如何从 Gtk.Calendar 月份创建一个周历并在 python 中显示每一天的笔记
- javascript - 过滤时Vue JS计算属性冻结
- angular - 设置角材料表上的最小行数
- android - 我的初始屏幕上没有出现徽标,也没有为 XML 显示预览
- visual-studio-code - 摆脱 Visual Studio 代码寄生虫工作区
- python - 如何删除 Tkinter Python 应用程序中的视频?
- java - 如何从输入中删除arraylist的元素
- sql - 关于存储过程更新行并删除行总值的问题