pjsua帮助手册(中文)

来源:互联网 发布:阿里云矢量 编辑:程序博客网 时间:2024/06/05 06:21

转载自:http://blog.csdn.net/sukhoi27smk/article/details/19075599

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

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

0 0
原创粉丝点击