WindowsのLinphoneでDTLSの利用を試す(ただし上手くいかず)

引き続きLinphoneの暗号化通信について。前回、WindowsのLinphoneでZRTPは使えるようになったけど、DTLSは使えなかったのでいろいろ試してみた。結果的には失敗したけど、メモっておく。

スポンサーリンク

まず、そもそもLinphoneコンパイル時にDTLSを有効にするためのオプションが失敗するので、それを何とかするためにPolarSSLの再コンパイルを試してみた。いろいろ調べた結果、ここを参考にしてPolarSSLのコードをゲットできたが、コンパイルが通らない。ちなみにコードは以下のGitコマンドで取得した。

git clone git://git.linphone.org/polarssl -b linphone-1.4

コンパイルのエラーは2か所、どちらも同じマクロ関連。どうやらWindowsのバージョンを管理しているあたりで起きていたので、今回はもうソースを直接弄って強制的にWindowsのデスクトップ用コンパイルが前提になるように修正した。具体的には、WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)を通らないようにコメントアウトしている。


net.c:
#if defined(WINAPI_FAMILY_PARTITION) && defined(WINAPI_PARTITION_APP)/* && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)*/


timing.c:
#define BUILD_FOR_WINDOWS_DESKTOP 1
/*
#if defined(__MINGW32__) || !defined(WINAPI_FAMILY_PARTITION) || !defined(WINAPI_PARTITION_DESKTOP) || WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define BUILD_FOR_WINDOWS_DESKTOP 1
#else
#include #endif
*/

そこまで進めたら、今度はリンカのエラー。Winsock周りのエラーだったので、polarssl/libraryのMakeFileのLDFLAGに以下のコマンドを指定した。


LDFLAGS = -lwsock32 -lws2_32

ここまでやってようやくPolarSSLのコンパイルが通ったので、make;make installした後にLinphoneのConfigureを指定、そちらも無事にコンパイルは出来た。


./configure --prefix=/usr --enable-shared --disable-static --enable-zrtp --enable-dtls

これで、LinphoneのオプションのMedia encryption typeでDTLSを選択できるようになった。・・・ただ、実際にDTLSを使って通話しようとすると落ちる。しかも、普通にTLSの通話や登録も落ちるようになってしまい、どうしようもないのであきらめることに。ということで、残念ながらPolarSSLはもともとLinphoneに入っていたものを使うように戻したのでした。

スポンサーリンク


スポンサーリンク

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です