一度記事を消してしまったので2度目の文章作成です。。。
あんまりObjective-Cらしくない内容ですが、ご愛嬌。
##PJSIPとは
オープンソースのSipStackです。
SIPについてはぐぐってくれると嬉しいんですが、VoIPとかあの辺の話ですね。
詳しくはぐぐって!
超超ざっくり言うとこれを組み込んだらIP電話が使えるよって話です。
##今回の流れ
iPhone5用にコンパイルして、Xcodeに組み込むまでをやってみようかと思います。
組み込んだ後のコーディングはまた機会があれば紹介しようと思います。
そんなにしっかりコード書いたことないけど。
というわけで、さっそく本題に移りましょう!
##環境
- Mac OS X 10.7.5
- Xcode 4.5.2
##PJSIPをダウンロードする
Getting Started: Building for Apple iPhone, iPad and iPod Touch
ここを参考にして進めます。
まずはソースコードを落とします。
ターミナルを起動して以下を実行します。
(zipもあるようですが今回はsvnで)
svn co http://svn.pjsip.org/repos/pjproject/trunk/ pjsip
##PJSIPをコンパイルする
makeとかよく知らない自分にはここが一番の難所でした。
色々とファイル編集してからmakeするだけなんですけどね。。。
# Checkoutしたディレクトリへ移動
cd pjsip
# Vimでファイル編集
vim pjlib/include/pj/config_site.h
内容は以下をコピペ
#define PJ_CONFIG_IPHONE 1
#include <pj/config_site_sample.h>
次にconfigureをいじります。
iPhone5用にコンパイルするので、armv7
となっているところをarmv7s
に修正します。
「armv7」と検索したら1箇所だけヒットしたので、そこを書き換えただけです。
vim configure-iphone
#export ARCH="-arch armv7"
export ARCH="-arch armv7s"
修正できたら以下を実行します。
./configure-iphone
エラーがでなければmakeします。
make dep && make clean && make
エラーがでなければOK!
##Xcodeへ組み込む
Xcodeで新規にプロジェクトを作成します。
以下のディレクトリをプロジェクトに追加します。
- pjsip/
- pjlib/
- include/
- lib/
- pjlib-util/
- include/
- lib/
- pjmedia/
- include/
- lib/
- pjnath/
- include/
- lib/
- pjsip/
- include/
- lib/
- third_party/
- include/
- lib/
- pjlib/
上のディレクトリ全てを以下の追加します。
- Header Search Paths
- Library Search Paths
と思ってたら、プロジェクトにファイルを追加した段階でLibrary Search Pathsも追加されてました。
ライブラリの追加もできてました。
Build Phases
の Link Binary With Libraries
から確認できます。
あとはiPhone5を繋いで、
AppDelegate.m
あたりに以下を追加してビルドしてみましょう。
#include <pjsua-lib/pjsua.h>
これでエラーなく実機でビルドできればOK!
iPhone5用にコンパイルしてるので、simulatorでは動きません。
エラー出て怒られると思います。
##最後に
実装の際はこのサンプルを見ながら書いてみると良いでしょう。
Samples: Simple PJSUA
APIはここを参照。
PJSUA API - High Level Softphone API
言うのが遅くなりましたが、もちろん電話番号が必要です。
iptelなら無料で電話番号を発行してもらえます。
iptel.org
探せば他にもたくさんあるはずなので探してみては如何でしょう。
んで
ぼくはCもSIPも詳しくないので質問されてもわかりません!
むしろ教えて下さい。
ということで、お疲れ様でございました。
##参考にしたサイト
PJSIPをXcodeに組み込む