【Intel Galileo:3】sip server をいれる。 (cross compile)

Sip Serverにしてみようと、思いついてできたので、記録。

partysip-2.2.3
(wget http://download.savannah.gnu.org/releases/partysip/partysip-2.2.2.tar.gz)

libosip2-2.2.2
(wget http://ftp.gnu.org/gnu/osip/libosip2-2.2.2.tar.gz)

VM は、前回作成したものを使用。

libosipのmake

cross compile する。
インストールは、自分のディレクトリの中。

source /opt/clanton-tiny/1.4.2/environment-setup-i586-poky-linux-uclibc
./configure $CONFIGURE_FLAGS --prefix=/home/guutara/libosip2-2.2.2/local
make
make install

確認。

guutara@gtr01:~/libosip2-2.2.2$ ls local/*
local/include:
osip2  osipparser2

local/lib:
libosip2.a   libosip2.so    libosip2.so.3.0.0  libosipparser2.la  libosipparser2.so.3      pkgconfig
libosip2.la  libosip2.so.3  libosipparser2.a   libosipparser2.so  libosipparser2.so.3.0.0

local/man:
man1

partysipのmake

cross compile する。
一度、Terminalを閉じて、新しいセッションで作業する。
インストールは、/partysipを作成してそこに。

sudo mkdir partysip

sudo chmod 0777 /partysip

source /opt/clanton-tiny/1.4.2/environment-setup-i586-poky-linux-uclibc

./configure --build=i686-linux --host=i586-poky-linux-uclibc CPPFLAGS="-I/home/guutara/libosip2-2.2.2/local/include" LDFLAGS="-L/home/guutara/libosip2-2.2.2/local/lib" LIBS="-losipparser2" --prefix=/partysip

make

make install

確認。

guutara@gtr01:~/partysip-2.2.3$ ls -l /partysip/*/partysip/bin:
合計 432
-rwxr-xr-x 1 guutara guutara 406080  129 16:31 partysip
-rwxr-xr-x 1 guutara guutara   3994  129 16:31 partysip-config
-rwxr-xr-x 1 guutara guutara  27162  129 16:31 psp_users

/partysip/etc:
合計 4
drwxr-xr-x 2 guutara guutara 4096  129 16:31 partysip

/partysip/include:
合計 8
drwxr-xr-x 2 guutara guutara 4096  129 16:31 partysip
drwxr-xr-x 2 guutara guutara 4096  129 16:31 ppl

/partysip/lib:
合計 208
-rw-r--r-- 1 guutara guutara 110034  129 16:31 libppl.a
-rwxr-xr-x 1 guutara guutara    966  129 16:31 libppl.la
lrwxrwxrwx 1 guutara guutara     15  129 16:31 libppl.so -> libppl.so.2.2.3
lrwxrwxrwx 1 guutara guutara     15  129 16:31 libppl.so.2 -> libppl.so.2.2.3
-rwxr-xr-x 1 guutara guutara  90663  129 16:31 libppl.so.2.2.3
drwxr-xr-x 2 guutara guutara   4096  129 16:31 partysip

それぞれを、tarで、固める。

guutara@gtr01:~$ tar czf libosip2-2.2.2.tar.gz libosip2-2.2.2/local
guutara@gtr01:~$ tar czf partysip.tar.gz /partysip

あとは、VMから一旦、HOSTへscpして、Gallileoに、SCPする。

ssh で、SD Linux にインストールして、展開する。

SD Linuxにインストール

SD Linux には、ldconfigはない。
Link時に、パスを埋め込んでいない場合は、/usr/libの配下に置けば認識する。

libosipの設置

root@clanton:~# tar zxf libosip2-2.2.2.tar.gz
root@clanton:~# cp -r libosip2-2.2.2/local/lib/* /usr/lib/
root@clanton:~# ls -l libosip2-2.2.2/local/lib/           
-rw-r--r--    1 1000     1000        350926 Jan 29  2014 libosip2.a
-rwxr-xr-x    1 1000     1000           896 Jan 29  2014 libosip2.la
lrwxrwxrwx    1 root     root            17 Jan  1 00:14 libosip2.so -> libosip2.so.3.0.0
lrwxrwxrwx    1 root     root            17 Jan  1 00:14 libosip2.so.3 -> libosip2.so.3.0.0
-rwxr-xr-x    1 1000     1000        237274 Jan 29  2014 libosip2.so.3.0.0
-rw-r--r--    1 1000     1000        586532 Jan 29  2014 libosipparser2.a
-rwxr-xr-x    1 1000     1000           881 Jan 29  2014 libosipparser2.la
lrwxrwxrwx    1 root     root            23 Jan  1 00:14 libosipparser2.so -> libosipparser2.so.3.0.0
lrwxrwxrwx    1 root     root            23 Jan  1 00:14 libosipparser2.so.3 -> libosipparser2.so.3.0.0
-rwxr-xr-x    1 1000     1000        415038 Jan 29  2014 libosipparser2.so.3.0.0
drwxr-xr-x    2 1000     1000          1024 Jan  1 00:14 pkgconfig
root@clanton:~# ls -l /usr/lib/libosip*        
-rw-r--r--    1 root     root        350926 Jan  1 00:15 /usr/lib/libosip2.a
-rwxr-xr-x    1 root     root           896 Jan  1 00:15 /usr/lib/libosip2.la
lrwxrwxrwx    1 root     root            17 Jan  1 00:15 /usr/lib/libosip2.so -> libosip2.so.3.0.0
lrwxrwxrwx    1 root     root            17 Jan  1 00:15 /usr/lib/libosip2.so.3 -> libosip2.so.3.0.0
-rwxr-xr-x    1 root     root        237274 Jan  1 00:15 /usr/lib/libosip2.so.3.0.0
-rw-r--r--    1 root     root        586532 Jan  1 00:15 /usr/lib/libosipparser2.a
-rwxr-xr-x    1 root     root           881 Jan  1 00:15 /usr/lib/libosipparser2.la
lrwxrwxrwx    1 root     root            23 Jan  1 00:15 /usr/lib/libosipparser2.so -> libosipparser2.so.3.0.0
lrwxrwxrwx    1 root     root            23 Jan  1 00:15 /usr/lib/libosipparser2.so.3 -> libosipparser2.so.3.0.0
-rwxr-xr-x    1 root     root        415038 Jan  1 00:15 /usr/lib/libosipparser2.so.3.0.0

partysipの設置。
patysipは、plugin,confの位置を、Link時のprefixから埋め込んでいる。

root@clanton:~# cd /
root@clanton:/# ls
bin         dev         home        lost+found  mnt         proc        sketch      tmp         var
boot        etc         lib         media       opt         sbin        sys         usr

root@clanton:/# tar zxf ~/partysip.tar.gz 
root@clanton:/# ls
bin         dev         home        lost+found  mnt         partysip    sbin        sys         usr
boot        etc         lib         media       opt         proc        sketch      tmp         var

root@clanton:/# ls
bin         dev         home        lost+found  mnt         proc        sketch      tmp         var
boot        etc         lib         media       opt         sbin        sys         usr
root@clanton:/# tar zxf ~/partysip.tar.gz 
root@clanton:/# ls
bin         dev         home        lost+found  mnt         partysip    sbin        sys         usr
boot        etc         lib         media       opt         proc        sketch      tmp         var
root@clanton:/# cd partysip/
root@clanton:/partysip# ls
bin      etc      include  lib

起動

confの設定をする。

vi etc/partysip/partysip.conf 

serverip = 10.29.58.65, 127.0.0.1                                             
                                                                              
### When dynamic_ip is set to "on", then the ip is reloaded periodically.      
###                                                                      
                                                                        
# dynamic_ip = on                                                       
                                                                        
###                                                                      
### enable IPv6 support. (IPv4 should be fully functionnal anyway)       
###                                                                      
                                                                        
# serverip6 = fe80::240:f6ff:fe74:7a75, ::1                            
# enable_ipv6 = on                                                     
                                                                       
###                                                                    
### servername must be edited.                                         
###                                                                    
### Please give the list of all FQDNs of your host separated by commas.
                                                                       
servername  = 10.29.58.65, 127.0.0.1                                    
serverport_udp = 5060                                                   
                                                                       
# transport protocol: udp/tcp/sctp                                     
# UDP:  ok                                                            
# TCP:  not supported (please contribute!)                            
# SCTP: supported only in previous release (0.X.X)                     
#       You can port the old plugin which can be found at:             
#       http://osip.atosc.org/download/partysip/sctp_plugin-0.5.4.tar.gz
transport = udp                                                        

起動する。

root@clanton:/partysip# cd bin
root@clanton:/partysip/bin# ./partysip -d 6 -l /var/log/partysip.log &
[2] 1500
[1]   Done(127)               partysip -d 6 -l /var/log/partysip.log
root@clanton:/partysip/bin# DEBUG: [get_output_if] connect: Network is unreachable
Default Gateway Interface detection failed. Please define "serverip" in the config file
Server:             WellX Telecom/Partysip/2.2.3
Debug level:        6
Config name:        /partysip/etc/partysip/partysip.conf
ServerIP: (IPv4)    10.29.58.65, 127.0.0.1
ServerName:         10.29.58.65, 127.0.0.1
ServerRealm:        '"wellx.org"'
Log name:           /var/log/partysip.log

テスト

Telephone-1.0.4 を使ってテストしてみる。

こんな感じで、設定した。

つなぐと、サーバのLogでちゃんと、登録されたのがわかる。

SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.29.58.64:60307;rport=60307;branch=z9hG4bKPjEW8qqlYKAuQZ2sEjPvsax80dK6.dL3Sy
From: "ms@10.29.58.64" <sip:guutara@10.29.58.65>;tag=d1HhsWxSCMU8DoWwNQvkwcTOvCjSa1y4
To: "ms@10.29.58.64" <sip:guutara@10.29.58.65>;tag=151861976
Call-ID: hE5aAYbvuk3KIFUHa0M9WFGrKcFqcfKZ
CSeq: 65357 REGISTER
Contact: "guutara@10.29.58.64" <sip:guutara@10.29.58.64:60307;ob>;expires=300
Content-Length: 0

つぎは

全然、センサーとかいじってないけど。。
いいのかこれで。。 (´・ω・`)