1、OS环境:
服务器:CentOS Linux release 7.2.1511 (Core)
声卡 :
[root@localhost ~]# lspci |grep -i audio 00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
安装包 :
首先去pjsip官网http://www.pjsip.org/download.htm下载安装包,我下载的是pjproject-2.7.2.tar.bz,下载地址:http://www.pjsip.org/release/2.7.2/pjproject-2.7.2.tar.bz2html
2、安装步骤
解压
cd /media/ tar -xjvf pjproject-2.7.2.tar.bz2
进入安装目录源码编译
cd pjproject-2.7.2/ ./configure make dep make make install
编译完成后目录以下
3、PJSUA的使用
一、简单点对点
- 启动: $ ./pjsua
- 呼叫:$ ./pjsua sip:192.168.0.10
- 默认端口:5060
二、向服务器注册
单账户注册:linux
- $ ./pjsua --id sip:alice@example.com --registrar sip:example.com
- --realm * --username alice --password secret
多账户注册:
bash
- $ ./pjsua --id sip:bob@provider1.com --registrar sip:provider1.com
- --realm provider.1.com --username bob --password secret
- --next-account
- --id sip:bob@provider2.com --registrar sip:provider2.com
- --realm provider2.com --username bob --password secret
三、自动应答并播放wav文件
- $ pjsua --play-file PROMPT.WAV --auto-answer 200 --auto-play --auto-loop
- --max-calls 100
四、从文件加载:
文件(alice.cfg)内容:服务器
- # This is a comment in the config file.
- --id sip:alice@example.com
- --registrar sip:example.com
- --realm *
- --username alice
- --password secret
使用:
app
$ ./pjsua --config-file alice.cfgide
4、执行拨打测试
编写test.cfg文件
cd /media/pjproject-2.7.2/pjsip-apps/bin vi test.cfg
注:123456为分机号码 / 192.168.2.11 为注册服务器ip 8823824 为分机密码 ,编码使用g711oop
--id sip:123456@192.168.2.11
--registrar sip:192.168.2.11
--realm *
--username 123456
--password 8823824
--add-codec G711
--null-audio
--auto-looppost
写好配置文件后执行,再输入号码拨打测试便可
cd /media/pjproject-2.7.2/pjsip-apps/bin ./pjsua-x86_64-unknown-linux-gnu --config-file test.cfg
光标处输入须要拨打的手机号码,格式以下测试
sip:手机号码@192.168.2.11ui
5、编写脚本,作计划任务作自动呼叫
直接贴执行脚本
注:1.wav为上传的一个语音文件,主要用于接通后播放这个录音文件,"sleep"表示间隔时间(单位:毫秒)
#!/bin/bash pkill -9 pjsua DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" /usr/bin/expect <<-EOF set timeout 30 spawn $DIR/pjsua --config-file $DIR/15094938.cfg --play-file $DIR/1.wav expect "*registration success*" send "sleep 5000\n" send "m\n" send "sip:1234567890@192.168.2.11\n" expect "*CONFIRMED*" #expect "*DISCONNECTED*" send "sleep 10000\n" send "quit\n" interact expect eof EOF
计划任务执行
00 08 * * * /mnt/test/15094938.sh|tee /mnt/test/logs/`date +\%d`d_15094938.log
参考资料:http://www.shuyangyang.com.cn/jishuliangongfang/qitajishu/2013-07-01/90.html
https://www.cnblogs.com/yangmingxianshen/p/7967040.html
http://codingstandards.iteye.com/blog/833695