2009-05-05 25 views
1

私たちはSIPソフトフォンに取り組んでいます。しかし、通常のSIP電話(ソフトウェアまたはハードウェア)からアプリに電話するときは、すべて正常に機能します。アプリを使用して1つの電話から別の電話に電話をかけたときだけです。ここでは、RILオーディオを初期化するために使用するコードは次のとおりです。スマートフォンでRIL Audioを使用したオーディオフィードバック

public static void InitRILAudio() 
    { 
     IntPtr res; 
     RILRESULTCALLBACK result = new RILRESULTCALLBACK(f_result); 
     RILNOTIFYCALLBACK notify = new RILNOTIFYCALLBACK(f_notify); 

     res = RIL_Initialize(1, result, notify, (0x00010000 | 0x00020000 | 0x00080000), 0, out hRil); 

     if (res != IntPtr.Zero) 
      return; 

     RILAUDIODEVICEINFO audioDeviceInfo = new RILAUDIODEVICEINFO(); 
     audioDeviceInfo.cbSize = 16; 
     audioDeviceInfo.dwParams = 0x00000003;  //RIL_PARAM_ADI_ALL; 
     audioDeviceInfo.dwRxDevice = 0x00000001; //RIL_AUDIO_HANDSET; 
     audioDeviceInfo.dwTxDevice = 0x00000001; //RIL_AUDIO_HANDSET; 

     res = RIL_SetAudioDevices(hRil, audioDeviceInfo); 
    } 

私たちは、SIPスタックのためSipEk(http://voipengine.googlepages.com/sipeksdk)を使用しています。基本的には、SDKのコールバックデリゲートをオーディオ用に使用しています。他の誰かがこのようなオーディオフィードバックループで問題を経験しましたか? RIL AudioまたはSipEkのいずれか?助言がありますか?

ありがとうございます!

答えて

1

フィードバックは、スピーカーフォンとして機能しているかどうかに応じて、エコーキャンセル(ラインおよび/またはアコースティック)を使用していないことを意味します。そうであれば、システムの遅延(ジッタバッファ、ネットワーク、 /デコードなど)は、エコーキャンセラーが処理できるよりも大きいです。間違った場所でのゲイン/クリッピングが過度になると、エコーキャンセラが無効になります(ノンリニアエフェクトが気に入らない)。

他のレイヤーにオーディオをダンプしているような音です。 SipEkはpjsipの単なるラッパーですが、pjmediaではなく、Microsoft RIL/etcのものを通してオーディオをやっていると仮定します。オーディオのパスを十分に理解しておく必要があります。たとえば、サンプリングされたもの、アコースティック/ラインのエコーキャンセル、エコーテール、エンコードとパケット化、受信方法、ジッタバッファリング、損失隠され、デコードされ、再生される。

関連する問題