# LINPHONEユーザーマニュアル

Simon Morlat (simon.morlat@linphone.org) 訳：山口善也(yushiya@anet.ne.jp) 11-13-2001

## はじめに

Linphoneは、シンプルなインターネット電話であり、二者間の通話をインターネットなどのIP網を通じて可能にするものである。Linphoneを起動するには以下のものが必要となる。

- Linux(BSDのような他のUNIXでも起動するだろうが、Linux環境ほど他の環境はテストされていない。)

- gnome1.2以上がインストールされていること。必ずしも起動している必要はない。

- ヘッドホンかスピーカー。

- サウンドカードが正しく設定されていること。

- マイクロフォン

- モデムやイーサネット等を用いた、ネットワーク(インターネット等)への接続。

なお、Linphoneを起動する前にオーディオデバイスを使用するすべてのアプリケーションを終了しておくのがよいだろう。

Linphoneはフリーウェアであり、GNU Public Licenceに従って配布される。

警告 - 当ソフトウェアは保証なしに提供されるものである。詳しくはCOPYINGファイルを参照されたい。なお、Linphoneは暗号化を用いないため、悪意ある人物が容易に音声情報を拾うことができる。つまり、Linphoneは秘密の会話に用いるべきではない。また、Linphoneはルート権限で起動しない推奨する。

## Linphoneの起動

Linphoneは三つの方法で起動できる。

- 通常のアプリケーションとして - Linphoneは、gnomeメニューの中のネットワークサブメニューに現れる。もし、gnomeを起動してないのであれば、例えばターミナルに“linphone”とタイプすることで実行できる。Linphoneが起動していないときは、電話を受けることはできない。

- gnomeアプレットとして - gnomeパネルを右クリックすると、パネルにLinphoneを追加することができる。Linphoneはネットーワークメニューの中にある。ひっそりとパネルの中で起動することで、Linphoneは、たとえウインドウが現れていなくても電話を受けることができる。メインウインドウに表示させたいときには、アプレットをクリックすればよい。電話がかかってきたときには、メインウインドウが表れて、通常通りにベルが鳴っているのが聞こえるだろう。

- ひっそりとデーモンとして - これは、非gnomeユーザーのためのものである。例えばkdeでは、/home/user/.kde2/AutoStartディレクトリに、ログイン時に起動したいアプリケーションのリンクを貼る。したがって、上述のディレクトリにファイルマネージャーで移動し、右クリックで現れるアプレットから、「リンクの追加」を実行すればよい。なお、起動するコマンドは、“ linphone -deamon”である。この場合、Linphoneのインターフェースを見ることはないが、表示させたいときにはターミナル等からLinphoneを起動させるのと同様にタイプすればよい。

## 電話をかける

### 基本的な原則

「sip:ユーザー名@ホスト名」のようなSIP URLによって区別される。SIP URLは、頭の「sip:」を除けば非常にe-mailアドレスと似ている。

ユーザー名は、UNIXマシンのログインネームのようなもので、ホスト名はユーザーが接続するマシンの名前やIPアドレスである。

なお、SIPはシンプルに設計された新しい通信のプロトコルであり、H323とはまったく互換性がないことに注意されたい。

### 使用例:二人のユーザーがインターネットにモデムで接続しているとき

これは、単純な手続きである。必要とされるネットワークは、

- 28k以上のモデム

である。

シナリオは、以下の通りである。

- ボブはトムに21:00に電話することになっている。トムはインターネットにkpppやgpppやwmdialなどで接続している。

- インターネットに接続したら、ボブはLinphoneを起動できる。kpppやgpppなどの統計ボックスを開いて、ボブは自分のIPアドレスを知ることができる。(/sbin/ifconfigを使わなくても確認することができる)。

- 次に、トムはボブに「僕のIPアドレスは、xxx.xxx.xxx.xxxだよ。」という内容 のeメールを送る。

- そのすぐあとで、トムの家のLinphoneのベルが鳴る。そのとき、ボブにも向こうでベルが鳴っているのが分かるようにベルの音が聞こえる。そこで、トムが電話に出るために「電話をとる」ボタンをクリックするだけでよい。そうすれば、互いに会話ができるはずである。

問題があったら、第4節の問題を参照して欲しい。

### テストの試行 - 現在(例えば深夜などで)電話をかける友人がいないが、Linphoneが本当に動いているかどうか知りたいとき

バージョン3.0からは、Linphoneには「siptomatic」というプログラムが付属している。これは、以下の手順で使用できる。

- siptomaticをターミナルから起動する。siptomaticはグラフィカルインターフェイスを備えていないが、驚かないで欲しい。相互的なやりとりをする必要がないからである。

- Linphoneのプロパティーボックスのネットワークのタブから、「lo」をデフォルトのインターフェースに決定し、変更をOKをクリックして適用する。

- 「sip:robot@127.0.0.1:5064」というSIP URLをメインウインドウに入力する。127.0.0.1は、あなたのコンピューターの ローカルアドレスで、robotはsipomaticに電話をかける際の名前である。5064ポートが、sipomaticに接続可能なポートである。通常は電話をかけるのに5060番ポートを用いるが、sipomaticは例外で5064番ポートで起動している。これは、Linphoneがすでに5060番ポート(すなわち、ポートが指定されていなければデフォルトのポートとして)で起動しているからであり、同じポートを使う2つのアプリケーションを同時に同じコンピューターで起動することができないからである。

- ボタンをクリックすると、数秒後にsiptomaticがあなたの電話に返答し、短いアナウンスが聞こえるだろう。

## 電話のパラメーター

### ネットワーク

- ネットワークインターフェースのリスト - あなたは、Linphoneに使うネットワークインターフェースを選ぶ必要がある。もし、インターネット上の誰かに連絡をしたいのなら、あなたのコンピューターがインターネットに接続しているネットワークインターフェースを選ぶべきである。何のネットワークにもつながっていない場合には、「lo」と呼ばれるローカルインターフェースだけがリストに現れるだろう。それは、siptomaticに電話をすることだけができるインターフェースである。

- 接続のタイプ - 使いたいネットワークへの接続の方法を選択する(大抵の場合はインターネットである)。これは、Linphoneがあなたの帯域を設定するのを補助するためである。

### RTP

RTP(Real Time Protocol)は、メディアストリームをネットワーク越しに送信する際に用いるプロトコルである。

- RTPポート - Linphoneは、デフォルトで音声データの送受信に7000番ポートを利用する。7000番ポートが他のアプリケーションに使われていると思われる場合には、任意のポートに変更する。

- バッファするミリ秒 - この数字は、Linphoneが再生を待機する音声パケットの数を表している。音声パケットが送れがちな場合に、再生されずに破棄される音声パケットを減らすことができる。「途切れ途切れ音」が聞こえる場合、この値を大きくすると伝送の効率を上げることができるが、音声の遅延が大きくなる(相手の声が少し遅れて聞こえる)。ゆえに、ネットワークが完全で高品質のオーディオドライバを使用している場合は、この値を3パケットに下げれば短い遅延時間で話せるようになる。

### SIP

SIP(Session Initiation Protocol)は、ネットワーク越しにメディアのセッションを確立するプロトコルである。つまりは、リモートユーザー間の会話を開始したり、片方が電話を切ったときに会話を終了したりするプロトコルである。

- SIPポート - Linphoneは、デフォルトでSIPパケットの送受信に5060番ポートを用いる。SIPのポートは、RFCに5060番を用いることが強く推奨されている。よって、何をしたいのかを明確に理解しているときを除いては、これを変更すべきではない。

- SIPの登録にする - リモートのSIPサーバーに登録すしたいときには、このボタンをチェックする。SIPサーバーのサービスには、転送やアウトバウンドプロクシがある。詳しくは、「リモートのサーバーに接続する」の節を参照されたい。

### コーデック

コーデックとは、特に音声データの圧縮のために設計されたアルゴリズムのことを言う。例えば、16bit/8000Hzのデジタル化された音声と言えば、128kbit/秒のデータの流れを表している。GSMボコーダーを使用すると、これは13bit kbit/秒に縮小される。

- コーデックの選択 - Linphoneは数種類のコーデックをサポートしている。 コーデックのリストの下部にあるボタンを使うと、使いたい順番に並べることができる。だが、ネットワーク接続のタイプによっては(ネットワークの節を参照)、使えないコーデックの種類も、使用するかどうかを決定することができる。

### オーディオパラメーター

この節では、音声技術に関するパラメーターを解説する。

- ドライバの選択 - Linuxでは、OSS(カーネルドライバーとも呼ばれる)とALSAと、異なる2種類のサウンドカードライバを使用することができるが、ALSAドライバはALSAライブラリを通すことで、さらな るパフォーマンスを発揮することができる。したがって、ALSAドライバー(snd_*で始まる名前である)を使用している場合は、ALSAモードを選択するのがよい。分からなければ、OSSを選択する。

- Auto-killオプション - このオプションを使うと、linphoneはサウンドデーモン(esdとartsd)を停止しようとする。これは、オーディオデバイスに恒久的な取り外せないロックをかけてしまい、Linphoneが必要としているオーディオデバイスをオープンさせないようにするものである、このオプションは、オンにしておくことを推奨する。

## 電話帳

電話帳(conectionのメニューの中にある)を使うと、SIPアドレスを記憶と呼出しができる。SIPアドレスは、sip:ユーザー名@ドメイン名の形式である。また、自分が分かりやすくするために、表示される名前を追加することもできる。SIPアドレスを呼び出すには、アドレスのリストから選択し、「OK」のボタンをクリックする。すると、選択したアドレスがメインウインドウに現れるのが確認できるだろう。後は、電話をかけるために「電話をかける」のボタンを押せばよいだけである。

## SIPサーバーに登録する

リモートのSIPサーバーのサービスに登録することも可能である。このようなサービスには、以下のようなものがある。

- 転送 - Linphonは、サーバーに<sip:example_registrar.com>のようなSIPアカウントを作成するよう要請する。例えば、56kのモデムを使って単純にインターネットに接続している場合、あなたのIPアドレスは静的ではなく、ネームサーバーに知られているホスト名も持っていない。これでは、友達はあなたがIPアドレスを通知するメールを送らない限り、あなたに連絡をすることができない。例として、<sip:example_registrar.com>に登録を行うのは簡単である。あなたのユーザー名は「bob」だとする。サーバーに登録する際に、LinphoneはあなたのIPアドレスをサーバーに送信し、アカウント「sip:bob@example_registrar.com」が作成される。そうすると、あなたの友達のジムは、<sip:bob@example_registrar.com>というアドレスに電話をかけることができる。当然のことながら、“example_registar.com”は、ウェルノン・ドメインネームである。次に、ジムのLinphoneはボブの確実なロケーションを示す転送メッセージを受け取る。そうして、ボブの家でベルが鳴るのである。

- プロクシ - これも、転送メッセージがジムの電話に送信されないことをのぞけば、同様の原理である。その代わりに、プロクシはボブのLinphoneまでダイレクトな転送を行う。

このような登録は、アウトバウンドプロクシにおいても同様に行われる。これは、Linphoneをファイヤーウォールの中で使うときに有効である。アウトバウンドプロクシは、プライベートサブネットにあるHTTPプロクシと同様の役割を果たす。外部への会話はアウトバウンドプロクシが扱い、ネットワーク外にいると思われる人への会話の転送の任を負う。

登録サーバーをLinphoneで使うには、プロパティーボックスからSIPのタブを選択し、「SIPアドレスを登録する」のボックスをチェックする。登録するアドレスを適切なフィールドに入力したら、次に、転送かプロクシか、対応するボックスをチェックし、登録を要求するサービスのタイプを選択する。また、外部のネットワークへ会話を透過させるための登録サーバーが必要なときには、「アウトバウンドプロクシとして使う」をチェックする。

最後にプロパティーボックスのOKボタンを押すと、プロパティーボックスは閉じられ、ただちに登録サーバーにあなたの正確な場所を知らせるための交渉が始まる。Linphoneをシャットダウンするときには、登録サーバーからあなたの場所の登録を解除するため、数秒間かかる。

パブリックな登録サーバーのリストは、以下に掲載されている。http://www.cs.columbia.edu/~hgs/sip/servers.html

だが、残念なことに、これらのサーバーの多くはもう動いていない。おそらく、近頃の電気通信業界の危機によるものであろう。他の必要とされる認証方法は、現在Linphoneではサポートされていない。

無用な手間を避けたいときには、使用可能な動作しているパブリックなSIPサーバーのリストが、Linphoeの以前のWEBサイトのリストがhttp://simon.morlat.free.fr/english/servers.htmlで参照できる。

## ファイヤーウォールの内側で

現在では、SIPプロクシを用いることで、Linphoneはファイヤーウォールの内側で利用可能である。SIPサーバーは、プライベートネットワークからの会話を外部のネットワークへ転送する任を負う。oSIPライブラリを利用したSIPプロクシは、http://osipproxy.sourceforge.netで開発されている。

SIPの節の、「SIPに登録する」の項目を参考に、プロパティーボックスで用いるSIPプロクシを指定して欲しい。設定するには、SIPプロクシのアドレスを入力し、「アウトバウンドプロクシとして登録する」のボタンをチェックする。

なお、SIPプロクシが必要ない場合もある。パブリックアドレスを持っているネットワーク下にあなたのコンピューターがあり、ファイヤーウォールは外部ネットワークからのパケットの送受信をフィルターするだけの場合である。この場合には、ファイヤーウォールのマシンのSIPとRTPのポートをオープンするだけでよい。SIPポートはプロパティーボックスのSIPのタブに、RTPポートは、RTPポートはRTPのタブにある。両者ともに変更可能であるが、SIPポート(5060番)は、変更しないでおくことが強く推奨される。

## 困ったときには

### 接続上における問題

> 私は、友人<sip:toto@example.com>に電話をかけようとしただが、なにも起きない。ベルも鳴らない、まったく何も起こらない。

Linphoneが使用しているインターネットへ接続しているネットワークインターフェース(または、会話が出ていくべきネットワーク)を検証してみるべきであろう。プロパティーボックスの、ネットワークタブから、正しいインターフェースを選んでみるのがよいだろう。

あるいは、あなたが接続しようとしている人が、現在経路が接続できない状況にあるのかも知れない……。

### 音声における問題

> Linphoneは、リモートのSIP URLに接続しているようで、ベルは鳴っているようだ。けれども、相手が電話に出たときには何も起こらず、お互いの声が聞こえない。

- 大抵の人は、プロパティーボックスから、正しいネットワークインターフェースを選んでいないために、問題を生じさせてしまう。ダイヤルアップ接続では、「ppp0」になるはずである。「\"{}lo」は、テスト用に、sipomaticだけに使用されるインターフェースであることに注意されたい。その他の場合では 機能しない。

- まずは、送話音量と受話音量を上げてみるのがよいだろう。

- 音声がとぎれとぎれになる場合は、これを回避するために、プロパティーボックスのRTPタブの「バッファするミリ秒」の値を大きくしてみるのがよいだろう。しかし、これは通信の遅延を増大させる。

- Linphoneが、オーディオデバイスをオープンできないときには、/dev/dspのパーミッションを確認し、オーディオデバイスを使用するすべてのプログラム(xmms kaiman等)を停止するのがよいだろう。

- ALSAドライバーを使用する(http://www.alsa-project.orgを参照されたい)。大抵のディストリビュージョンは、まだ古いカーネル公認のドライバーを使用しているが、これは大きな遅延と多くのバグを含んでいる。Linphoneは、ALSAドライバーをインストールした後のリコンパイルを必要としないこと、また、オーディオの節のプロパティーボックスからのALSAモードへの変更は必須ではないことも述べておこう。

## バグ報告と提案

まずは、Linphoneのホームページhttp://www.linphone.orgから、最新のLinphoneを使用しているかを確認して欲しい。

もし、Linphoneがクラッシュしたときには、バグレポートを直接bugs@linphone.orgまで送って欲しい。もし、クラッシュはしないがLinphoneが動作しないときには、上のアドレスにバグレポートを送る前に、マニュアルを もう一度読みかえして欲しい。もし、何かを提案したいときには、遠慮せずに、help@linphone.orgまでメールを送って欲しい。なお、ビデオサポートと会議は、将来の計画にあることを述べておこう。また、Linphonrの翻訳に興味を持った人は、配布されているpo/linpyhone.potに基づいたxx.poファイルを私に送って欲しい。また、このマニュアルを他の言語に翻訳することも可能である。いずれにしても、詳しいことが知りたいときは私に連絡して欲しい。

## 作者

Simon MORLAT (simon.morlat@free.fr) が製作した部分は以下の通りである。

- メインプログラム(src)

- RTP ライブラリ (lprtplib)

- osipua -- osipスタックに基づいたユーザーエージェントのAPI。ossとALSAドライバーの音声インターフェース。

- (音声) lpc10-1.5用のwrappers, gsm and g711 コーデック

Aymeric Moizard (jack@atosc.org)は、 Linphoneが利用しているosipスタックを製作した。

GSMライブラリは、Jutta DegenerとCarsten Bormann(Technische Universitaet Berlin)によって書かれた。

The LPC10-1.5 ライブラリは、Andy Fingerhut(Applied Research Laboratory)によって書かれた。 <-- この部分はスペースの都合により省略可能である。 Washington University, Campus Box 1045/Bryan 509 スペースに限りがある場合は、ここから。One Brookings Drive Saint Louis, MO 63130-4899 jaf@arl.wustl.edu http://www.arl.wustl.edu/˜jaf/さらなる情報は、gsmlibとlpc10-1.5のディレクトリのテキストファイルを参照されたい。

Pablo Marcelo Moia -- アイコン製作

## 謝辞

GTKインターフェースビルダーのDaemon Chaplinに感謝を。

著明なoSIPライブラリーのAymeric Moizardに感謝を。

LPC10-1.5とGSMコードの作者に感謝を。

RPMを提供してくれた、Joel Barrios ( jbarrios@-NO-SPAM-linuxparatodos.com )に感謝を。

Linphoneに素敵なアイコンを提供してくれた、Pablo Marcelo Moiaに感謝を。