我一直在做一个c#的软电话项目,并且一直在使用Ozeki VoIP SDK。
到目前为止,我已经成功地让软电话注册和进行出站呼叫。但是,我听不到被叫方的声音,但他们能听到我的声音。(我是软电话,被叫方是思科SPA504G电话)
使用其他应用程序(如X-Lite)时,2路音频可以正常工作
SIP跟踪显示我正在发送任何RTP包,但没有接收到任何RTP包,这是我在代码中做错了什么(见下文)还是PBX端的问题。(Thirdlane 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);
}发布于 2019-11-04 22:17:29
在另一个PBX上尝试了另一个扩展后,我发现这个问题是由于没有设置额外的设置"nat“引起的。一旦我将其设置为"yes“值,我就能够在双方上获得双向音频。
这是一个Thridlane用户交换机,所以设置在“选定租户用户交换机”=>“分机和联系人”=>“用户分机”=> (我使用的分机号码) =>电话中。
https://stackoverflow.com/questions/58662203
复制相似问题