Hatena::ブログ(Diary)

【qloogTips】trixboxやAsterisk、macについて、スタッフのきまぐれで始めた株式会社クルーグ非公式ブログ このページをアンテナに追加 RSSフィード

2009年12月21日 Asterisk/trixbox等で利用できるCUIのSIPクライアント

Asterisk/trixbox等で利用できるCUIのSIPクライアントをインストールして発信する方法

今回は、GNOMEKDE等のGUIインストールされていないLinuxAsterisk/trixbox等のIP電話を使って電話をかける方法についてです。

まだ、私も分かっていないことがたくさんありますが、取りあえず発信着信ができる所までです。

ドキュメントがしっかりしているので色々できそうですが、今のところの用途は・・・・・今から考えます。


今回SIPクライアントとして利用するのはCLIベースのソフトフォンで、「pjsip」を利用します。

テスト環境はCentOS5.4で行いました。ソースからコンパイルしますので、CentOSに開発ツールを入れておいて下さい。


まず、ソースコードサイトからDLします。

今回はpjproject-1.5.tar.bz2ダウンロードしてコンパイルしました。


wget http://www.pjsip.org/release/1.5/pjproject-1.5.tar.bz2
tar jxvf pjproject-1.5.tar.bz2
cd pjproject-1.5
./configure
make dep && make clean && make

コンパイルが成功すると、

pjproject-1.5/pjsip-apps/bin/にバイナリファイルが出来上がっています。

単に起動するだけであれば、ファイルパス/pjproject-1.5/pjsip-apps/bin/pjsua-i686-pc-linux-gnuとなります。i686部分はアーキテクチャによって違うと思いますが、適当に置き換えて下さい。

仮に/rootで作業しているのなら、/root/pjproject-1.5/pjsip-apps/bin/pjsua-i686-pc-linux-gnuと言った所でしょうか。

このあたりは、皆さんの環境とルールで適当に行って下さい。

f:id:qloog:20091221165536j:image

SIPのIDとPWを起動時に渡してやれば一発でレジストしてくれます。

下は、trixboxProに一発接続する例です。

./pjsua-i686-pc-linux-gnu --id=sip:SOFTPHONE001@s123456.trixbox.fonality.com --registrar=sip:SOFTPHONE001@s123456.trixbox.fonality.com --realm=asterisk --username=SOFTPHONE001 --password=パスワード

文法:./pjsua-i686-pc-linux-gnu --id=sip:SIPユーザー名@trixboxサーバー名 --registrar=sip:SIPユーザー名@trixboxサーバー名 --realm=asterisk --username=SIPユーザー名 --password=SIPパスワード

id=SIPアカウント@trixbox となります。
registrar=SIPアカウント@trixbox となります。
確認する場所はtrixboxAdmin panel >> Extensions >> Phones >> SIP Username

realm=trixboxProはasteriskなのでasterisk
username=SIPアカウント
password=sipパスワード

となります。

Asteriskの場合はこんな感じでしょうか。

./pjsua-i686-pc-linux-gnu --id=sip:100@192.168.0.100 --registrar=sip:asrterisk@192.168.0.100 --realm=Asterisk --username=100 --password=123456


id=ローカルのアドレス
registrar=SIPサーバAsterisk)のアドレス
username=Asterisksip.confに設定したユーザ名
password=Asterisksip.confに設定したパスワード
でいけると思います。


内線5020へ発信するのは
m   +   enter を入れたら

========
(You currently have 0 calls)
Buddy list:
 -none-
Choices:
 For current dialog.
 All 0 buddies in buddy list
Select from buddy list
URL An URL
<Enter>    Empty input (or 'q') to cancel
Make call: 
========

と表示されるので、
sip:5020@s123456.trixbox.fonality.com    +   enter

外線へ発信するには上と同じで、
m   +   enter を入れて
sip:{プレフィクス}09012345678@s123456.trixbox.fonality.com

着信に応答するには
a    +   enter

もしかすると

>>> a
Answer with code (100-699) (empty to cancel): 

と聞いてくるので200を入れれば応答できるはずです。
SIPのコードはページの一番下に書いておきます。
ここで、他の番号を入れるとちゃんと意図した応答をしてくれます。

保留は
H    +   enter

終話は
h    +   enter

です。


詳細はココにドキュメントがあります。

http://www.pjsip.org/pjsua.htm


コールコマンドはこちら

http://www.pjsip.org/pjsua.htm#cmd_call


確かに何かに利用出来そうだけど、明確には思いつかないなぁ。

ちなみに、MacOSX10.6でやってみたけど、PortAudioでエラーがでたり、pjsipのコンパイル時にエラーがでたりして動いてくれない。

PortAudioはバージョンアップで対応できそうだけど、pjsipのコンパイル時のエラーは私の能力ではキャパオーバーで何ともできませんでした。

ココにも同じ悩みを抱える人がいるけど、時間がかかりそうなのでまた今度挑戦してみます。

年末年始にでもやってみるか。

http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2009-November/009380.html

どなたか、分かったら教えて下さい。

あと、余談ですがWindowsでもpjsipは利用できるみたいです。

ウチはやりませんけど。

SIPコード一覧
1xx = 情報応答

    * 100 試行中
    * 180 呼び出し中
    * 181 転送中
    * 182 順番待ち
    * 183 セッション進行中

2xx = 成功応答

    * 200 OK
    * 202 受諾:照会に使用

3xx = リダイレクト応答

    * 300 複数の転送先
    * 301 永久的に移動
    * 302 一時的に移動
    * 305 プロキシ使用
    * 380 ほかのサービス

4xx = リクエスト エラー

    * 400 不正なリクエスト
    * 401 認証が必要:レジストラのみ利用可。プロキシは「プロキシ認証 407」が必要
    * 402 支払いが必要(将来使われる可能性あり)
    * 403 禁止
    * 404 見つかりません:ユーザが見つかりません
    * 405 メソッド利用不可
    * 406 容認不可
    * 407 プロキシ認証が必要
    * 408 リクエスト タイムアウト:時間内にユーザが見つかりませんでした
    * 410 不在:ユーザは過去に存在しましたが、もうここにはいません
    * 413 リクエスト本体が大きすぎます
    * 414 リクエストURIが大きすぎます
    * 415 非対応メディア
    * 416 非対応URIスキーム
    * 420 不正な拡張:SIPプロトコル拡張がサーバに認識されません
    * 421 拡張が必要
    * 423 間隔が短すぎます
    * 480 一時的に利用不可
    * 481 通話 / トランザクションが存在しません
    * 482 ループ検出
    * 483 最大ホップ数超過
    * 484 不完全なアドレス
    * 485 あいまい
    * 486 話し中
    * 487 リクエストが中止
    * 488 ここでは容認不可
    * 491 リクエスト待機中
    * 493 解読不可:S/MIME本文を解読できませんでした

5xx = サーバー エラー

    * 500 サーバ内部エラー
    * 501 非実装:SIPリクエスト メソッドが実装されていません
    * 502 不正なゲートウェイ
    * 503 サービス利用不可
    * 504 サーバタイムアウト
    * 505 バージョン非対応:サーバはこのSIPバージョンに対応していません
    * 513 メッセージが大きすぎます

6xx = グローバル エラー

    * 600 随所で話し中
    * 603 拒否
    * 604 どこにも存在しません
    * 606 容認不可

sdozonosdozono 2010/01/26 12:59 通話録音サーバのテストにたいへん便利でした!情報ありがとうございます。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/qloog/20091221/1261383368