Linphone for Mac OS X

このページはLinphoneを Mac OS Xで動かすためのプロジェクトのページです。私が書いたコー ドはすべてBSDライセンスを適用するつもりなのGPLおよびコマーシャ ルライセンスでも利用可能になります。Linphoneの本家の開発のサイトは こちら

LinphoneはGPLとコマーシャルライセンスのオープンソースなので 商用のアプリケーションでソースを公開できないプロジェクトで使 用する場合は、コマーシャルライセンスを契約する必要があります。

実はmacsnd.cのコピーレフトしてくれとプロジェクトメンバーに連 絡を受けたのだが、コピーレフトするためには契約書が必要になり、 面倒だったのでBSDライセンスとしてコピーレフトにせずに組み込ん でもらった。そもそも趣味のプログラミングは自由にコードを書い ているのに、それに契約が必要になるのは違和感がある。

ソースを書いたのはバージョン1.7の頃だったが2.0以降のソースツ リーにマージされている。どうにか2.0系のlinphonecもビルドでき ているのだが、いろいろ細かい設定が必要になっていて、少し手間 を省けるように、本家のメンバーと調整したいと思っている。

/usr/local/libなどのシステムのパスにライブラリをコピーしない で利用可能な、アプリケーションや開発環境にしたい。osipの作者が Linphoneにも関わっていて、Mac関係のコードをいじっているのだ が、ちょっと意見が合わないが、なんらか作戦を考えたい。

CoreAudioのコードを書いてから知ったのだが元々Linphoneは PortAudioというドラ イバを使えばMacOS Xでも使えていたようだ。私はPortAudio版は 試していない。

もう一つ後から知ったのだが、LinphoneのビデオサポートにQuickTime のビデオキャプチャーコードが含まれている。 ビデオサポートのためにはFFmpegSDLが必要になりこちらも 試していない。

LinphoneのボイスのCODECはソースに組み込まれているPCMA/PCMUと Speexが必須で GSM がオプションで組み込める。メーリングリストに昔 iLBCをサポートする コードが上がっていたが現在はそのコードは含まれていない。おそらく Linphoneはコマーシャルでの利用もあるので、ライセンス上外してしま ったのかもしれない。 ここにフリー系のCODECのライセンス関係の説明がある。

■ .linphonercの設定

[sip]
default_proxy=0

[proxy_0]
reg_proxy=sip:sip.example.com
reg_identity=sip:foo@sip.example.com
reg_expires=600
reg_sendregister=1
publish=0

■ 認証が必要な場合には下記を追加

[auth_info_0]
username=foo
passwd=hogehoge
realm="sip.example.com"

MacOS X 10.5以降でサポートされている、Audio Queueサービスを使った mediastremer2のコードを書いてみた。(2008/08/28)
以前書いたCore AudioのAudio Unitを使ったコードは試行錯誤の上にで きたコードで汚い上に環境依存が激しいよくないコードになってしまっ ているようなので、いつか直したいと思ったが、いつになることやらです。 すんません。


■ 動作確認のためにSIPパケットのキャプチャ方法

% tcpdump -x -s 1024 -i en1 -nX '(udp) and (port 5060)'

テストのために調べたSIP関係の情報はこちら

(c) 2007-2008 Hiroki Mori