Asterisk12 上使用pjsip模組

2021-06-21 06:41:12 字數 4250 閱讀 3117

# cd /home

# tar zxvf git-1.8.1.5.tar.gz

# cd git-1.8.1.5

下面編譯安裝:

# make prefix=/usr/local install

二進位制檔案會被安裝到/usr/local/bin目錄裡;

系統上已經安裝過git的,此步可以無視。

# git clone pjproject

# cd pjproject

# ./configure --prefix=/usr --libdir=/usr/lib --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr

# make dep

# make

# make install

# ldconfig

檢視是否安裝正確:

# ldconfig -p | grep pj

libpjsua.so.2 (libc6) => /usr/lib/libpjsua.so.2

libpjsua.so (libc6) => /usr/lib/libpjsua.so

libpjsip.so.2 (libc6) => /usr/lib/libpjsip.so.2

libpjsip.so (libc6) => /usr/lib/libpjsip.so

libpjsip-ua.so.2 (libc6) => /usr/lib/libpjsip-ua.so.2

libpjsip-ua.so (libc6) => /usr/lib/libpjsip-ua.so

libpjsip-******.so.2 (libc6) => /usr/lib/libpjsip-******.so.2

libpjsip-******.so (libc6) => /usr/lib/libpjsip-******.so

libpjnath.so.2 (libc6) => /usr/lib/libpjnath.so.2

libpjnath.so (libc6) => /usr/lib/libpjnath.so

libpjmedia.so.2 (libc6) => /usr/lib/libpjmedia.so.2

libpjmedia.so (libc6) => /usr/lib/libpjmedia.so

libpjmedia-videodev.so.2 (libc6) => /usr/lib/libpjmedia-videodev.so.2

libpjmedia-videodev.so (libc6) => /usr/lib/libpjmedia-videodev.so

libpjmedia-codec.so.2 (libc6) => /usr/lib/libpjmedia-codec.so.2

libpjmedia-codec.so (libc6) => /usr/lib/libpjmedia-codec.so

libpjmedia-audiodev.so.2 (libc6) => /usr/lib/libpjmedia-audiodev.so.2

libpjmedia-audiodev.so (libc6) => /usr/lib/libpjmedia-audiodev.so

libpjlib-util.so.2 (libc6) => /usr/lib/libpjlib-util.so.2

libpjlib-util.so (libc6) => /usr/lib/libpjlib-util.so

libpj.so.2 (libc6) => /usr/lib/libpj.so.2

libpj.so (libc6) => /usr/lib/libpj.so

如果看到上面的結果,就表明安裝正確。

接下來安裝asterisk-12

先安裝依賴庫:jansson和sqlite:

# tar zxvf jansson-2.5.tar.gz

# cd jansson-2.5

# ./configure

# make

# make install

# make check

安裝sqlite:

centos發行版本自帶的有sqlite和sqlite-devel,利用rpm安裝即可;

# tar zxvf asterisk-12-current.tar.gz

# cd asterisk-12.1.1

# ./configure--disable-asteriskssl

# make menuslect

進入channel drivers 中chan_pjsip被選中 且 resource modules中res_pjsip開頭的幾個模組別選中,表明pjsip模組已被asterisk正確識別。

# make

# make install

asterisk12安裝成功!

啟動asterisk後,在cli中可以利用pjsip檢視模組的相關命令。

建立pjsip的endpoint

在/etc/asterisk/pjsip.conf的最後,新增兩行:

#include 「/etc/asterisk/peers_pjsip.conf」

#include "/etc/asterisk/trunk_pjsip.conf"

/etc/asterisk/peers_pjsip.conf檔案中配置pjsip的endpoint,例如:

[6001]

type=endpoint

transport=transport-udp

context=from-internal

disallow=all

allow=ulaw

allow=gsm

allow=g729

auth=6001-auth

aors=6001

[6002]

type=endpoint

transport=transport-udp

context=from-internal

disallow=all

allow=ulaw

allow=gsm

allow=g729

auth=6002-auth

aors=6002

[6001-auth]

type=auth

auth_type=userpass

password=6001

username=6001

[6002-auth]

type=auth

auth_type=userpass

password=6002

username=6002

[transport-udp]

type=transport

protocol=udp ;udp,tcp,tls,ws,wss

bind=0.0.0.0:5070

[6001]

type=aor

max_contacts=2

;contact=sip:[email protected]:5060

[6002]

type=aor

max_contacts=1

以上內容是建立了兩個pjsip的endpoint。注意transport-udp標籤,其監聽的是5070埠,也就是pjsip監聽的是5070埠,而chan_sip預設情況向監聽的是5060,兩者不能重複。

/etc/asterisk/trunk_pjsip.conf中建立trunk,示例內容如下:

[mytrunk]

type=endpoint

transport=transport-udp

context=from-external

disallow=all

allow=ulaw

allow=alaw

outbound_auth=mytrunk_auth

aors=mytrunk

[mytrunk]

type=aor

contact=sip:192.168.2.20:5070

[mytrunk]

type=identify

endpoint=mytrunk

match=192.168.2.20

這樣pjsip就可以接受來自192.168.2.20的呼叫了,否則,在預設的情況下pjsip是不接受匿名呼叫的;另一種方法是建立anonymous的endpoint,這樣會帶來安全隱患。

使用Zabbix監控Asterisk

asterisk部署完成後,可以使用zabbix對其進行監控。1 在asterisk所在的伺服器上部署zabbix的agent,並編寫配置檔案zabbix agentd.conf asterisk userparameter iax.status,sudo usr sbin asterisk rvv...

使用kamailio 實現asterisk負載均衡

通過使用kamailio的dispatcher.so 模組實現astersik的負載均衡 配置如下 1 dispatcher.list group sip addresses of your units 1 sip 10.1.2.3 5060 1 sip 10.1.2.4 5060 1 sip 10...

Centos 5 3上Asterisk安裝及配置

asterisk 安裝及配置 以下沒有特殊註明,所有操作都是在命令列中 前期準備 安裝依賴軟體和環境 yum y upgrade 更新軟體列表和部分軟體 yum y update 公升級現有軟體 yum install kernel devel 安裝devel 版的核心,asterisk 安裝需要 ...