2017/06/01

在 ubuntu 中建置 kamailio 伺服器


kamailio 是一款 sip server 可以用來做 voip 網路語音通話

他們前身是 OpenSER, 也有分支 Opensips

在這邊介紹如何在 ubuntu 14.04 建置 kamailio


由於個人比較偏好直接用別人打包好的套件做安裝,剛好官網也有提供 http://deb.kamailio.org/

安裝 kamailio

# 使用 apt-get 安裝
echo "deb http://deb.kamailio.org/kamailio trusty main" >> /etc/apt/sources.list
echo "deb-src http://deb.kamailio.org/kamailio trusty main" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install kamailio

記得安裝 mysql modules

sudo apt-get install kamailio-mysql-modules kamailio-tls-modules


編輯 /etc/kamailio/kamailio.cfg


# #!開頭的會是 kamailio 的 script 語法, 在這邊定義啟用 mysql 跟用 db 做認證
#!define WITH_MYSQL
#!define WITH_AUTH

# 把機器自己的 public ip 設成一個 alias
alias="aws public ip"


設定 db

# 編輯 /etc/kamailio/kamctlrc

SIP_DOMAIN=aws public ip
DBENGINE=MYSQL
DBHOST=localhost
DBNAME=kamailio
DBRWUSER="kamailio"
DBRWPW="kamailiorw"
DBROUSER="kamailioro"
DBROPW="kamailioro"
DBROOTUSER="root"
USERCOL="username"

初始化 db

kamdbctl create

新增帳號

kamctl add 1000 1000 #kamctl add 帳號 密碼

全部設完記得重啟

sudo /etc/init.d/kamailio restart

sip客戶端:

android 5: linphone、ECOA Sip
android 6: linphone、sipdroid
iOS: linphone
macOS: YateClient

2017/05/22

在 ubuntu 中建立 swap


1. 建立 swap 檔

sudo fallocate -l 1G /data/swap
sudo chmod 600 /data/swap
sudo mkswap /data/swap


2. 編輯 /etc/fstab 加入系統啟動自動掛載

/data/swap none swap defaults 0 0


3. 自動掛載 fstab 設定的 swap

sudo swapon -a


4. 查詢 swap

swapon -s
# 或
free

2017/04/19

手動編譯 php *.so 檔


由於在同一環境中有不同版本的 php 同時運作

所以舊版 php 的 shared object 套件無法使用 pecl/pear 安裝

那就自己 build 吧

2016/11/29

2016/09/26

docker nginx reload



根據官方blog

當 nginx 設定檔更動時, 你不能直接執行 nginx reload, 但幸好 nginx 支援特定 signal 去做 reload

/etc/init.d/nginx reload

sudo docker kill -s HUP 



/etc/init.d/nginx restart

sudo docker restart 


2016/08/22

將虛擬機器映像檔 匯入AWS EC2



由於必須必須把映像檔上傳至 S3 上才能建立 EC2 的 AMI

所以我們先在S3上建立一個 bucket


aws s3api create-bucket --bucket vm-image


將映像檔上傳至 S3

aws s3 cp ~/ubuntu.ova s3://vm-image/


建立一個名為 vmimport 的 role


aws iam create-role --role-name vmimport


condition 要改為

"sts:Externalid":"vmimport"


開始匯入囉

aws ec2 import-image --cli-input-json "{ \"Description\": \"Ubuntu\", \"Format\": \"ova\", \"UserBucket\": { \"S3Bucket\": \"vm-image\", \"S3Key\": \"Ubuntu.ova\" } }"


之後就是等等等, 當然可以查進度

aws ec2 describe-import-image-tasks --import-task-ids import-ami-xxxxxxxxxx


完成後就會在你的EC2的AMIs看到image囉


Reference:
http://docs.aws.amazon.com/vm-import/latest/userguide/import-vm-image.html#import-vm
http://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html

2016/07/18

docker 解決 container mount檔案



目前在操作 docker 上會遇到一個問題:
mount 某個檔案或某的目錄到 container 上後修改 host 上的擋案後 container 對應的擋案不會跟著變動