2

モバイル デバイス用の voip アプリを作成するのは初めてです。現在、アスタリスクサーバーをセットアップしており、iPhone voip アプリと android voip アプリも用意しています。iPhone と Android の両方で、sip ライブラリとして linphone コア ライブラリを使用しています。

現在、正常に電話をかけることができます。時々、音声の「パチパチ」というような通話品質の問題が発生したり、人の文章の一部が途切れたりすることがあります。そのため、パフォーマンスの向上に努めています。

コーデックを調査するのはこれが初めてなので、実際に使用されているコーデックを特定しようとしています。だから私の質問は:

コーデックが実際に採用されるのはいつですか? 電話はコーデックを使用して、アップロードする音声を圧縮し、着信音声を解凍しますか? それとも、アスタリスクサーバーで何かが起こりますか? または両方?

この質問に対する答えを見つけることができませんでした。linphone コマンド getAudioCodecs() を実行すると、使用可能なコーデックのリストが表示されますが、特定の通話で実際に使用されているコーデックのリストは表示されません。たとえば、呼び出しの途中で関数 getAudioCodecs() の var_dump を次に示します。

08-13 08:39:49.787: I/System.out(16358): codec:SILK 16000
08-13 08:39:49.787: I/System.out(16358): codec:speex 16000
08-13 08:39:49.787: I/System.out(16358): codec:speex 8000
08-13 08:39:49.787: I/System.out(16358): codec:PCMU 8000
08-13 08:39:49.787: I/System.out(16358): codec:PCMA 8000
08-13 08:39:49.797: I/System.out(16358): codec:SILK 24000
08-13 08:39:49.797: I/System.out(16358): codec:SILK 12000
08-13 08:39:49.797: I/System.out(16358): codec:SILK 8000
08-13 08:39:49.797: I/System.out(16358): codec:speex 32000
08-13 08:39:49.797: I/System.out(16358): codec:AMR 8000
08-13 08:39:49.797: I/System.out(16358): codec:iLBC 8000
08-13 08:39:49.797: I/System.out(16358): codec:L16 44100
08-13 08:39:49.797: I/System.out(16358): codec:L16 44100
08-13 08:39:49.807: I/System.out(16358): codec:G722 8000
08-13 08:39:49.817: I/System.out(16358): codec:GSM 8000

これは多くのコーデックです...では、どのコーデックが使用されているかをどのように知るのでしょうか?

私のアスタリスク サーバーに関しては、私の sip.conf には各ユーザーに対して次の行があります。

allow=ulaw
allow=gsm

つまり、GSM を使用しているということですか? GSM は getAudioCodecs の var_dump と sip.conf の両方に表示される唯一のコーデックなので?

役立つ場合は、linphone sip ライブラリのドキュメントを次に示します。 http://www.linphone.org/docs/liblinphone-javadoc/

追加情報

OK、さらに興味深いものをいくつか見つけました。このコードを Android アプリに書きました。

//mLC is the currently active LinphoneCore object when receiving a call
LinphoneCallParams lcp = mLc.getCurrentCall().getCurrentParamsCopy();
PayloadType pt = lcp.getUsedAudioCodec();
String mime = pt.getMime();  // the mime value is PCMU

現在、変数 mime が値「PCMU」を保持していることに気付きました。Google 検索を行ったところ、G.711 に関連付けられていることがわかりました。

AndroidアプリではG.711コーデックだと思いますか? もしそうなら、sip.conf で G711 について触れていないのに、どうして G711 が許可されるのでしょうか?

4

1 に答える 1