1. 为省事起见,先下载安装包,发现依赖库版本太低,没法运行。于是源码编译安装。主要参考:https://github.com/codeghar/Seagull,似乎http://gull.sourceforge.net上面的编译安装,陈旧一些,就没有使用。对参考的东西做一下缩略和修正,补充一些东西。例子说的是支持centos7,但我在centos6上也能运行。
- CentOS (64-bit version only) - 7
- openSUSE - 13.2 (tested up to commit 79137704f54, before merging patches for issue #1)
- Ubuntu (64-bit versions only) - 14.04, 16.04, 18.04
sudo yum groupinstall "Development Tools" -y
sudo yum install curl git glib2-devel ksh bison flex flex-devel vim tmux -y
Clone this repo and create a branch to build from.
mkdir -p /source
cd /source
git clone https://github.com/codeghar/Seagull.git
cd /source/Seagull
git branch build master
git checkout build
Add SCTP Support
Download the latest sctplib and socketapi tarballs from http://www.sctp.de/ to the external-lib-src directory. They were are version 1.0.15 and 2.2.8 respectively at the time of writing.
cd /source/Seagull/seagull/trunk/src
curl --create-dirs -o external-lib-src/sctplib-1.0.15.tar.gz http://www.sctp.de/download/sctplib-1.0.15.tar.gz
curl --create-dirs -o external-lib-src/socketapi-2.2.8.tar.gz http://www.sctp.de/download/socketapi-2.2.8.tar.gz
Edit build-ext-lib.conf and update the version of this library ONLY if you downloaded a different version.
... EXTBUILD_3_FILE=openssl-1.0.2e.tar.gz EXTBUILD_3_DIR=openssl-1.0.2e ...
Build SCTP and TLS Support
Build libraries for SCTP and TLS.
ksh build-ext-lib.ksh
Build Seagull
First clean up previous build attempts and then build. Upon encountering errors (you shouldn't if you followed these instructions exactly but never say never) fix the error and run these two commands again.
ksh -target clean
ksh -target all
Install Seagull
I'm assuming Seagull built successfully. Install its binaries by copying files in /source/Seagull/seagull/trunk/src/bin to /opt/seagull/bin.
sudo cp /source/Seagull/seagull/trunk/src/bin/* /opt/seagull/bin
Following the lead of rpm packages provided by the official projects, install other required files in the /opt hierarchy.
sudo mkdir -p /opt/seagull
sudo cp -r exe-env/* /opt/seagull
sudo chown -R myusername:myusername /opt/seagull
mkdir -p /opt/seagull/{diameter-env,h248-env,http-env,msrp-env,octcap-env,radius-env,sip-env,synchro-env,xcap-env}/logs
To run a client or server, cd to /opt/seagull/*/run dirctory and execute any start*.ksh file. For example, to start a Diameter server
cd /opt/seagull/diameter-env/run
./start_server.ksh
对原来安装指南做的调整是,源文件放到/source下。
运行时,发现需要指定库的路径,于是,在/etc/ld.conf.d/下增加文件,seagull.conf,内容是/opt/seagull/bin,然后 ldconfig,刷新库路径
另外需要安装: yum -y install flex-devel
对sip做测试,可以参考http://gull.sourceforge.net/doc/sip.html,
1. 开两个终端,
分别运行 start_client_test.ksh 和 start_server_test.ksh
2. 开三个终端,分别运行 start_server_corr_1.ksh,start_server_corr_2.ksh,start_client_corr.ksh
实际运行时,发现缺少文件:libssl.so.1.0.0,拷贝
cd /source/Seagull/seagull/trunk/src/ext-1.8.3/lib
cp libssl.so* -dua /opt/seagull/bin
cp libcrypto.so* -dua /opt/seagull/bin
最终,/etc/ld.conf.d/seagull.conf的内容是:
/opt/seagull/bin
/usr/lib64/openmpi/lib
对diameter做测试时,发现:
./start_server_tls.ksh
SSL_CTX_use_certificate_file failed
可能先要安装证书吧,详情再咨询协议专家。