pjsip自動外呼服務搭建流程-centos 7.2


一、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.bz2

二、安裝步驟

解壓

cd /media/
tar -xjvf pjproject-2.7.2.tar.bz2

 進入安裝目錄源碼編譯

cd pjproject-2.7.2/
./configure
make dep
make
make install

 編譯完成后目錄如下

 

三、PJSUA的使用

1、簡單點對點

 
  1. 啟動: $ ./pjsua  
  2. 呼叫:$ ./pjsua sip:192.168.0.10  
  3. 默認端口:5060  


2、向服務器注冊

單帳戶注冊:

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


多帳戶注冊:
 

 
  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  

3、自動應答並播放wav文件

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


4、從文件加載:

文件(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  

 

使用:
 

C/C++ Code復制內容到剪貼板

$ ./pjsua --config-file alice.cfg

 

四、執行撥打測試

編寫test.cfg文件

cd /media/pjproject-2.7.2/pjsip-apps/bin
vi test.cfg

 注:123456為分機號碼   /  192.168.2.11 為注冊服務器ip  8823824 為分機密碼 ,編碼使用g711

--id sip:123456@192.168.2.11
--registrar sip:192.168.2.11
--realm *
--username 123456
--password 8823824
--add-codec G711
--null-audio
--auto-loop

寫好配置文件后執行,再輸入號碼撥打測試即可

cd /media/pjproject-2.7.2/pjsip-apps/bin
./pjsua-x86_64-unknown-linux-gnu --config-file test.cfg

 

光標處輸入需要撥打的手機號碼,格式如下

sip:手機號碼@192.168.2.11

 

五、編寫腳本,做計划任務做自動呼叫

直接貼執行腳本

注: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM