pjsip自动外呼服务搭建流程-centos 7.2

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的使用

一、简单点对点

 
  1. 启动: $ ./pjsua  
  2. 呼叫:$ ./pjsua sip:192.168.0.10  
  3. 默认端口:5060  


二、向服务器注册

单账户注册:linux

 
  1. $ ./pjsua --id sip:alice@example.com --registrar sip:example.com   
  2. --realm * --username alice --password secret  


多账户注册:
 bash

 
  1. $ ./pjsua --id sip:bob@provider1.com --registrar sip:provider1.com   
  2. --realm provider.1.com --username bob --password secret   
  3. --next-account   
  4. --id sip:bob@provider2.com --registrar sip:provider2.com   
  5. --realm provider2.com --username bob --password secret  

三、自动应答并播放wav文件

 
  1. $ pjsua --play-file PROMPT.WAV --auto-answer 200 --auto-play --auto-loop   
  2. --max-calls 100  


四、从文件加载:

文件(alice.cfg)内容:服务器

 
  1. # This is a comment in the config file.  
  2. --id sip:alice@example.com  
  3. --registrar sip:example.com  
  4. --realm *  
  5. --username alice  
  6. --password secret  

 

使用:
 app

C/C++ Code复制内容到剪贴板

$ ./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

转载于:https://www.cnblogs.com/kk123/p/9046384.html