zoukankan      html  css  js  c++  java
  • iphone实时通话开源框架pjsip编译-pjsua运行测试

    iphone  实时通话开源框架中,pjsip 是一个比较精简的好框架,比linphone好编译多了。下面介绍下编译运行步骤。

    一、编译运行环境:

    iPhone :5.1.1, 系统:10.7.3 ,  xcode:  4.5.2

    二、准备工作:

    1、从pjsip官网下载tar的源代码,解压到本地;

    2、在目录/pjsip/pjlib/include/pj/中新建config_site.h,粘贴如下代码入内:

    #define PJ_CONFIG_IPHONE 1
    #include <pj/config_site_sample.h>

    三、编译pjsip:

    在终端中运行如下命令:

    $ cd /path/to/your/pjsip/
    $ ./configure-iphone
    $ make dep && make clean && make

    四、编译pjsua  Demo工程:

    打开目录pjproject/pjsip-apps/src/ipjsua中的项目,连接上你的iphone编译运行就行了。

    五、测试通话:

    1、VoIP服务器:

    可以使用MiniSipServer免费版,安装很简单,安装完后别忘记了新建账户(这里以100和101为例)。

    2、VoIP客户端:

    个人感觉X-lite 比较好用,不管是mac版本还是windows版本。登录账户成功后会显示注册成功.

    3、在iPhone的pjsip界面中登录账户101:

    +a
    Your SIP URL: (empty to cancel): sip:101@192.168.1.1
    URL of the registrar: (empty to cancel): sip:192.168.1.1
    Auth Realm: (empty to cancel): *
    Auth Username: (empty to cancel): 101
    Auth Password: (empty to cancel): 123456

    和100打电话:

    +b
    Enter buddy's URI: (empty to cancel): sip:100@192.168.1.1
    m
    Make call: 1

    打电话操作还可以简化:

    m
    Make call: sip:100@192.168.1.1
    另外还可以将相关信息添加到配置文中:

    在(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 [选项] [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:询问
  • 相关阅读:
    bzoj 1208: [HNOI2004]宠物收养所 (Treap)
    Bzoj 2431: [HAOI2009]逆序对数列 (DP)
    Bzoj 1055: [HAOI2008]玩具取名 (区间DP)
    线段树入门详解
    Bzoj 1087: [SCOI2005]互不侵犯King
    Bzoj 2748: [HAOI2012]音量调节 (DP)
    Bzoj 2752 高速公路 (期望,线段树)
    惨淡的模拟赛
    GSS4
    Bzoj 近期题目一句话题解
  • 原文地址:https://www.cnblogs.com/Rmeo/p/4157283.html
Copyright © 2011-2022 走看看