安装 Asterrisk 服务器
依赖
安装Asterisk之前, 您需要安装以下依存关系 :
- wget
- gcc
- g++
- ncurses-devel
- libxml2-devel
- sqlite-devel
- libsrtp-devel
- libuuid-devel
- openssl-devel
pkg-配置
如需安装libsrtp, 请遵循下面步骤:
cd /usr/local/src/
wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
tar zxvf srtp-1.4.2.tgz
cd /usr/local/src/srtp
./configure CFLAGS=-fPIC --prefix=/usr/local/lib
make && make install
你也需要安装PJSIP, 你可以从如下链接 下载. 一旦资源目录被提取:
- Change to the pjproject source directory:
# cd pjproject
- run:
# ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG'
- Build and install pjproject:
# make dep
# make
# make install
- Update shared library links:
# ldconfig
- Verify that pjproject is installed:
# ldconfig -p | grep pj
- The result should be:
libpjsua.so (libc6,x86-64) => /usr/lib/libpjsua.so
libpjsip.so (libc6,x86-64) => /usr/lib/libpjsip.so
libpjsip-ua.so (libc6,x86-64) => /usr/lib/libpjsip-ua.so
libpjsip-simple.so (libc6,x86-64) => /usr/lib/libpjsip-simple.so
libpjnath.so (libc6,x86-64) => /usr/lib/libpjnath.so
libpjmedia.so (libc6,x86-64) => /usr/lib/libpjmedia.so
libpjmedia-videodev.so (libc6,x86-64) => /usr/lib/libpjmedia-videodev.so
libpjmedia-codec.so (libc6,x86-64) => /usr/lib/libpjmedia-codec.so
libpjmedia-audiodev.so (libc6,x86-64) => /usr/lib/libpjmedia-audiodev.so
libpjlib-util.so (libc6,x86-64) => /usr/lib/libpjlib-util.so
libpj.so (libc6,x86-64) => /usr/lib/libpj.so
Asterisk
为了安装Asterisk的13.7.0, 你可以直接从下面链接下载资源 下载.
导出Asterisk
tar zxvf asterisk*
输入Asterisk 目录
cd ./asterisk*
运行Asterisk 配置脚本
./configure --with-pjproject --with-ssl --with-srtp
运行Asterisk 菜单选择工具
make menuselect
在菜单, 到资源选项确保res_srtp 是激活的。如果是 3 x's 到res_srtp, 就说明strp库有问题, 你必须重新安装它。保存配置(按 X). 你可以看到在res_pjsip 行前的星星。
编译和安装Asterisk的 :
make && make install
如果你需要演示数据, 您可以安装配置。如果你需要安装Asterisk启动脚本, 可运行“配置”。
DTLS 认证
然后你要安装DTLS认证
mkdir /etc/asterisk/keys
进入Asterisk脚本目录 :
cd /asterisk*/contrib/scripts
创建DTLS认证(用你的IP 地址或dns名字替换pbx.mycompany.com, 用你的公司名替换我的超级公司)
./ast_tls_cert -C pbx.mycompany.com -O "My Super Company" -d /etc/asterisk/keys
配置Asterisk服务器
对于WebRTC技术, 很多需要的设置必须是对等设置。全局设置不是很好。默认情况下, Asterisk的配置文件位于 /etc/asterisk/。通过编辑http.conf, 并确保下面的行是取消注释的 :
;http.conf
[general]
enabled=yes
bindaddr=127.0.0.1 ; Replace this with your IP address
bindport=8088 ; Replace this with the port you want to listen on
接下来, 编辑sip.conf。该WebRTC技术需要加密, AVPF和冰支持是启用的。在大多数情况下, 直接媒体应禁用。此外, 根据客户WebRTC技术, 传输需要被列为“WS" 来允许WebSocket连接。所有这些配置行应该在peer自己下面;全局范围内设置这些配置行可能无法正常工作 :
;sip.conf
[general]
realm=127.0.0.1 ; Replace this with your IP address
udpbindaddr=127.0.0.1 ; Replace this with your IP address
transport=udp
[1060] ; This will be WebRTC client
type=friend
username=1060 ; The Auth user for SIP.js
host=dynamic ; Allows any host to register
secret=password ; The SIP Password for SIP.js
encryption=yes ; Tell Asterisk to use encryption for this peer
avpf=yes ; Tell Asterisk to use AVPF for this peer
icesupport=yes ; Tell Asterisk to use ICE for this peer
context=default ; Tell Asterisk which context to use when this peer is dialing
directmedia=no ; Asterisk will relay media for this peer
transport=udp,ws ; Asterisk will allow this peer to register on UDP or WebSockets
force_avp=yes ; Force Asterisk to use avp. Introduced in Asterisk 11.11
dtlsenable=yes ; Tell Asterisk to enable DTLS for this peer
dtlsverify=no ; Tell Asterisk to not verify your DTLS certs
dtlscertfile=/etc/asterisk/keys/asterisk.pem ; Tell Asterisk where your DTLS cert file is
dtlsprivatekey=/etc/asterisk/keys/asterisk.pem ; Tell Asterisk where your DTLS private key is
dtlssetup=actpass ; Tell Asterisk to use actpass SDP parameter when setting up DTLS
在sip.conf和rtp.conf文件, 您还需要添加或取消注释行 :
icesupport = true
stunaddr = stun.l.google.com:19302
最后, 建立extensions.conf文件 :
;extensions.conf
[default]
exten => 1060,1,Dial(SIP/1060) ; Dialing 1060 will call the SIP client registered to 1060
配置Odoo VOIP
在Odoo, 配置应该在用户的偏好来实现。
该SIP登录/浏览器的分机号是您先前在sip.conf文件中配置的号码。在我们的例子, 1060的SIP密码就是您在sip.conf文件中选择的保密号。你的办公室的电话的分机不是必填字段, 但如果你想从Odoo转移您的呼叫转移到外部电话就需啊在sip.conf文件还配置它。
在“PBX配置”, 你可以做销售设置。需要在http.conf内配置IP. WebSocket上设置ws://127.0.0.1:8088/ws. “127.0.0.1”部分需要定义与之前相同的IP, “8088”是http.conf的端口。