pjsua帮助手册(中文)

原文地址 : 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c/c++笔试面试题(4)

c/c笔试面试题&#xff08;4&#xff09; 2007-11-08 16:46 749人阅读 评论(0) 收藏 举报Sony笔试题 1&#xff0e;完成下列程序 * *.*. *..*..*.. *...*...*...*... *....*....*....*....*.... *.....*.....*.....*.....*.....*..... *......*......*......*......*......*...…

js date转成 时间字符串_秋招快要开始了,前端笔试中的坑位-JS隐式转换问题

我们在写笔试题的时候&#xff0c;经常碰到涉及隐式转换的题目&#xff0c;例如"1" 2 obj 1 [] ![] [null] false 和 叫做严格运算符&#xff0c;对象类型指向地址相同或原始类型&#xff08; 数值、字符串、布尔值&#xff09;值相同&#xff1b;叫做相等运算…

Java中快速处理集合_简洁又快速地处理集合——Java8 Stream(上)

作者&#xff1a;Howie_Y&#xff0c;系原创投稿主页&#xff1a;www.jianshu.com/u/79638e5f0743Java 8 发布至今也已经好几年过去&#xff0c;如今 Java 也已经向 11 迈去&#xff0c;但是 Java 8 作出的改变可以说是革命性的&#xff0c;影响足够深远&#xff0c;学习 Java …

FTP服务器和客户端源代码编写问题(ftp server client source)

最近关注FTP程序源代码的朋友非常多&#xff0c;这里简单说明一下。 其实FTP也就是普通的Socket程序&#xff0c;只是需要按照FTP协议(RFC959, 1635?可能我记错了)去做&#xff0c;也就是每个消息有固定的结构的&#xff0c;比如头3个字节必须是200,201,300,400之类的数字表示…

eclipse编译java项目class文件_动态编译 Java 代码以及生成 Jar 文件

导读&#xff1a; 最近在看 Flink 源码的时候发现到一段实用的代码&#xff0c;该代码实现了 java 动态编译以及生成 jar 文件。将其进行改进后可以应用到我们的平台上&#xff0c;实现在平台页面上编写 java 代码语句&#xff0c;提交后由后台进行编译和打成 Jar 包再上传到指…

Android初级开发第七讲--特效和数据传递处理

博客出自&#xff1a;http://blog.csdn.net/liuxian13183&#xff0c;转载注明出处&#xff01; All Rights Reserved ! 大家好&#xff0c;相信大家对iphone上的特效早有耳闻&#xff0c;特效不仅给人以炫丽的感觉&#xff0c;也给人以性能优越的感觉&#xff1b;但万丈高楼平…

java查看日志命令_[Java教程]【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo...

[Java教程]【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo0 2017-11-14 12:00:29linux查看日志文件内容命令tail、cat、tac、head、echotail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C,---------------------------linux 如何…

pjsip简介1

如果你对SIP/VoIP技术感兴趣,哪希望你不要错过:),如果你对写出堪称优美的Code感兴趣,那么你也不可错过:)这期间我想分析一下一个实际的协议栈的设计到实现的相关技术,算是自己的一个学习经历记录.最初选择这个库做分析的原因很简单,文档齐全:),其它良好的特征则是慢慢发现的:) …

Dx11DemoBase 基类(三) 实例应用 【已实现】【附带源码】

现在我已经到哪了? 读书时&#xff0c;尤其是技术知识书籍&#xff0c; 我一般会担忧自己是否陷得太深&#xff0c; 细节关注得太多&#xff0c; 而忘了整体的过程&#xff1b; 一直以来对Direct3D 很畏惧&#xff0c; 因为太多函数和细节&#xff1b;现在我必须暂缓下&#x…

修改 decimal 默认值为0.00 sql_被经理邀请去“爬山”,只是因为我写错了一条SQL语句?...

作者&#xff1a;isysc1链接&#xff1a;https://juejin.im/post/5f06a2156fb9a07e5f5180df来源&#xff1a;掘金前戏SQL 写的妙&#xff0c;涨薪呱呱叫&#xff01;新来的实习生小杨写了一条 SQL 语句SELECT wx_id from user WHERE wx_id 2当小杨迫不及待准备下班回家的时候&…

java课工场面向对象题p题库_面向对象设计(Java)-题库课稿.doc

面向对象程序设计 java 题库抽题规范:此题库共75道题,抽8道作为期末考试题。其中,易8道,较易33道,较难18道,难16道.按题型,第一大题抽4道&#xff0c;每道10分&#xff1b;第二大题抽2道&#xff0c;每道10分&#xff1b;第三大题抽1道&#xff0c;每道20分&#xff1b;第四大题…

opensips简介

1、引入 随着通信IP化的发展&#xff0c;IP传输的高带宽、低成本等优势使得越来越多的企业、电信运营商加快建设基于IP的各种通信应用。在通信协议IP化发展中&#xff0c;SIP协 议毫无争议地成为各大电信运营商构建其未来网络的基础协议&#xff0c;越来越多的SIP软件产品也不…

JS中关于clientWidth、offsetWidth、scrollWidth

网页可见区域宽&#xff1a; document.body.clientWidth;网页可见区域高&#xff1a; document.body.clientHeight;网页可见区域宽&#xff1a; document.body.offsetWidth (包括边线的宽);网页可见区域高&#xff1a; document.body.offsetHeight (包括边线的宽);网页正文全…

shell 执行失败重试_Uipath 机器人总是运行失败怎么办?

要知道为什么RPA机器人容易失败&#xff0c;首先了解下它和常规的应用系统有哪些区别。常规应用系统&#xff0c;就像程序员自己创造了一个世界、一个域&#xff0c;在这个世界里创造它的人就是主宰。出现BUG的风险是相对可控的&#xff0c;顶多是功能用不了。而RPA项目&#x…

c mysql安装教程视频_MySQL安装教程 - Windows安装MySQL教程 - 小白式安装MySQL教程 - 青衫慧博客...

版权声明本文转发自旧站点萧瑟云日志&#xff0c;近期考虑准备将旧站进行关闭(没有精力维护)&#xff0c;部分文章将会迁移至本站。文章发表于&#xff1a;2017-10-28 12:32:03前言上次给大家带来了SQL Server的小白式安装教程&#xff0c;这次再次带来一个MySQL的小白式安装教…

PJSIP UA分析(1)--PJSUA主函数

1 intmain(intargc, char*argv[])2 {3 do{4 app_restart PJ_FALSE; //PJ_FALSE是一个宏&#xff0c;一旦用户调用pjsua可执行文件进入该循环&#xff0c;那么默认只执行一次退出5 //如果需要再次循环&#xff0c;那么在下面函数中…

锁定表头和固定列(Fixed table head and columns)

前段时间需要这个功能&#xff0c;但是找了很多都不能完美的实现&#xff0c;不是只能锁定表头&#xff0c;就是浏览器兼容问题什么的&#xff0c;在此就自己做了一个锁定表头和列的js方法&#xff0c;依赖于JQuery。 因为方法很简单&#xff0c;就未封装成插件的形式&#xff…

游戏详细设计说明书_宜家的说明书设计脑洞太大了!

平常我们看到的说明书是像这样纯文字解说的或者是规范的文字配图这些说明书一般都是注重文字的上表达而大家熟悉的家居品牌宜家将说明书创意玩出了新境界&#xff01;↓↓↓这不&#xff0c;最近由于全球疫情严峻期间宜家的全新说明书手册搜罗了各种纸上游戏意为帮助大家打发无…

centos删除php_centos如何卸载php

查看php版本php -v查看php相关软件包#rpm -qa|grep php(视频教程推荐&#xff1a;linux视频教程)提示如下&#xff1a;#php-pdo-5.1.6-27.el5_5.3#php-mysql-5.1.6-27.el5_5.3#php-xml-5.1.6-27.el5_5.3#php-cli-5.1.6-27.el5_5.3#php-common-5.1.6-27.el5_5.3#php-gd-5.1.6-27…

PJSIP UA分析(2)--PJSUA注册

1、一开始是回调使用的函数&#xff0c;例如on_incoming_call当来电话的时候&#xff0c;pjsip会自动去调用你写的这个函数&#xff0c;前提是你在初始化pjsua的时候设置了on_incoming_call &on_incoming_call&#xff0c; 2、error_exit退出应用所需要的操作 3、main函数…