原文地址 : http://www.pjsip.org/pjsua.htm

介绍

  PJSUA是一个开源的命令行SIP用户代理(软电话),用PJSIP协议,PJNATH,和PJMEDIA实现。 它虽然只有很简单的命令行界面,但是功能齐全。

SIP功能:

    多个id(帐户注册);多个呼叫;支持IPv6(在1.2版本中添加);PRACK(100rel,RFC 3262);UPDATE (RFC 3311);OPTIONS;呼叫保持;呼叫转移;简单的PIDF和XPIDF的支持(订阅/通知,RFC 3265,3856,3863);自定义存在状态文本(RPID,RFC 4480);支持PUBLISH(RFC 3903);即时消息(消息)和消息组成指示(RFC 3428,3994);支持UDP,TCP和TLS传输;SIP服务器的DNS SRV(RFC 3263);带INFO的DTMF(RFC 2976);STUN(RFC 3489bis);AKA认证(开发中,RFC 3310,4169)。

媒体功能:

    多个并发调用;会议;支持Speex,iLBC,GSM,G711,G722,和L16编解码;宽带和超宽带编解码(Speex);通过Intel的IPP库支持更多编解码:AMR-WB,AMR-NB,G.722.1(Siren7),G.723.1,G.726,G.728,G.729A;立体声编解码(L16);WAV文件播放,流媒体和录制;支持RTCP协议;通话质量监测;RFC 2833;自动应答,自动播放文件,自动循环RTP;产生声音;AEC(Accoustic回声消除);自适应抖动缓冲器;自适应静音检测;PLC(包丢失隐藏);丢包模拟;每个RTP包中包含多个帧;支持SRTP(安全RTP)

NAT功能:

    ICE(互动式连接建立,最新ICE草案);STUN(最新的RFC3489双);TURN(最新草案);rport;SIP的TCP和TLS保持活动;自动检测和恢复SIP UDP地址的变更;自动检测ICE媒体传输的变化;

程序使用

用法:PJSUA [选项] [SIP的URL调用]一般选项:--config-file=file     读取从文件的配置/参数;--help         显示此帮助屏幕;--version         显示版本信息;日志记录选项:--log-file=fname    日志文件名(默认是stderr);--log-level=N       设置日志的最大级别为N(0(无)6(跟踪))(默认值= 5);--app-log-level=N   设置日志的最大水平为stdout显示(默认值= 4);--color             运用丰富多彩的日志(在Win32默认开启);--no-color          禁用丰富多彩的日志;--light-bg          使用白底黑字的颜色(默认是黑暗的背景);SIP帐户选项:--use-ims           开启和这个账号相关的3GPP/IMS设置;--use-srtp=N        是否使用SRTP?  0:不使用, 1:可选, 2:强制使用 (默认:0);--srtp-secure=N     SRTP 是否需要安全的SIP? 0:不需要, 1:tls方式, 2:sips (默认:1);--registrar=url     设置注册服务器的URL;--id=url            设置本地账户的URL--contact=url       选择性的覆盖联系人信息--contact-params=S  给指定的联系URI添加S参数--proxy=url         可选择的访问代理服务器的URL                     --reg-timeout=SEC   注册时间间隔 (default 55)--realm=string      设置域--username=string   设置用户名--password=string   设置密码--publish           发PUBLISH--use-100rel        需要可靠的临时响应(100rel)--auto-update-nat=N n为0或1来启用/禁用SIP遍历后面对称NAT(默认1)--next-cred         添加其他凭据SIP帐户控制:--next-account      添加更多的账户传输选项:--ipv6              使用IPv6--local-port=port   端口--ip-addr=IP        ip地址--bound-addr=IP     绑定端口--no-tcp            禁用TCP传输--no-udp            禁用UDP传输--nameserver=NS     域名服务器--outbound=url      设置全局代理服务器的URL,可以指定多次--stun-srv=name     设置STUN服务器主机或域名TLS选项:--use-tls           启用TLS传输(默认不开启)--tls-ca-file       指定TLS CA文件(默认为无)--tls-cert-file     指定TLS证书文件(默认为无)--tls-privkey-file  指定TLS私钥文件(默认值=无)--tls-password      指定TLS私钥文件密码(默认为无)--tls-verify-server 验证服务器的证书(默认=没有)--tls-verify-client 验证客户端的证书(默认=没有)--tls-neg-timeout   指定超时(默认值无)--tls-srv-name      指定TLS服务器名称为多宿主服务器(可选)媒体选项:--add-codec=name    手工添加编解码(默认开启所有)--dis-codec=name    禁用某个编解码--clock-rate=N      覆盖会议桥时钟频率--snd-clock-rate=N  覆盖音频设备时钟频率--stereo            音频设备及会议桥开通立体声模式--null-audio        使用NULL音频设备--play-file=file    在会议桥中注册WAV文件--play-tone=FORMAT  向会议桥注册音调,格式是'F1,F2,ON,OFF',其中F1,F2为频率,ON,OFF=on/off ,可以指定多次。--auto-play         自动播放文件(仅来电)--auto-loop         自动循环传入RTP到传出RTP--auto-conf         自动加入会议--rec-file=file     录音文件(扩展名可以使.wav 或者 .mp3)--auto-rec          自动记录通话--quality=N         指定媒介质量(0-10,默认6)--ptime=MSEC        覆盖编解码器ptime的毫秒的--no-vad            停用VAD方案/沉默探测器(默认启用VAD)--ec-tail=MSEC      设置回波抵消尾长度(默认值256)--ec-opt=OPT        选择回波抵消算法(0 =默认,1 = SPEEX,2 =抑制)--ilbc-mode=MODE    设置iLBC语音编解码器模式(20或30,默认是30)--capture-dev=id    音频捕获的设备ID(默认值= -1)--playback-dev=id   音频播放设备ID(默认值= -1)--capture-lat=N     音频捕获延迟(毫秒,默认值= 100)--playback-lat=N    音频播放延迟(毫秒,默认值= 100)--snd-auto-close=N  闲置N秒后自动关闭音频设备指定n = -1(默认)禁用此功能。指定即时关闭不使用时,N = 0。--no-tones          禁用听见声音--jb-max-size       指定最大值抖动缓冲(帧,默认= 1)媒体传输选项:--use-ice           使用ICE(默认:不使用)--ice-no-host       禁用ICE主机候选(默认:no)--ice-no-rtcp       禁用RTCP组件(默认:no)--rtp-port=N        RTP尝试端口基数(默认4000)--rx-drop-pct=PCT   Drop PCT percent of RX RTP (for pkt lost sim, default: 0)--tx-drop-pct=PCT   Drop PCT percent of TX RTP (for pkt lost sim, default: 0)--use-turn          Enable TURN relay with ICE (default:no)--turn-srv          TURN服务器的域或主机名称--turn-tcp          使用TCP连接到TURN服务器(默认:no)--turn-user         TURN用户名--turn-passwd       TURN密码好友名单(可以是多个):--add-buddy url     添加指定的URL到好友列表中用户代理选项:--auto-answer=code  自动接听来电的应答代码(如200)--max-calls=N       最大并发呼叫数(默认:4,最大:255)--thread-cnt=N      工作线程数目(默认:1)--duration=SEC      设置最大通话时间(默认是:没有限制)--norefersub        转接通话时禁止事件订阅--use-compact-form  最小的SIP消息大小--no-force-lr       允许使用严格路由--accept-redirect=N 指定如何处理呼叫重定向响应(3XX)。0:拒绝,1:自动(默认),2:询问

命令介绍

呼叫命令
m    产生一个呼叫
M    向同一个地址产生多个呼叫
a    响应呼叫(发送100-699)
h    挂断当前呼叫(ha为挂断所有)
H    呼叫保持
v    恢复通话(解除呼叫保持)
U    发送UPDATE请求
],[ 呼叫翻页(前一个/下一个)
x    呼叫转移
X    呼叫替换
#    发送DTMF(RFC238)
*    发送DTMF(SIP INFO)
dq    显示当前通话质量
S    给远端主机发送任意请求即时通讯
+b    添加好友
-b  删除好友
i      发送即时消息
s    订阅(好友)当前状态
u    取消订阅(好友)当前状态
t      在线状态切换
T     设置在线状态媒体命令
cl  列出端口
cc  连接端口
cd  断开端口
V      调节音量
Cp  优先编码器帐户
+a  添加
-a  删除
!a  修改
rr  重新注册
ru  反注册
>      下一个(循环)
<      前一个(循环)状态和设置
d    显示状态
dd    显示状态详情
dc    显示配置
f    保存配置其它命令:
q                退出
L                重新加载
sleep MS        暂停键盘输入(毫秒)
echo [0|1|TXT]    控制echo命令(0:禁用,1:启用,TXT :回显)
n                探测NAT网络

PJSUA的使用

1、简单点对点
  启动: $ ./pjsua
  呼叫:$ ./pjsua sip:192.168.0.10
  默认端口:5060
2、向服务器注册

单帐户注册:
  $ ./pjsua --id sip:alice@example.com --registrar sip:example.com \
  --realm * --username alice --password secret
多帐户注册:
  $ ./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

3、自动应答并播放wav文件:
  $ pjsua --play-file PROMPT.WAV --auto-answer 200 --auto-play --auto-loop \
  --max-calls 100
4、从文件加载:

文件(alice.cfg)内容:

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

使用:
$ ./pjsua --config-file alice.cfg

好,就这些了,希望对你有帮助。

pjsua帮助手册(中文)相关推荐

  1. UE4手册中文翻译速查表

    虚幻中国-UE4 用户文档4.6 首页- 资讯- UE4专区- UE3(UDK)专区- 游戏- 招聘- 开发专区- 博客Blog- 论坛BBS- 专题 入门指南 编辑器手册 编程指南 示例和教程 UE ...

  2. opencv2计算机视觉编程手册(中文)pdf

    opencv2计算机视觉编程手册(中文).pdf高清电子版,非常好的资料,需要的可以下载使用! 下载地址:http://download.csdn.net/download/a5820736/7568 ...

  3. linux获取完整的man(manpages)linux参考手册/中文man的下载和使用/获取buildin 命令的完整帮助文档/多种man手册/man着色colorful man

    文章目录 获取完整的man(manpages)linux参考手册/中文man的下载和使用/获取buildin 命令的完整帮助文档 搜索manpages 相关package 安装扩展man手册 refe ...

  4. 欧姆龙r88d系列服务器说明书,欧姆龙R88D/R88M选型使用手册(中文)

    资料介绍: 欧姆龙,OMRON,R88D/R88M选型使用手册(中文) R88D-KP02H-Z R88D-WN01L-ML2 R88D-KN150H-ECT-Z R88D-GT01H-Z R88D- ...

  5. Spring Framework 开发参考手册中文(在线HTML)

    '原文:http://blog.csdn.net/zfrong/article/details/3971722 Spring Framework 开发参考手册中文(在线HTML) Spring Fra ...

  6. 实用卷积神经网络 运用python pdf_解析卷积神经网络—深度学习实践手册 中文pdf高清版...

    解析卷积神经网络-深度学习实践手册从实用角度着重解析了深度学习中的一类神经网络模型--卷积神经网络,向读者剖析了卷积神经网络的基本部件与工作机理,更重要的是系统性的介绍了深度卷积神经网络在实践应用方面 ...

  7. libmodbus官方手册中文翻译

    最近做libmodbus相关内容,因为中文没有libmodbus各个函数的详细解释,所以在此把要用的libmodbus的官方手册包括所有的函数都翻译整理一下,给自己和大家们学习,欢迎大家交流指正.手册 ...

  8. 三菱fb功能块手册中文_技成周报33期 | 三菱、西门子全系列这34个问题值得一看!...

    私信小编 " 电工全套 " 获取 三菱+西门子+电工全套电子学习资料(软件.案例.文档.电子书)! 本周学员咨询的常见问题已经汇总好啦,快来看看你的疑惑解答了吗?如果你有其他解决方 ...

  9. tmux手册中文翻译

    man tmux可以看到最详细的tmux介绍,本文翻译自tmux手册. tmux全名叫"terminal multiplexer",终端多路复用器. tmux的命令格式为: tmu ...

最新文章

  1. 耗时很长的服务器端事件中让客户端得到中间过程信息的合理解决方案
  2. java网页制作教程_JavaWeb程序设计任务教程
  3. 记录一次与大神们的关于GAN应用于NLP的讨论 (后续)
  4. 通过管道传输快速将MySQL的数据导入Redis(自己做过测试)
  5. android 模拟 cdrom,stm32 usb 虚拟一个cdrom
  6. python3123_使用sox和python,基于时间戳列表对音频区域进行静音处理
  7. java 竖线分割字符串的问题
  8. jdbc url链接加时区正确方法
  9. golang 锁的使用
  10. Atitit 算法原理与导论 目录 1. Attilax总结的有用算法 按用途分类 1 1.1. 排序算法 字符串匹配(String Matching) 1 1.2. 加密算法 编码算法 序列
  11. Java项目:Springboot图书馆图书借阅管理系统
  12. 西瓜创客的python_西瓜创客Python客户端
  13. 手机怎么打开谷歌官网页服务器地址,google手机地图打不开了的解决方法
  14. java 7 锁优化_自Java 6/Java 7开始,Java虚拟机对内部锁的实现进行了一些优化。这些优化主要包括锁消除(Lock Elision)、锁粗化(Lock Coarse...
  15. 为什么人人都爱康师傅
  16. 10分钟用Python制作恋爱日志
  17. 谁能给个orkut邀请啊~~
  18. boss直聘账号异常登不上_python爬虫Scrapy:爬取boss数据
  19. Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的
  20. Mysql的课外补充与进阶

热门文章

  1. SQLServer获取最后插入生成的ID 不同方法
  2. Python四大金刚之三:元组
  3. 2021-08-15
  4. 在循环里创建数据库连接,严重影响数据库性能
  5. 关于dialog的一点东西
  6. 社团管理信息系统C语言,学生社团信息管理系统.doc
  7. Creating a Pulsing Circle Animation
  8. 13 python初学(函数)
  9. idea .defaultMessage
  10. 如何开发一个异常检测系统:异常检测 vs 监督学习