PJSUA2基本代理操做。html
namespace pjnode
PJSUA2 API在pj命名空间内。git
#include <endpoint.hpp>算法
端点表示pjsua库的一个实例。json
在应用程序中只能有一个pjsua库的实例,所以这个类是一个单例。后端
公有函数 数组
默认构造函数。安全
virtual 析构函数服务器
获取lib版本。网络
实例化pjsua应用程序。
调用任何其余函数以前,应用程序必须调用此函数,以确保底层库被正确初始化。一旦这个函数返回成功,应用程序必须在退出以前调用libDestroy()。
获取库状态。
返回
lib状态。
使用指定的设置初始化pjsua。
全部设置都是可选的,而且在未指定配置时将使用默认值。
请注意,在调用此函数以前必须调用create()。
参数
全部初始化完成后调用此功能,以便库能够进行其余检查设置。
应用程序能够在init()以后的任什么时候间调用此函数。
注册外部或本lib的API建立的线程
请注意,每次调用此函数时,它将分配一些内存来存储线程描述,这只会在库被析构时被释放。
参数
检查这个线程是否已经注册到库中。
注意,此函数仅适用于lib主工做线程和使用libRegisterThread()注册的外部/ lib的API建立的线程。
中止全部工做线程。
对事件进行轮询pjsua,若是须要,能够阻塞调用者线程指定的最大间隔(以毫秒为单位)。
若是在pjsua_config结构中配置了工做线程(thread_cnt字段),应用程序一般不须要调用此函数,由于轮询将由这些工做线程完成。
若是启用了EpConfig :: UaConfig :: mainThreadOnly,而且从主线程调用此函数(默认主线程是调用libCreate()的线程),此函数还将扫描并运行列表中的任何待处理做业。
返回
投票期间处理的事件数。负值表示错误,应用程序能够以(status = -return_value)方式检索错误。
参数
销毁pjsua。
建议使用应用程序在调用此功能以前执行正常关闭(例如从SIP服务器注销账户,终止预订订阅和挂断主动调用),可是若是发现须要的活动会话,此功能将执行全部这些功能被终止 此功能将阻止几秒钟等待远程的回复。
若是没有跟踪它的状态,应用程序能够屡次安全地调用此函数。
参数
prmFlags - 组合pjsua_destroy_flag枚举。
检索指定状态代码的错误字符串。
参数
prmErr - 错误代码。
写一个日志消息。
参数
prmLevel - 日志详细程度(1-5)
prmSender - 日志发送方。
prmMsg - 日志消息。
写一个日志条目。
参数
e - 日志条目。
这是一个通用函数,用于验证是否给出了有效的SIP URL。
若是URL是有效的SIP / SIPS方案,则将返回PJ_SUCCESS。
返回
PJ_SUCCESS成功,或相应的错误代码。
参数
prmUri - URL字符串。
这是一个通用函数,用于验证是否给出了有效的URI。
与utilVerifySipUri()不一样,若是给出tel:URI,此函数将返回PJ_SUCCESS。
返回
PJ_SUCCESS成功,或相应的错误代码。
参考pjsua_verify_sip_url()
参数
prm Uri - URL字符串。
安排具备指定间隔的时间和用户数据。
当间隔通过时,将调用onTimer()回调。请注意,回调可能由不一样的线程执行,具体取决因而否启用了工做线程。
返回
令牌识别定时器,能够给予utilTimerCancel()。
参数
prmMsecDelay - 时间间隔,单位为毫秒。
prmUserData - 任意用户数据,被回馈给应用程序在回调。
void utilTimerCancel(Token prmToken )
使用指定的定时器令牌取消先前定时的定时器。
参数
prmToken - 从之前的utilTimerSchedule()调用返回的计时器令牌。
注册要由主线程执行的待处理做业的实用程序。
若是EpConfig :: UaConfig :: mainThreadOnly为false,该做业将当即执行。
参数
job - 工做类。
获取SSL / TLS后端支持的密码列表。
这是在该端点前面检测NAT类型的通用函数。
一旦成功调用,此函数将异步完成,并在onNatDetectionComplete()中报告结果。
在检测到NAT并调用回调后,应用程序能够经过调用natGetType()获取检测到的NAT类型。应用程序还能够在稍后再次调用natDetectType()来执行NAT检测。
注意,必须启用STUN才能成功运行此功能。
获取natDetectType()函数检测到的NAT类型。
natDetectType()已成功完成而且已调用onNatDetectionComplete()回调函数后,此函数将仅返回有用的NAT类型。
异常:若是在检测过程当中调用此函数,将引起PJ_EPENDING异常。
更新STUN服务器列表。
该libInit()必须在调用这个函数以前已被调用。
参数
prmServers - STUN服务器数组尝试。端点将尝试解析并联系每一个STUN服务器条目,直到找到可用的条目。每一个条目多是域名,主机名,IP地址,而且可能包含可选的端口号。例如:
prmWait - 指定函数是否应该阻塞,直到获得结果。在这种状况下,函数将在完成过程当中阻塞,而且在该函数返回以前调用onNatCheckStunServersComplete()。
辅助功能,用于解析和联系每一个STUN服务器条目(依次)以查找哪一个可用。
libInit()必须在调用这个函数以前被调用。
参数
prmServers - STUN服务器数组尝试。端点将尝试解析并联系每一个STUN服务器条目,直到找到可用的条目。每一个条目多是域名,主机名,IP地址,而且可能包含可选的端口号。例如:
prmWait - 指定函数是否应该阻塞,直到获得结果。在这种状况下,函数将在分辨率完成时阻塞,而且在该函数返回以前调用回调函数。
prmUserData - 任意用户数据要在回调中传回应用程序。
取消与指定令牌匹配的待决STUN分辨率。
异常:若是没有匹配的PJ_ENOTFOUND或其余错误。
参数
token - 令牌匹配。这个令牌给了natCheckStunServers()
notify_cb - 布尔值,用于控制是否为已取消的分辨率调用回调。当调用回调时,结果中的状态将被设置为PJ_ECANCELLED。
TransportId transportCreate( pjsip_transport_type_e type,const TransportConfig&cfg )
根据指定的设置建立并启动新的SIP传输。
返回
传输ID。
参数
type - 传输类型。
cfg - 传输配置。
枚举系统中当前建立的全部传输。
此函数将返回全部传输ID,而后应用程序能够调用transportGetInfo()函数来检索有关传输的详细信息。
返回
传输ID数组。
获取有关传输的信息。
返回
交通讯息
参数
id - 传输ID。
禁用传输或从新启用它。
默认状况下,传输始终在建立后启用。禁用传输不必定关闭套接字,它只会丢弃传入的消息,并阻止传输被用于发送传出的消息。
参数
id - 传输ID。
enabled - 启用或禁用传输。
关闭传输。
系统将等待全部事务关闭,同时防止新用户使用传输,并在其使用次数达到零时关闭传输。
参数
id - 传输ID。
启动此传输句柄的正常关闭程序。
在正常关闭启动后,传输不能得到新的参考。然而,当前使用传输的现有对象仍然可使用该传输来发送和接收数据包。全部的物品释放他们对这种传输工具的参考后,传输工具将当即销毁。
注意:从onTransportState()回调获取句柄后,应用程序一般会使用此API 。
参数
tp - 传输。
终止全部呼叫
这将启动全部当前活动呼叫的呼叫挂断。
将媒体添加到媒体列表。
参数
media - 要添加的媒体
从媒体列表中删除媒体。
参数
media - 要移除的媒体
检查媒体是否已添加到媒体列表。
返回
若是添加了媒体,则为真,不然为false。
参数
media - 媒体要检查
获取媒体端口的最大数量。
返回
会议桥中媒体端口的最大数量。
获取桥梁中当前活动媒体端口的数量。
返回
活动媒体端口的数量。
枚举全部媒体端口。
返回
Media端口列表。
获取音频设备管理器的实例。
返回
音频设备管理器。
获取视频设备管理器的实例。
返回
视频设备管理器。
枚举系统中全部支持的编解码器。
返回
编解码器信息数组。
更改编解码优先级。
参数
codec_id - 编解码器ID,它是惟一标识编解码器的字符串(如“speex / 8000”)。
priority - 编解码器优先级0-255,其中0表示禁用编解码器。
获取编解码器参数。
返回
编解码器参数。若是没有找到编解码器,则会抛出错误。
参数
codec_id - 编解码器ID。
设置编解码器参数。
参数
codec_id - 编解码器ID。
param - 编解码器参数设置。设置为NULL以将编解码器参数重置为库默认设置。
枚举全部支持的视频编解码器在系统中。
返回
视频编解码器信息数组。
更改视频编解码优先级
参数
codec_id - 编解码器ID,其是惟一标识编解码器的字符串(例如“H263 / 90000”)。有关详细信息,请参阅pjsua手册或pjmedia编解码器参考。
priority - 编解码器优先级0-255,其中0表示禁用编解码器。
获取视频编解码器参数
返回
编解码器参数。若是没有找到编解码器,则会抛出错误。
参数
codec_id - 编解码器ID。
设置视频编解码器参数。
参数
codec_id - 编解码器ID。
param - 编解码器参数设置。
void resetVideoCodecParam(const string&codec_id )
将视频编解码器参数重置为库默认设置。
参数
codec_id - 编解码器ID。
端点完成使用natDetectType()启动的NAT类型检测时的回调。
参数
prm - 包含检测结果的回调参数。
当Endpoint完成执行调用libInit()或调用natCheckStunServers()或natUpdateStunServers()时启动的STUN服务器检查时的回调。
参数
prm - 回调参数
传输状态发生变化时调用此回调。
参数
prm - 回调参数
计时器触发时回调。
参数
prm - 回调参数
应用程序可使用此回调来覆盖用于处理传入消息的账户。
最初,使用的账户将由lib自动计算。若是应用程序没有实现此回调,则该初始账户将被使用,或者今后回调返回时应用程序设置无效的账户。
请注意,目前须要账号分配的传入消息是INVITE,MESSAGE,SUBSCRIBE和未经请求的NOTIFY。这个回调能够在SIP事件自己的回叫以前被调用,即:来电,寻呼机,订阅或者非请求事件。
参数
prm - 回调参数
公共静态函数
检索端点的单例实例。
私有函数
私有静态属性
(49)
Endpoint *instance_
struct
EpConfig#include <endpoint.hpp>
端点配置。
从容器读取此对象。
参数
node - 容器来写值。
将此对象写入容器。
参数
node - 容器将值写入。
公有变量
UA配置
记录配置。
媒体配置
#include <endpoint.hpp>
记录配置,能够(可选)在调用Lib :: init()时指定。
公有函数
默认构造函数初始化为默认值。
从pjsua_logging_config构造。
生成pjsua_logging_config。
从容器读取此对象。
参数
node - 容器来写值。
将此对象写入容器。
参数
node - 容器将值写入。
公有变量
记录传入和传出的SIP消息?是!
输入详细级别。
价值5是合理的。
控制台的信息提示详细程度。
4比较合理
日志装饰。
若是应用程序但愿库写入日志文件,则可选日志文件名。
在打开日志文件时,给予pj_file_open()的附加标志。
默认状况下,该标志为PJ_O_WRONLY。应用程序能够在此设置PJ_O_APPEND,以便将日志附加到现有文件,而不是覆盖它。
默认值为0。
自定义日志记录器,若是须要。
当端点被销毁时,该实例将被端点销毁。
#include <endpoint.hpp>
包含由LogWriter写入的日志条目的数据。
公有变量
记录此消息的详细级别。
日志消息。
当前线程的ID。
写入该日志的线程的名称。
#include <endpoint.hpp>
用于编写日志消息的界面
应用程序能够继承此类并在LogConfig结构中提供它,以实现自定义日志写入工具。
公有函数
析构器
写一个日志条目。
#include <endpoint.hpp>
此结构描述媒体配置,这将在调用Lib :: init()时指定。
公有函数
默认构造函数初始化为默认值。
从pjsua_media_config构造。
导出
从容器读取此对象。
参数
node - 容器来写值。
将此对象写入容器。
参数
node - 容器将值写入。
公有变量
应用于会议桥的时钟速率。
若是值为零,将使用默认时钟速率(PJSUA_DEFAULT_CLOCK_RATE,默认为16KHz)。
打开声音设备时应用的时钟速率。
若是值为零,将使用会议桥时钟速率。
打开声音设备和会议桥时应用通道数。
指定音频帧ptime。
这里的值将影响声音设备和会议桥的每帧采样。指定较低的ptime一般会下降延迟。
默认值:PJSUA_DEFAULT_AUDIO_FRAME_PTIME
指定要在会议桥中建立的最大媒体端口数。
因为全部媒体终止于桥(呼叫,文件播放器,文件记录器等),所以该值必须足够大以支持全部这些。然而,值越大,执行的计算越多。
默认值:PJSUA_MAX_CONF_PORTS
指定媒体管理器是否应为RTP / RTCP套接字管理本身的ioqueue。
若是是,将建立ioqueue,而且至少建立一个工做线程。若是否,RTP / RTCP套接字将与SIP套接字共享相同的ioqueue,而且不须要工做线程。
一般应用程序会在这里说是,除非它想从一个线程运行全部的东西。
指定处理传入RTP数据包的工做线程数。
建议大多数应用程序使用值1。
媒体质量,0-10,根据本表:5-10:重采样使用大过滤器,3-4:重采样使用小过滤器,1-2:重采样使用线性。
Media质量也将speex编解码器的质量/复杂度设置为数字。
默认值:5(PJSUA_DEFAULT_CODEC_QUALITY)。
指定默认编解码器ptime。
默认值:0(编解码专用)
禁用VAD?
默认值:0(否(意味着启用VAD))
iLBC模式(20或30)。
默认值:30(PJSUA_DEFAULT_ILBC_MODE)
RTP数据包在TX方向丢弃的百分比(以模拟丢包)。
默认值:0
RTP分组在RX方向降低的百分比(以模拟分组丢失)。
默认值:0
回声消除器选项(请参阅pjmedia_echo_create())
默认值:0。
回波消除器尾部长度,以毫秒为单位。
将其设置为零将禁用回声消除。
默认值:PJSUA_DEFAULT_EC_TAIL_LEN
音频捕获缓冲区长度,以毫秒为单位。
默认值:PJMEDIA_SND_DEFAULT_REC_LATENCY
音频播放缓冲区长度,以毫秒为单位。
默认值:PJMEDIA_SND_DEFAULT_PLAY_LATENCY
抖动缓冲区初始预取延迟(msec)。
该值必须在下面的jb_min_pre和jb_max_pre之间。
默认值:-1(使用默认流设置,目前为150毫秒)
抖动缓冲区最小预取延迟(msec)。
默认值:-1(使用默认流设置,目前为60毫秒)
抖动缓冲区最大预取延迟(msec)。
默认值:-1(使用默认流设置,目前为240毫秒)
设置能够由抖动缓冲区msec容纳的最大延迟。
默认值:-1(使用默认流设置,目前为360毫秒)
指定声音设备在自动关闭以前的空闲时间(以秒为单位)。
使用值-1可禁用声音设备的自动关闭功能
默认值:1
指定是否可使用内置/本机预览。
在某些系统中,视频输入设备具备内置的显示设备预览窗口的功能。使用这种内置的预览是最好的,由于它消耗较少的CPU功率。若是内置预览不可用,库将执行输入的软件渲染。若是此字段设置为PJ_FALSE,将始终使用软件预览。
默认值:PJ_TRUE
#include <endpoint.hpp>
参数Endpoint :: onNatCheckStunServersComplete()回调。
公有变量
传递给Endpoint :: natCheckStunServers()函数的任意用户数据。
若是找到至少一个可用的STUN服务器,则将包含PJ_SUCCESS,不然将在操做期间包含最后一个错误代码。
产生成功结果的服务器名称。
若是状态成功,这将只包含值。
服务器IP地址和端口为“IP:端口”格式。
若是状态成功,这将只包含值。
#include <endpoint.hpp>
参数Endpoint :: onNatDetectionComplete()回调。
公有变量
检测过程的状态。
若是此值不是PJ_SUCCESS,则检测失败,而且nat_type字段将包含PJ_STUN_NAT_TYPE_UNKNOWN。
描述状态的文本,若是状态不是PJ_SUCCESS。
这包含检测程序检测到的NAT类型。
此值仅在状态为PJ_SUCCESS 时有效。
描述NAT类型的文字。
#include <endpoint.hpp>
公有变量
传入请求。
用于处理请求的账户索引。
输入后,将由lib选择的账户索引填写。应用程序可能会将其更改成另外一个值以使用另外一个账户。
#include <endpoint.hpp>
参数端点::的OnTimer()回调。
公有变量
传递给Endpoint :: utilTimerSchedule()函数的任意用户数据。
该定时器的间隔时间,以毫秒为单位。
#include <endpoint.hpp>
公有变量
传输句柄。
传输类型。
传输当前状态。
与传输状态相关的最后一个错误代码。
TLS传输信息,仅在传输类型为TLS时使用。
使用TlsInfo.isEmpty()来检查此信息是否可用。
公有函数
执行工做
virtual 析构函数
#include <endpoint.hpp>
SSL证书信息。
公有函数
构造函数
检查信息是否设置为空值。
返回
若是信息为空,则为真。
从pjsip转换
公有变量
证书版本。
序列号,字节数组,第一个索引是MSB。
通用名称。
一行主题,字段以斜杠分隔,例如:“CN = sample.org / OU = HRD”。
发行人通用名称。
一行主题,字段以斜杠分隔。
有效性开始
有效期结束。
标记有效日期/时间使用GMT。
主题备用名称扩展名。
原始证书为PEM格式,仅适用于远程证书。
#include <endpoint.hpp>
SSL证书类型和名称结构。
公有变量
名称类型。
名字。
#include <endpoint.hpp>
TLS传输信息。
公有函数
构造函数
检查信息是否设置为空值。
返回
若是信息为空,则为真。
从pjsip转换
公有变量
描述安全套接字链接是否创建,即:TLS / SSL握手已成功完成。
描述正在使用的安全套接字协议,请参见#pj_ssl_sock_proto。
使用按位或运算组合协议类型。
描述正在使用的密码套件,只有当链接创建时才会设置。
描述正在使用的密码名称,这仅在创建链接时才设置。
描述本地地址。
描述远程地址。
描述活动的本地证书信息。
使用SslCertInfo.isEmpty()来检查本地证书信息是否可用。
描述活动的远程证书信息。
使用SslCertInfo.isEmpty()来检查远程证书信息是否可用。
对等证书验证状态
基于上述字段verifyStatus的对等证书验证的错误消息(若是有的话)。
#include <endpoint.hpp>
SIP用户代理相关设置。
公有函数
使用默认值初始化的默认构造函数。
从pjsua_config构造。
导出到pjsua_config。
从容器读取此对象。
参数
node - 容器来写值。
将此对象写入容器。
参数
node - 容器将值写入。
公有变量
最大支持呼叫(默认值:4)。
此处指定的值必须小于编译时最大设置PJSUA_MAX_CALLS,默认值为32.要增长此限制,必须使用新的PJSUA_MAX_CALLS值从新编译库。
工做线程数。
一般,应用程序将但愿至少有一个工做线程,除非它要按期轮询库,在这种状况下,工做线程能够设置为零。
当这个标志非零时,来自主线程之外的线程的全部回调都将被发布到主线程,并由Endpoint :: libHandleEvents()函数执行。
这包括日志记录回调。请注意,只有当ThreadCnt设置为零而且主线程执行Endpoint :: libHandleEvents()时,这才有效。默认状况下,主线程是从调用Endpoint :: libCreate()的线程设置的,
默认值:false
SIP解析器子系统使用的名称服务器数组。
名称服务器的顺序指定优先级(首先使用名字服务器,除非它不可访问)。
可选用户代理字符串(默认为空)。
若是它是空的,则不会使用传出请求发送用户代理头。
STUN服务器数组尝试。
库将尝试解析并联系每一个STUN服务器条目,直到找到可用的条目。每一个条目多是域名,主机名,IP地址,而且可能包含可选的端口号。例如:
当在pjsua_config.nameserver字段中配置名称服务器时,若是条目不是IP地址,则首先将使用DNS SRV解析来解析名称服务器,若是失败,它将回退使用DNS A解析。即便该条目是域名,也能够指定端口号,以防DNS SRV分辨率回退到非标准端口。
当未配置名称服务器时,若是不是IP地址,则将使用pj_gethostbyname()解析条目。若是服务器未在标准STUN端口中侦听,则能够指定端口号。
这指定库启动应该忽略STUN服务器的故障。
若是设置为PJ_FALSE,若是没法解析或联系任何STUN服务器,库将拒绝启动。
默认值:TRUE
支持在SDP中添加和解析NAT类型,以协助故障排除。
有效值为:
默认值:1
处理包含留言等待指示(MWI)信息的未经请求的NOTIFY请求。
未经请求的MWI是来自NOTIFY请求,客户端不向SUBSCRIBE请求请求。
若是启用了此功能,库将响应200 / OK到NOTIFY请求,并将请求转发到Endpoint :: onMwiInfo()回调。
默认值:PJ_TRUE
PJSUA2帐户操做。
namespace pj
PJSUA2 API在pj命名空间内。
Typedefs
typedef std :: vector < AuthCredInfo > AuthCredInfoVector
SIP凭证数组。
#include <account.hpp>
公有函数
构造函数
析构器
请注意,若是该账户被删除,它也将删除PJSUA-LIB中的相应账户。
建立账户。
参数
cfg - 账号配置
make_default - 将其设为默认账户。
修改账户以使用指定的账户配置。
根据变动,这可能会致使账户的注销或从新注册。
参数
cfg - 要应用于账户的新账户配置。
检查此账户是否仍然有效。
返回
若是是的话。
将此设置为默认账户以在传入和传出请求与任何账户不匹配时使用。
返回
PJ_SUCCESS成功。
检查这个账户是不是默认账户。
默认账户将用于与任何其余账户不匹配的传入和传出请求。
返回
若是这是默认账户,则为true。
获取与此账户相关联的PJSUA-LIB账户ID或索引。
返回
整数大于或等于零。
获取账户信息。
返回
账户信息。
更新注册或执行注销。
若是要手动更新注册或从服务器注销,一般只须要调用此函数。
参数
renew - 若是是虚假的,这将开始注销过程。
设置或修改要发布给远程/现场订户的账户的在线状态。
若是此账户有服务器端存在订阅,和/或出站PUBLISH(若是此账户启用了存在发布),则会触发发送传出的NOTIFY请求。
参数
pres_st - 在线状态。
将此账户锁定/绑定到特定的传输/侦听器。
一般,应用程序不须要这样作,由于库将根据目的地自动选择传输。
当账户被锁定/绑定到特定的传输时,来自该账户的全部传出请求将使用指定的传输(包括SIP注册,对话(呼叫和事件订阅)以及诸如MESSAGE之类的对话外请求)。
请注意,传输ID也能够在AccountConfig中指定。
参数
tp_id - 传输ID。
发送NOTIFY以通知账户存在状态或终止服务器端存在订阅。
若是应用程序想要拒绝传入的请求,它应该将PresNotifyParam.state的参数设置为PJSIP_EVSUB_STATE_TERMINATED。
参数
prm - 发送NOTIFY参数。
const BuddyVector&enumBuddies() const
枚举账户的全部好友。
返回
好友列表。
在具备指定URI的好友列表中找到一个好友。
异常:若是没有找到好友,PJ_ENOTFOUND将被抛出。
返回
指向好友的指针
参数
uri - 好友URI。
buddy_match - 好友比赛算法
应用程序不能使用此功能。
应用程序不能使用此功能。
通知来电时的应用程序。
参数
prm - 回调参数
注册或注销登记时通知申请。
请注意,这只会通知初始注册和注销。一旦注册会话处于活动状态,后续刷新将不会致使此回调被调用。
参数
prm - 回调参数
注册状态发生变化时通知申请。
应用程序可能会查询账户信息以获取注册详细信息。
参数
prm - 回调参数
收到传入SUBSCRIBE请求时的通知。
应用程序可使用此回调来受权传入的订阅请求(例如,若是请求被授予,请求用户许可)。
若是未实现此回调,则将接受全部传入的存在订阅请求。
若是这个回调被实现,应用程序有几个选择,如何处理传入的请求:
200和202之外的任何IncomingSubscribeParam.code将被视为200。
应用程序必须当即今后回调中返回(例如,在等待用户确认时不得阻止此回调)。
参数
prm - 回调参数
通知应用程序传入即时消息或寻呼机(即
MESSAGE请求)在呼叫上下文以外被接收。
参数
prm - 回调参数
通知应用程序关于传出寻呼机/即时消息的传送状态(即,
MESSAGE)请求。
参数
prm - 回调参数
通知应用程序打字指示。
参数
prm - 回调参数
关于MWI(消息等待指示)状态变化的通知。
能够在SUBSCRIBE请求的状态更改(例如,202 /接收到SUBSCRIBE被接收)或接收到NOTIFY reqeust时调用此回调。
参数
prm - 回调参数
公共静态函数
获取指定账户ID 的账户类。
返回
该账户实例或NULL,若是没有找到。
参数
acc_id - 要查找的账号
friends
#include <account.hpp>
账户的通话设置。
这将在AccountConfig中指定。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
指定如何向远程对等体提供呼叫保持。
有关更多信息,请参阅有关pjsua_call_hold_type的文档。
默认值:PJSUA_CALL_HOLD_TYPE_DEFAULT
指定如何对该账户中的全部会话使用对可靠临时响应(100rel / PRACK)的支持。
有关详细信息,请参阅pjsua_100rel_use枚举的文档。
默认值:PJSUA_100REL_NOT_USED
指定全部会话的会话计时器的用法。
有关可能的值,请参阅pjsua_sip_timer_use。
默认值:PJSUA_SIP_TIMER_OPTIONAL
指定最小会话计时器到期时间,以秒为单位。
不得低于90。默认值为90。
指定会话计时器的有效期,以秒为单位。
不能低于timerMinSE。默认值为1800。
#include <account.hpp>
账户配置。
公有函数
默认构造函数将使用默认值进行初始化。
由于这这将返回一个临时pjsua_acc_config实例,其内容仅做为长期有效AccountConfig结构仍然有效,没有修改完成它并无进一步toPj()函数调用。
对toPj()函数的任何调用都将使上一次调用返回的临时pjsua_acc_config的内容无效。
从pjsip初始化
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
账户优先级,用于控制匹配传入/传出请求的顺序。
数字越高意味着优先级越高,账户将首先匹配。
记录地址或AOR,即肯定账户的完整SIP URL。
该值可使用名称地址或URL格式,并将看起来像“sip:account @ serviceprovider”。
该字段是强制性的。
注册设置。
SIP设置。
通话设置。
存在设置。
MWI(留言等待指示)设置。
NAT设置。
媒体设置(适用于音频和视频)。
视频设置。
#include <account.hpp>
账户信息。
应用程序能够经过调用Account :: getInfo ()来查询账户信息。
公有函数
从pjsip数据导入。
公有变量
账号。
标记以指示这是不是默认账户。
账户 URI。
标记以判断此账号是否具备注册设置(reg_uri不为空)。
标记以判断此账号是否正在注册(有活动的注册会话)。
账户注册会话的最新到期时间间隔。
最后一次注册状态码。
若是状态码为零,则该账户当前未注册。任何其余值表示注册的SIP状态代码。
描述注册状态的字符串。
上次注册错误代码。
当状态字段包含指示注册失败的SIP状态代码时,上次注册错误代码包含致使故障的错误代码。在任何其余状况下,其值为零。
存在此账户的在线状态。
在线状态文本。
#include <account.hpp>
账户媒体配置(适用于音频和视频)。
这将在AccountConfig中指定。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
媒体传输(RTP)配置。
若是远程在媒体行中发送包含多个格式或编解码器的SDP应答,则只须要一个编解码器发送re-INVITE或UPDATE便可锁定要使用的编解码器。
默认值:True(是)。
指定是否为此账户启用流保持活动和使用非编解码器VAD机制的NAT打孔(请参阅PJMEDIA_STREAM_ENABLE_KA)。
默认值:False
指定是否应该为此账户使用安全媒体传输。
有效值为PJMEDIA_SRTP_DISABLED,PJMEDIA_SRTP_OPTIONAL和PJMEDIA_SRTP_MANDATORY。
默认值:PJSUA_DEFAULT_USE_SRTP
指定SRTP是否须要使用安全信令。
此选项仅在上述use_srtp选项不为零时使用。
有效值为:0:SRTP不须要安全信令1:SRTP须要安全传输,如TLS 2:SRTP须要安全的端到端传输(SIPS)
默认值:PJSUA_DEFAULT_SRTP_SECURE_SIGNALING
指定是否应在介质上使用IPv6。
不使用默认值。
#include <account.hpp>
账号 MWI(留言等待指示)设置。
这将在AccountConfig中指定。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
订阅消息等待指示事件(RFC 3842)。
另请参见UaConfig.mwiUnsolicitedEnabled设置。
默认值:FALSE
指定消息等待指示(RFC 3842)事件订阅的默认过时时间(以秒为单位)。
这不能为零。
默认值:PJSIP_MWI_DEFAULT_EXPIRES(3600)
#include <account.hpp>
账户的NAT(网络地址转换)设置。
这将在AccountConfig中指定。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
控制使用STUN进行SIP信令。
默认值:PJSUA_STUN_USE_DEFAULT
控制使用STUN进行媒体传输。
默认值:PJSUA_STUN_USE_DEFAULT
为媒体传输启用ICE。
默认值:False
设置ICE主机候选人的最大数量。
默认值:-1(最大未设置)
指定是否使用积极的提名。
默认值:True
对于控制代理(若是使用常规提名),在全部组件都具备有效对后,指定执行提名检查的延迟(与USE-CANDIDATE属性的链接性检查)。
默认值为PJ_ICE_NOMINATED_CHECK_DELAY。
对于受控代理,指定控制代理程序在控制代理程序发现全部组件中的全部链接检查已经完成后,要等待的时间(以毫秒为单位),以便控制代理完成将全部组件的指定标志设置为true的发送链接检查而且每一个组件至少有一个成功(但未被提名)检查。
此选项的默认值为ICE_CONTROLLED_AGENT_WAIT_NOMINATION_TIMEOUT。指定-1以禁用此定时器。
禁用RTCP组件。
默认值:False
在ICE协商以后始终发送re-INVITE / UPDATE,而无论默认的ICE传输地址是否改变。
当这被设置为False时,只有在更改默认ICE传输地址时才会发送re-INVITE / UPDATE。
默认值:是
在ICE中启用TURN候选。
在“DOMAIN:PORT”或“HOST:PORT”格式中指定TURN域名或主机名。
指定要用于TURN服务器的链接类型。
有效值为PJ_TURN_TP_UDP或PJ_TURN_TP_TCP。
默认值:PJ_TURN_TP_UDP
指定使用TURN服务器进行身份验证的用户名。
指定密码的类型。
目前这个值必须为0,表示密码中将会使用明文密码。
指定使用TURN服务器进行身份验证的密码。
此选项用于更新REGISTER请求的传输地址和Contact标头。
启用此选项后,库将根据REGISTER请求的响应跟踪公共IP地址。一旦检测到地址发生变化,它将取消注册当前的联系人,更新与从Via头获取的传输地址的联系,并向注册商注册一个新的联系人。若是配置了STUN,这也将更新UDP传输的公共名称。
另请参阅contactRewriteMethod字段。
默认值:TRUE
指定如何联系更新将与注册完成,若是contactRewriteEnabled启用。
该值是pjsua_contact_rewrite_method的位掩码组合。另请参见pjsua_contact_rewrite_method。
值PJSUA_CONTACT_REWRITE_UNREGISTER(1)是遗留行为。
默认值:PJSUA_CONTACT_REWRITE_METHOD(PJSUA_CONTACT_REWRITE_NO_UNREG | PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE)
若是使用TCP / TLS传输,请指定是否应将源TCP端口用做初始联系人地址。
请注意,配置名称服务器时,因为DNS SRV分辨率可能会产生不一样的目标地址,所以此功能将自动关闭。还有一些平台在链接时没法报告TCP套接字的本地地址。在这些状况下,此功能也将被关闭。
默认值:1(是)。
只要请求使用与以前的REGISTER请求相同的传输实例,该选项用于覆盖具备与REGISTER请求中的接口地址相同的接口地址的传出消息的Via头部的“已发送”字段。
默认值:TRUE
此选项控制SDP中的IP地址是否应替换为REGISTER响应的Via标头中的IP地址,仅在不使用STUN和ICE时替换。
若是值为FALSE(原始行为),则将使用本地IP地址。若是为TRUE,当STUN和ICE被禁用时,将使用在注册响应中找到的IP地址。
默认值:PJ_FALSE(否)
控制SIP出站功能的使用。
在RFC 5626中描述了SIP出站,以使得代理或注册商可以使用由UA发起的相同链接来将入站请求发送回UA。此功能在NAT-ed deployemtns中很是有用,所以默认状况下启用。
注意:目前SIP出站只能与TCP和TLS传输一块儿使用。若是使用UDP进行注册,则SIP出站功能将被默认忽略。
默认值:TRUE
指定此账户要使用的SIP出站(RFC 5626)实例ID。
若是为空,则将根据此代理的主机名生成实例ID。若是应用程序指定了此参数,则该值将不会使用双引号,如“<urn:uuid:00000000-0000-1000-8000-AABBCCDDEEFF”>。
默认值:空
指定SIP出站(RFC 5626)注册ID。
默认值为空,这将致使库自动生成一个合适的值。
默认值:空
为此账户设置周期性保持传输的间隔。
若是此值为零,则该账户将禁用保持活动。成功注册后,保密传输将发送到注册服务商的地址。
默认值:15(秒)
指定要发送的数据做为保活数据包。
默认值:CR-LF
#include <account.hpp>
账户存在配置。
这将在AccountConfig中指定。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
可选的自定义SIP标头将放在存在订阅请求中。
若是设置了此标志,则该账户的存在信息将被发布到该账户所属的服务器。
默认值:PJ_FALSE
指定客户端发布会话是否应该排队PUBLISH请求,若是还有另外一个PUBLISH事务尚待处理。
若是这设置为false,则若是还有另外一个PUBLISH事务仍在进行中,客户端将在PUBLISH请求上返回错误。
默认值:PJSIP_PUBLISHC_QUEUE_REQUEST(TRUE)
发送取消注册以前等待发布的交易在停机过程当中完成的最长时间。
在库关闭过程当中,库发送注册请求以注销该账户以前,尝试等待未发布(un-PUBLISH)完成。若是该值设置得过短,则可能在发布完成以前发送注销,致使发布请求失败。
值以毫秒为单位。
默认值:PJSUA_UNPUBLISH_MAX_WAIT_TIME_MSEC(2000)
可选PIDF元组ID,用于传出PUBLISH和NOTIFY。
若是未指定此值,将使用随机字符串。
#include <account.hpp>
账户注册配置
这将在AccountConfig中指定。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
这是要放入注册请求URI的URL,看起来像“sip:serviceprovider”。
若是须要注册,应该指定该字段。若是该值为空,则不会执行任何账户注册。
指定账户是否应在UA添加后当即注册。
应用程序能够将其设置为PJ_FALSE,并使用pjsua_acc_set_registration()手动控制注册。
默认值:True
可选的自定义SIP头要放在注册请求中。
将附加在注册请求的联系人头部中的附加参数。
这将附加在AccountSipConfig.contactParams以后;
这些参数应该以分号为前缀,全部的字符串必须被正确地转义。示例:“; my-param = X; another-param = Hi%20there”
可选的注册间隔,以秒为单位。
若是值为零,则将使用默认间隔(PJSUA_REG_INTERVAL,300秒)。
在注册失败时指定自动注册重试的间隔(包括传输问题引发的),秒钟。
设置为0以禁用自动从新注册。请注意,若是因为传输失败而发生注册重试,则首次重试将在firstRetryIntervalSec秒后进行。另请注意,间隔将稍微随机一些秒(在reg_retry_random_interval中指定),以免全部客户端同时从新注册。
另请参见firstRetryIntervalSec和randomRetryIntervalSec设置。
默认值:PJSUA_REG_RETRY_INTERVAL
这指定了第一次注册重试的间隔。
注册重试在retryIntervalSec中解释。请注意,这里的值也将随机化几秒钟(在reg_retry_random_interval中指定),以免全部客户端从新注册。
另请参阅retryIntervalSec和randomRetryIntervalSec设置。
默认值:0
这指定在reg_retry_interval和reg_first_retry_interval中指定的注册重试间隔中添加/减去的最大随机值,第二个。
这是有用的,以免全部客户端从新注册在同一时间。例如,若是注册重试间隔设置为100秒,并将其设置为10秒,则实际的注册重试间隔将在90到110秒的范围内。
另请参见retryIntervalSec和firstRetryIntervalSec设置。
默认值:10
在注册过时以前指定刷新客户端注册的秒数。
默认值:PJSIP_REGISTER_CLIENT_DELAY_BEFORE_REFRESH,5秒
指定注册失败后配置的账户的呼叫是否应该被丢弃,而且从新注册的尝试也失败。
默认值:FALSE(禁用)
指定在库关闭序列期间等待注销请求完成的最长时间。
默认值:PJSUA_UNREG_TIMEOUT
指定注册如何使用出站和账户代理设置。
这将控制此账户的REGISTER请求中是否显示以及哪些Route标题。该值是PJSUA_REG_USE_OUTBOUND_PROXY和PJSUA_REG_USE_ACC_PROXY位的位掩码组合。若是该值设置为0,REGISTER请求将不会使用任何代理(即它不会有任何Route头)。
默认值:3(PJSUA_REG_USE_OUTBOUND_PROXY | PJSUA_REG_USE_ACC_PROXY)
#include <account.hpp>
账户的各类SIP设置。
这将在AccountConfig中指定。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
凭证数组
若是须要注册,一般应至少指定一个凭证,以成功验证服务提供商。能够指定更多的凭证,例如当请求被路由集中的代理人挑战时。
用于传出请求的代理服务器数组。
每一个条目被翻译成一个路由URI。
要为此账户设置为联系人的可选URI。
建议将该字段留空,以便根据传输地址自动计算该值。
附加参数将附加在此账户的联系人头文件中。
这将影响表明此账户发送的全部SIP邮件中的联系人邮件,包括但不限于REGISTER,INVITE和SUBCRIBE请求或响应。
这些参数应该以分号为前缀,全部的字符串必须被正确地转义。示例:“; my-param = X; another-param = Hi%20there”
附加的URI参数将附加在此账户的联系人URI中。
这将影响表明此账户发送的全部SIP消息中的联系URI,包括但不限于REGISTER,INVITE和SUBCRIBE请求或响应。
这些参数应该以分号为前缀,全部的字符串必须被正确地转义。示例:“; my-param = X; another-param = Hi%20there”
若是设置了该标志,则认证客户端框架将在每一个初始请求中发送一个空的受权头。
默认是否。
指定要为每一个初始请求发送空受权头时使用的算法(见上文)
(可选)将此账户绑定到特定的传输。
这一般不是一个好主意,由于账户应该可以根据目的地使用任何可用的传输发送请求。可是某些应用程序可能但愿对传输使用有明确的控制权,所以在这种状况下能够设置此字段。
默认值:-1(PJSUA_INVALID_ID)
#include <account.hpp>
账号视频配置
这将在AccountConfig中指定。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
指定输入视频是否应显示为默认屏幕。
这适用于来电(INVITE),传入的re-INVITE和传入的UPDATE请求。
不管此设置如何,应用程序能够经过执行on_call_media_state()回调并使用pjsua_call_get_info()枚举媒体流来检测传入的视频。一旦传入视频被识别,应用程序能够检索与传入视频相关联的窗口,并使用pjsua_vid_win_set_show()显示或隐藏它。
默认值:False
指定输出视频在拨出电话时默认是否被激活,和/或当检测到输入视频时。
这适用于传入和传出呼叫,传入re-INVITE和传入UPDATE。若是设置不为零,一旦响应这些请求被发送(或接收),即将开始传出视频传输。
不管此设置的值如何,应用程序可使用pjsua_call_set_vid_strm()启动和中止传出视频传输。
默认值:False
指定视频窗口的标志。
该值是pjmedia_vid_dev_wnd_flag的位掩码组合。
默认值:0
指定此账户要使用的默认捕获设备。
若是vidOutAutoTransmit启用,则此设备将用于捕获视频。
默认值:PJMEDIA_VID_DEFAULT_CAPTURE_DEV
指定此账户使用的默认渲染设备。
默认:PJMEDIA_VID_DEFAULT_RENDER_DEV
速率控制方式。
默认值:PJMEDIA_VID_STREAM_RC_SIMPLE_BLOCKING。
上行/出站带宽。
若是这设置为零,视频流将使用编解码器最大比特率设置。
默认值:0(跟随编解码器最大比特率)。
流建立后要发送的关键帧数。
默认值:PJMEDIA_VID_STREAM_START_KEYFRAME_CNT
流建立后的关键帧发送间隔。
默认值:PJMEDIA_VID_STREAM_START_KEYFRAME_INTERVAL_MSEC
#include <account.hpp>
Buddy匹配算法的包装类。
默认算法是Buddy URI 中搜索令牌的简单子字符串查找,区分大小写。应用程序能够经过覆盖此类并在Account :: findBuddy()中指定其实例来实现本身的匹配算法。
公有函数
默认算法实现。
析构器
#include <account.hpp>
此结构包含onIncomingCall()账户回调的参数。
公有变量
为新呼叫分配的库呼叫ID。
来电INVITE请求。
#include <account.hpp>
此结构包含onIncomingSubscribe()回调的参数。
公有变量
服务器存在订阅实例。
若是应用程序延迟接受请求,则在调用Account :: presNotify()时须要指定此对象。
发件人URI。
传入的消息。
响应请求的状态代码。
默认值为200.应用程序可将此设置为其余最终状态代码以接受或拒绝请求。
答复请求的缘由。
SipTxOption txOption
与响应一块儿发送的附加数据(若是有)。
#include <account.hpp>
onInstantMessage()账户回调的参数。
公有变量
发件人从URI。
到请求的URI。
联系发件人的URI。
消息体的MIME类型。
消息体。
整个消息。
#include <account.hpp>
onInstantMessageStatus()账户回调的参数。
公有变量
与寻呼机传输相关联的令牌或用户数据。
目的地URI。
消息体。
交易的SIP状态码。
交易的缘由短语。
致使此回调的传入响应被调用。
若是因为超时或传输错误而致使事务失败,内容将为空。
#include <account.hpp>
onMwiInfo()账户回调的参数。
公有变量
MWI订阅状态。
整个消息缓冲区。
#include <account.hpp>
此结构包含onRegStarted()账户回调的参数。
公有变量
注册:true,注销为false。
#include <account.hpp>
此结构包含onRegState()账户回调的参数。
公有变量
注册业务状态。
接收到SIP状态码。
SIP缘由短语收到。
传入的消息。
下一个到期时间间隔。
#include <account.hpp>
onTypingIndication()账户回调的参数。
公有变量
发件人/来自URI。
到URI。
联系人URI。
bool 值表示发件人是否正在输入。
整个消息缓冲区。
#include <account.hpp>
presNotify()账户方法的参数。
公有变量
服务器存在订阅实例。
服务器呈现订阅状态设置。
或者指定状态字符串名称,若是状态不是“活动”,“待定”或“终止”。
若是新状态为PJSIP_EVSUB_STATE_TERMINATED,则可选择指定终止缘由。
若是新状态为PJSIP_EVSUB_STATE_TERMINATED,则指定NOTIFY请求是否应包含包含账户的状态信息的消息体。
使用NOTIFY请求发送的标题的可选列表。
PJSUA2 Media操做。
namespace pj
PJSUA2 API在pj命名空间内。
Typedefs
MediaFormat数组。
媒体端口对应于pjmedia_port。
音频媒体数组。
音调描述符数组。
音数位数。
音数位图。
音频设备信息数组。
窗口句柄。
此结构描述视频窗口信息。
视频设备信息数组。
编解码器信息数组。
编解码器参数,对应于pjmedia_codec_param。
编解码器特定参数的结构,其中包含name = value对。
编解码器特定参数将根据SDP'a = fmtp'属性中的标准(例如:RFC 3555)与SDP一块儿使用。
数组编解码器fmtp。
#include <media.hpp>
音频设备管理器。
公有函数
获取当前活动的捕捉声音设备。
若是没有建立声音设备,则该功能可能返回-1做为设备ID。
返回
捕获设备的设备ID。
获取捕获音频设备的AudioMedia。
返回
用于捕获设备的音频媒体。
获取当前正在播放的声音设备。
若是没有建立声音设备,则该功能可能返回-1做为设备ID。
返回
播放设备的设备ID。
获取扬声器/播放音频设备的AudioMedia。
返回
扬声器/播放设备的音频媒体。
选择或更改拍摄声音设备。
应用程序能够随时调用此功能来替换当前的声音设备。调用此方法不会更改声音设备的状态(打开/关闭)。请注意,此方法将覆盖由setSndDevMode()设置的模式。
参数
capture_dev - 捕获设备的设备ID。
选择或更改播放声音设备。
应用程序能够随时调用此功能来替换当前的声音设备。调用此方法不会更改声音设备的状态(打开/关闭)。请注意,此方法将覆盖由setSndDevMode()设置的模式。
参数
playback_dev - 播放设备的设备ID。
const AudioDevInfoVector&enumDev()
枚举系统中安装的全部音频设备。
返回
音频设备信息列表。
设置pjsua使用空声音设备。
零声音设备仅提供会议桥所需的时间,而且不会与任何硬件相互冲突。
断开主会议桥与任何声音设备的链接,并让应用将网桥链接到本身的声卡/主端口。
返回
会议桥的端口接口,使应用程序能够将其链接到本身的声音设备或主端口。
设置声音设备模式。
参数
mode - 声音设备模式,做为#pjsua_snd_dev_mode的位掩码组合
更改回声消除设置。
此功能的行为取决于声音设备当前是否处于活动状态,若是是,是否正在使用设备或软件AEC。
若是声音设备当前处于活动状态,而且设备支持AEC,则此功能会将更改请求转发给设备,而且由设备决定是否支持该请求。若是使用软件AEC(若是设备不支持AEC,将使用软件EC),则此功能将更改软件EC设置。在全部状况下,将保存设置以备未来打开声音设备。
若是声音设备当前未处于活动状态,则仅会更改默认的AEC设置,而且下次打开声音设备时将进行设置。
参数
tail_msec - 尾长度,以毫秒为单位。设置为零以禁用AEC。
options - 要传递给pjmedia_echo_create()的选项。一般值应为零。
获取当前的回声消除器尾部长度。
返回
EC尾部长度(以毫秒为单位),若是禁用AEC,则该值将为零。
检查声音设备当前是否处于活动状态。
若是应用程序已经设置自动关闭功能非零(在sndAutoCloseTime设定声音设备能够是不活动MediaConfig),或者若是空声音设备或声音设备已经经由配置setNoDev()函数。
刷新系统中安装的声音设备列表。
此方法只会刷新音频设备列表,所以全部活动音频流将不受影响。刷新设备列表后,应用程序必须确保在调用任何接受音频设备索引的方法做为参数以前,更新对音频设备的全部索引引用。
获取系统中安装的声音设备的数量。
返回
安装在系统中的声音设备的数量。
获取设备信息。
返回
一旦返回成功,将经过此方法填写的设备信息。
参数
id - 音频设备ID。
根据驱动程序和设备名称查找设备索引。
返回
设备ID。若是没有找到设备,将会抛出错误。
参数
drv_name - 驱动名称。
dev_name - 设备名称。
获取指定功能的字符串信息。
返回
能力名称
参数
cap - 能力Capability ID。
这将配置音频格式功能(PCM除外)到正在使用的声音设备。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_EXT_FORMAT功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
format - 音频格式。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频格式功能(PCM除外)。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_EXT_FORMAT功能时有效,不然将抛出错误。
返回
音频格式。
这将为正在使用的声音设备配置音频输入延迟控制或查询功能。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
latency_msec - 输入延迟。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频输入延迟控制或查询功能。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY功能时有效,不然将抛出错误。
返回
音频输入延迟。
这将为正在使用的声音设备配置音频输出延迟控制或查询功能。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
latency_msec - 输出延迟。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频输出延迟控制或查询功能。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY功能时有效,不然将抛出错误。
返回
音频输出延迟。
这将为正在使用的声音设备配置音频输入音量级别功能。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
volume - 输入音量级别,以百分比表示。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频输入音量电平能力。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_INPUT_VOLUME_SETTING功能时有效,不然将抛出错误。*
返回
音频输入音量级别,以百分比表示。
这将为正在使用的声音设备配置音频输出音量级别的功能。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
volume - 输出音量级别,以百分比表示。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频输出音量级别功能。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_OUTPUT_VOLUME_SETTING功能时有效,不然将抛出错误。
返回
音频输出音量电平,以百分比表示。
获取正在使用的声音设备的音频输入信号电平能力。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_INPUT_SIGNAL_METER功能时有效,不然将抛出错误。
返回
音频输入信号电平,以百分比表示。
获取正在使用的声音设备的音频输出信号电平能力。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_OUTPUT_SIGNAL_METER功能时有效,不然将抛出错误。
返回
音频输出信号电平,以百分比表示。
这将为正在使用的声音设备配置音频输入路由功能。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_INPUT_ROUTE功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
route - 音频输入路由。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频输入路由功能。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_INPUT_ROUTE功能时有效,不然将抛出错误。
返回
音频输入路由。
这将对正在使用的声音设备配置音频输出路由功能。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
route - 音频输出路由。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频输出路由功能。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_OUTPUT_ROUTE功能时有效,不然将抛出错误。
返回
音频输出路由。
这将对正在使用的声音设备配置音频语音活动检测功能。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_VAD功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
enable - 启用/禁用语音活动检测功能。设置为true以启用。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频声音活动检测功能。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_VAD功能时有效,不然将抛出错误。
返回
音频声音活动检测功能。
这将为正在使用的声音设备配置音频温馨噪声产生能力。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_CNG功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
enable - 启用/禁用温馨噪音生成功能。设置为true以启用。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频温馨噪声发生能力。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_CNG功能时有效,不然将抛出错误。
返回
音频温馨噪音产生功能。
这将为正在使用的声音设备配置音频包丢失隐藏功能。
若是声音设备当前处于活动状态,则该方法会将设置转发到要当即应用的声音设备实例(若是它支持)。
若是设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_PLC功能,则此方法才有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的声音设备,也将应用于任何设备。
参数
enable - 启用/禁用丢包隐藏功能。设置为true以启用。
keep - 指定设置是否保留以备未来使用。
获取正在使用的声音设备的音频包丢失隐藏功能。
若是声音设备当前处于活动状态,则该方法会将该请求转发到声音设备。若是声音设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为保留,则该设置将被返回。不然,这种方法会引发错误。
若是设备在AudioDevInfo.caps标志中具备PJMEDIA_AUD_DEV_CAP_PLC功能,则此方法才有效,不然将抛出错误。
返回
音频丢包隐藏功能。
构造函数
析构器
私有变量
friend
#include <media.hpp>
音频设备信息结构。
公有函数
从pjmedia_aud_dev_info构造。
析构器
公有变量
设备名称。
此设备支持的最大输入通道数。
若是该值为零,则该设备不支持输入操做(即它仅是播放设备)。
此设备支持的最大输出通道数。
若是值为零,则该设备不支持输出操做(即它是仅输入设备)。
默认采样率。
底层的驱动程序名称。
设备功能,做为pjmedia_aud_dev_cap的位掩码组合。
支持的音频设备路由,做为pjmedia_aud_dev_route的位掩码组合。
若是设备不支持音频路由,该值可能为零。
支持的扩展音频格式数组。
#include <media.hpp>
音频媒体。
从pj :: Media继承
子类有pj :: AudioMediaPlayer,pj :: AudioMediaRecorder,pj :: ToneGenerator
公有函数
获取有关指定会议端口的信息。
获取端口ID。
创建单向媒体流下沉。
该媒体端口将做为源,它能够传输到多个目的地/汇。而且若是多个源传输到同一个接收器,则媒体将被混合在一块儿。源和汇能够引用相同的媒体,有效地循环媒体。
若是须要双向媒体流,应用程序须要调用此方法两次,第二个来自相对的源媒体。
参数
sink - 目的地媒体。
中止媒体流到目的地/汇聚端口。
参数
sink - 目的地媒体。
经过使其更大或更安静,调整要从桥梁传输到该介质端口的信号电平。
参数
level - 信号电平调整。值12.0表示无电平调整,值0表示使端口静音。
经过使其更大或更安静地调整从该媒体端口(到桥接器)接收的信号电平。
参数
level - 信号电平调整。值1.0表示无电平调整,值0表示使端口静音。
获取最后收到的信号电平。
返回
信号电平百分比。
获取最后传输的信号电平。
返回
信号电平百分比。
virtual 析构函数
公共静态函数
从特定端口ID获取信息。
typecastFromMedia
(Media *media)从基类媒体转换类型。
这对于诸如Python不支持向下转换类型的语言编写的应用程序颇有用。
返回
该对象为AudioMedia实例
参数
media - 要被转换的对象
受保护函数
默认构造函数
该方法须要由此类的后代调用,以将建立的媒体端口注册到会议桥和端点的媒体列表。
param将要注册的媒体端口链接到会议桥。
该类的后代须要调用此方法,以从会议桥和端点的媒体列表中删除媒体端口。
若是已将注册的媒体与之前的registerMediaPort()调用注册,则后代应该只调用此方法。
受保护的属性
会议端口号
#include <media.hpp>
音频媒体播放器
公有函数
构造函数
建立文件播放器,并自动将此播放器添加到会议桥。
参数
file_name - 要播放的文件名 目前仅支持WAV文件,WAV文件必须格式化为16bit PCM单声道/单声道(支持任什么时候钟频率)。
options - 可选选项标志。应用程序能够指定PJMEDIA_FILE_NO_LOOP以防止回放循环。
建立文件播放列表媒体端口,并自动将端口添加到会议桥。
参数
file_names - 要添加到播放列表的文件名数组。请注意,文件必须具备相同的时钟速率,通道数和每一个样本的位数。
label - 为媒体端口设置的可选标签。
options - 可选选项标志。应用程序能够指定PJMEDIA_FILE_NO_LOOP以防止循环。
获取有关播放器的其余信息。
此操做仅适用于播放器。对于播放列表,将会抛出错误。
返回
信息。
获取样品中的当前播放位置。
此操做对播放列表无效。
返回
当前播放位置,在样本中。
在样品中设置播放位置。
此操做对播放列表无效。
参数
samples - 样品中所需的播放位置。
析构器
当文件播放器读取到达文件结束或文件读取到达播放列表的最后一个文件的文件结束时,注册要调用的回调。
若是文件或播放列表设置为重复播放,则将屡次调用回调。
返回
若是回调返回false,则播放将中止。请注意,若是应用程序在回调中销毁播放器,则必须在此返回false。
公共静态函数
来自基类AudioMedia的 Typecast 。
这对于诸如Python不支持向下转换类型的语言编写的应用程序颇有用。
返回
该对象为AudioMediaPlayer实例
参数
media - 要被转换的对象
播放器ID
低级别PJMEDIA回调。
#include <media.hpp>
此结构包含有关AudioMediaPlayer的附加信息。
公有变量
有效载荷的格式ID。
文件有效载荷的每一个样本的位数。
例如,PCM WAV的值为16,Alaw / Ulas WAV文件的值为8。
WAV有效载荷大小(以字节为单位)。
样品中的WAV有效载荷大小。
#include <media.hpp>
音频媒体记录器
公有函数
构造函数
建立文件记录器,并自动将此录音机链接到会议桥。
录音机目前支持录制WAV文件。要使用的录像机的类型由文件的扩展名(例如“.wav”)决定。
参数
file_name - 输出文件名。该功能将根据文件扩展名肯定要使用的默认格式。目前全部平台都支持“.wav”。
enc_type - 可选择指定要用于压缩介质的编码器类型,若是文件能够支持不一样的编码。如今该值必须为零。
max_size - 最大文件大小 指定零或-1以删除大小限制。此值如今必须为零或-1。
options - 可选选项,可用于指定录制文件格式。支持的选项有PJMEDIA_FILE_WRITE_PCM,PJMEDIA_FILE_WRITE_ALAW和PJMEDIA_FILE_WRITE_ULAW。默认值为零或PJMEDIA_FILE_WRITE_PCM。
析构器
公共静态函数
来自基类AudioMedia的 Typecast 。
这对于诸如Python不支持向下转换类型的语言编写的应用程序颇有用。
返回
该对象为AudioMediaRecorder实例
参数
media - 要被转换的对象
记录器ID。
#include <media.hpp>
编解码器特定参数的结构,其中包含name = value对。
编解码器特定参数将根据SDP'a = fmtp'属性中的标准(例如:RFC 3555)与SDP一块儿使用。
公有变量
#include <media.hpp>
该结构描述了编解码信息。
公有函数
从pjsua_codec_info构造。
公有变量
编解码器独特识别。
编解码器优先级(0-255整数)。
编解码器描述。
#include <media.hpp>
此结构描述了已注册到会议桥中的特定媒体端口的信息。
公有函数
从pjsua_conf_port_info构造。
公有变量
会议端口号。
端口名称。
媒体音频格式信息。
Tx电平调整。
值1.0表示无调整,值0表示端口静音,值2.0表示电平放大两次。
Rx电平调整。
值1.0表示无调整,值0表示端口静音,值2.0表示电平放大两次。
侦听器数组(换句话说,该端口正在发送的端口)。
#include <media.hpp>
媒体。
公有函数
virtual 析构函数
获取媒体类型。
返回
Media类型。
受保护功能
构造函数
媒体类型
#include <media.hpp>
Media协调表示
公有变量
坐标的X位置。
坐标的Y位置。
#include <media.hpp>
此结构包含彻底描述媒体所需的全部信息。
由pj :: MediaFormatAudio,pj :: MediaFormatVideo子类化
公有变量
指定音频采样或视频像素格式的格式ID。
一些众所周知的格式ids在pjmedia_format_id枚举中声明。
参考pjmedia_format_id
最顶级的媒体类型,做为信息。
#include <media.hpp>
该结构描述了有关音频媒体的详细信息。
公有函数
从pjmedia_format构造。
导出到pjmedia_format。
公有变量
样品中的音频时钟频率或Hz。
频道数量
帧间隔,以微秒为单位。
每一个样品的位数。
平均比特率
最大比特率
#include <media.hpp>
该结构描述了有关视频媒体的详细信息。
公有函数
从pjmedia_format构造。
导出到pjmedia_format。
公有变量
视频宽度。
视频高度
每分钟帧数。
每秒帧数。
平均比特率
最大比特率
#include <media.hpp>
Media大小的表示
公有变量
宽度。
高度。
#include <media.hpp>
Tone描述符(pjmedia_tone_desc的抽象)
从pjmedia_tone_desc继承
公有函数
~ToneDesc()
#include <media.hpp>
音调数字(pjmedia_tone_digit的抽象)
从pjmedia_tone_digit继承
公有函数
#include <media.hpp>
音数位图中的数字。
公有变量
#include <media.hpp>
音调发生器。
公有函数
构造函数
析构器
建立音源
检查音频发生器是否仍然生成一些音调。
返回
忙碌时非零。
指示音发生器中止当前处理。
回放播放。
这将开始播放到播放列表中的第一个音调。
指示音频发生器播放具备指定持续时间的单频或双频音调。
除了在调用此函数以前调用stop()以外,新的音调将被追加到当前播放的音色中。一旦音调发生器链接到其余媒体,播放就会开始。
参数
tones - 要播放的音色数组
loop - 在循环中播放音调。
指示音发生器播放多个MF数字,每一个数字具备单独的开/关持续时间。
数位数组中的每位数字必须在数位图中具备相应的描述符。除了在调用此函数以前调用stop()以外,新的音调将被追加到当前播放的音色中。一旦音源发生器链接到 sink 介质,播放就会开始。
参数
digits - MF数位数组。
loop - 在循环中播放音调。
获取此音调发生器当前使用的数位图。
返回
音色发生器当前使用的数字图
设置音色发生器使用的数字图。
参数
digit_map - 数字地图由音调发生器使用。
#include <media.hpp>
用于配置编解码器和查询编解码器工厂能力的详细编解码器属性。
请注意,编解码器参数还包含SDP特定设置,decFmtp和encFmtp,可能须要根据有效设置进行适当设置。有关详细信息,请参阅每一个编解码器文档。
公有函数
公有变量
方向。
分组策略
编码格式。
编码器fmtp参数。
MTU或最大有效负载大小设置。
解码格式
解码器fmtp参数。
忽略fmtp参数。
若是设置为true,则编解码器将仅应用encFmt和decFmt中指定的格式设置。
#include <media.hpp>
视频设备管理器。
公有函数
刷新系统中安装的视频设备列表。
此功能只会刷新视频设备列表,所以全部活动的视频流将不受影响。刷新设备列表后,应用程序必须确保在调用任何接受视频设备索引的函数做为参数以前,更新对视频设备的全部索引引用(即pjmedia_vid_dev_index类型的全部变量)。
获取系统中安装的视频设备数量。
返回
设备数量。
检索指定设备索引的视频设备信息。
返回
视频设备信息列表
参数
dev_id - 视频设备ID
枚举系统中安装的全部视频设备。
返回
视频设备信息列表
根据驱动程序和设备名称查找设备索引。
返回
设备ID。若是没有找到设备,将会抛出错误。
参数
drv_name - 驱动名称。
dev_name - 设备名称。
获取指定功能的字符串信息。
返回
能力名称
参数
cap - 能力ID。
这将配置视频设备的视频格式功能。
若是视频设备当前处于活动状态,则该方法会将设置转发到要当即应用的视频设备实例,若是它支持。
该方法仅在设备在VideoDevInfo.caps标志中具备PJMEDIA_VID_DEV_CAP_FORMAT功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的视频设备,也将应用于任何设备。
参数
dev_id - 视频设备ID。
format - 视频格式。
keep - 指定设置是否保留以备未来使用。
获取视频设备的视频格式功能。
若是视频设备当前处于活动状态,则将该请求转发给视频设备。若是视频设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为已保留,那么该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在VideoDevInfo.caps标志中具备PJMEDIA_VID_DEV_CAP_FORMAT功能时有效,不然将抛出错误。
返回
保持视频格式。
参数
dev_id - 视频设备ID。
这将配置视频设备的视频格式功能。
若是视频设备当前处于活动状态,则该方法会将设置转发到要当即应用的视频设备实例,若是它支持。
该方法仅在设备在VideoDevInfo.caps标志中具备PJMEDIA_VID_DEV_CAP_INPUT_SCALE功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的视频设备,也将应用于任何设备。
参数
dev_id - 视频设备ID。
scale - 视频比例。
keep - 指定设置是否保留以备未来使用。
获取视频设备的视频输入比例功能。
若是视频设备当前处于活动状态,则将该请求转发给视频设备。若是视频设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为已保留,那么该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在VideoDevInfo.caps标志中具备PJMEDIA_VID_DEV_CAP_FORMAT功能时有效,不然将抛出错误。
返回
保持视频格式。
参数
dev_id - 视频设备ID。
这将配置快速切换到另外一个视频设备。
若是视频设备当前处于活动状态,则该方法会将设置转发到要当即应用的视频设备实例,若是它支持。
该方法仅在设备在VideoDevInfo.caps标志中具备PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS功能时有效,不然将抛出错误。
请注意,若是设置保留未来使用,即便应用程序更改了要使用的视频设备,也将应用于任何设备。
参数
dev_id - 视频设备ID。
flags - 视频窗口标志。
keep - 指定设置是否保留以备未来使用。
获取视频设备的窗口输出标志功能。
若是视频设备当前处于活动状态,则将该请求转发给视频设备。若是视频设备当前处于非活动状态,而且若是应用程序之前设置了设置并将设置标记为已保留,那么该设置将被返回。不然,这种方法会引发错误。
该方法仅在设备在VideoDevInfo.caps标志中具备PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS功能时有效,不然将抛出错误。
返回
保持视频格式。
参数
dev_id - 视频设备ID。
这将配置快速切换到另外一个视频设备。
若是视频设备当前处于活动状态,则该方法会将设置转发到要当即应用的视频设备实例,若是它支持。
该方法仅在设备在VideoDevInfo.caps标志中具备PJMEDIA_VID_DEV_CAP_SWITCH功能时有效,不然将抛出错误。
参数
dev_id - 视频设备ID。
param - 视频切换参数
检查视频捕获设备当前是否处于活动状态,即
若是视频预览已经开始,或者使用该设备进行视频通话。
返回
若是它是活跃的,则为真。
参数
dev_id - 视频设备ID
这将配置视频捕获设备的视频方向。
若是设备当前处于活动状态(即若是使用该设备进行视频通话或视频预览已启动),则该方法会将设置转发到视频设备实例,以便当即应用于支持视频设备实例。
若是“保持”参数设置为true,该设置将被保存以供未来打开视频设备。若是视频设备当前处于非活动状态,而且“保持”参数为false,则此方法将抛出错误。
参数
dev_id - 视频设备ID
orient - 视频方向。
keep - 指定设置是否保留以备未来使用。
构造函数
析构器
friend
#include <media.hpp>
视频设备信息结构。
公有函数
从pjmedia_vid_dev_info构造。
析构器
公有变量
设备ID。
设备名称。
底层的驱动程序名称。
支持的视频设备方向,即
是否仅支持捕获,仅渲染或二者兼容。
设备功能,做为#pjmedia_vid_dev_cap的位掩码组合。
支持的视频格式数组。
每一个支持的视频格式中的某些字段可能被设置为零或“未知”值,以指示该值是未知的或应被忽略。当这些值未设置为零时,表示正在使用确切的格式组合。
#include <media.hpp>
视频预览
公有函数
构造函数
肯定指定的视频输入设备是否具备内置的本地预览功能。
这是一个方便的功能,等同于查询设备PJMEDIA_VID_DEV_CAP_INPUT_PREVIEW功能的功能。
返回
若是有的话。
启动指定捕获设备的视频预览窗口。
参数
p - 视频预览参数。
中止视频预览。
#include <media.hpp>
此结构包含VideoPreview :: start()的参数
公有函数
默认构造函数用默认值初始化。
从pjsip转换
转换为pjsip。
公有变量
用于渲染捕获流以进行预览的视频渲染器的设备ID。
若是使用本机预览,则忽略此参数。
默认:PJMEDIA_VID_DEFAULT_RENDER_DEV
最初显示窗口。
默认值:PJ_TRUE。
窗口标志
该值是pjmedia_vid_dev_wnd_flag的位掩码组合。
默认值:0。
媒体格式
若是保持统一化,则不会使用此参数。
用于显示视频预览的可选输出窗口。
仅当视频设备支持PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW功能且该功能不为只读时,此参数才会使用。
#include <media.hpp>
具备PJMEDIA_VID_DEV_CAP_SWITCH功能的开关器件的参数。
公有变量
要切换到的设备ID。
一旦切换成功,视频流将使用此设备,旧设备将关闭。
#include <media.hpp>
视频窗口。
公有函数
构造函数
获取窗口信息。
返回
视频窗口信息。
显示或隐藏窗口。
此操做对于本机窗口(VideoWindowInfo.isNative = true)无效,必须使用本机窗口API。
参数
show - 设置为true显示窗口,false隐藏窗口。
设置视频窗口位置。
此操做对于本机窗口(VideoWindowInfo.isNative = true)无效,必须使用本机窗口API。
参数
pos - 窗口位置。
调整窗口大小。
此操做对于本机窗口(VideoWindowInfo.isNative = true)无效,必须使用本机窗口API。
参数
size - 新的窗口大小。
旋转视频窗口。
此功能将改变视频方向,也可能会改变视频窗口大小(宽度和高度被交换)。此操做对于本机窗口(VideoWindowInfo.isNative = true)无效,必须使用本机窗口API。
参数
angle - 旋转角度(以度为单位)必须为90度的倍数。指定顺时针旋转的正值或逆时针旋转的负值。
设置输出窗口。
此操做仅在底层视频设备支持PJMEDIA_VIDEO_DEV_CAP_OUTPUT_WINDOW功能而且容许输入窗口即时更改时才有效,不然将抛出错误。目前,它仅在Android上受支持。
参数
win - 新的输出窗口。
私有变量
pjsua_vid_win_id winId
struct VideoWindowHandle
#include <media.hpp>
视频窗口句柄。
公有变量
窗口句柄类型。
窗口句柄。
#include <media.hpp>
此结构描述视频窗口信息。
公有变量
标记以指示此窗口是不是本机窗口,例如由内置预览设备建立的窗口。
若是该字段为真,则只有此结构的视频窗口句柄字段才有效。
视频窗口句柄。
渲染设备ID。
窗口显示状态。
假如窗口被隐藏。
窗口位置。
窗口大小。
#include <media.hpp>
窗口句柄。
公有变量
窗口。
显示。
PJSUA2呼叫处理。
namespace pj
PJSUA2 API在pj命名空间内。
Typedefs
媒体流,对应于pjmedia_stream。
媒体传输,对应于pjmedia_transport。
媒体事件数据。
呼叫媒体信息数组。
#include <call.hpp>
公有函数
构造函数
析构器
获取有关此呼叫的详细信息。
返回
来电信息。
检查此呼叫是否具备活动的INVITE会话,而且INVITE会话未被断开。
返回
若是通话活动,则为真。
获取与此呼叫相关联的PJSUA-LIB呼叫ID或索引。
返回
整数大于或等于零。
检查呼叫是否有活动的媒体会话。
返回
若是是,则为真。
获取指定介质索引的介质。
返回
Media或NULL若是无效或无效。
参数
med_idx - 媒体指数
检查远程对等体是否支持指定的功能。
返回
PJSIP_DIALOG_CAP_SUPPORTED若是显式支持指定的功能,请参阅pjsip_dialog_cap_status以获取更多信息。
参数
htype - 要检查的标题类型(pjsip_hdr_e),该值能够是:
hname - 若是htype指定了PJSIP_H_OTHER,则必须在此参数中提供头名称。不然,该值必须设置为空字符串(“”)。
token - 检查的能力标记。例如,若是htype是PJSIP_H_ALLOW,则token指定方法名称; 若是htype是PJSIP_H_SUPPORTED,则token指定扩展名称,例如“100rel”。
将应用程序特定数据附加到呼叫。
应用程序能够经过调用getUserData()来检查此数据。
参数
user_data - 要附加到任意数据。
获取附加到呼叫的用户数据,之前使用setUserData()设置。
返回
用户数据。
获取远程端点的NAT类型。
这是PJSUA-LIB的一个专有功能,当在UaConfig中设置natTypeInSdp时,它将其NAT类型发送到SDP 。
只有在从远程接收到SDP以后才能调用此功能,这意味着对于来电,只要来电包含SDP,就能够在收到呼叫时当即调用此功能,对于拨出呼叫,此功能只能被调用SDP接收后(一般为200 / OK响应INVITE)。做为通常状况,应用程序应该在onCallMediaState()回调以后或以后调用此函数。
返回
NAT类型。
参考Endpoint :: natGetType(),natTypeInSdp
拨出电话给指定的URI。
参数
dst_uri - 要放入To头的URI(一般与目标URI相同)。
prm.opt - 可选呼叫设置。
prm.txOption - 可选标题等待添加到发出的INVITE请求。
经过呼叫设置参数发送对INVITE请求的响应。
根据指定为参数的状态码,此功能可能发送临时响应,创建呼叫或终止呼叫。有关通话设置的注意事项:
参数
prm.opt - 可选呼叫设置。
prm.statusCode - 状态码,(100-699)。
prm.reason - 可选缘由短语。若是为空,将使用默认文本。
prm.txOption - 要添加到传出响应消息的标题等的可选列表。请注意,此消息数据将在此INVITE请求的全部下一个答案/响应中持续存在。
经过使用根据呼叫状态适当的方法挂断呼叫。
此功能与使用3xx-6xx响应(with answer())应答呼叫不一样,由于该功能将挂断呼叫,而无论呼叫的状态和角色如何,而answer()仅适用于EARLY状态下的来电。
参数
prm.statusCode - 咱们拒绝来电时能够发送的可选状态码。若是值为零,将发送“603 / Decline”。
prm.reason - 咱们拒绝来电时能够选择发送的缘由短语。若是为空,将使用默认文本。
prm.txOption - 要添加到传出请求/响应消息的标题等的可选列表。
将指定的呼叫置于保持状态。
这将发送re-INVITE与适当的SDP通知遥控器呼叫被搁置。请求自己的最终状态将在onCallMediaState()回调中报告,该回调通知应用程序呼叫的媒体状态已更改。
参数
prm.options - pjsua_call_flag常量的位掩码。目前,只能使用标志PJSUA_CALL_UPDATE_CONTACT。
prm.txOption - 与请求一块儿发送的可选消息组件。
发送re-INVITE。
请求自己的最终状态将在onCallMediaState()回调中报告,该回调通知应用程序呼叫的媒体状态已更改。
参数
prm.opt - 可选呼叫设置,若是为空,当前呼叫设置将保持不变。
prm.opt.flag - pjsua_call_flag常量的位掩码。在此指定PJSUA_CALL_UNHOLD将释放呼叫保持。
prm.txOption - 与请求一块儿发送的可选消息组件。
发送UPDATE请求。
参数
prm.opt - 可选呼叫设置,若是为空,当前呼叫设置将保持不变。
prm.txOption - 与请求一块儿发送的可选消息组件。
启动呼叫转移到指定的地址。
该功能将发送REFER请求,指示远程呼叫方向指定的目的地/目标发起新的INVITE会话。
若是应用程序有兴趣监视传输请求的成功性和进度,它能够实现onCallTransferStatus()回调,它将报告呼叫转移请求的进度。
参数
dest - 要联系的新目标的URI。URI能够是名称地址或addr-spec格式。
prm.txOption - 与请求一块儿发送的可选消息组件。
发起参加呼叫转移。
该功能将发送REFER请求,指示远程呼叫方向destCall的URL发起新的INVITE会话。dest_call的一方应该用“REFER”接收方的新呼叫“替换”咱们的呼叫。
参数
dest_call - 呼叫被替换。
prm.options - 应用程序能够指定PJSUA_XFER_NO_REQUIRE_REPLACES以阻止在REFER请求建立的传出INVITE请求中包含“Require:replace”。
prm.txOption - 与请求一块儿发送的可选消息组件。
接受或拒绝重定向响应。
应用程序在onCallRedirected()回调函数中通知PJSIP_REDIRECT_PENDING后,必须调用此函数,以通知调用是接受仍是拒绝重定向到当前目标。应用程序可使用onCallRedirected()回调中的PJSIP_REDIRECT_PENDING命令的组合,而且此功能在重定向呼叫以前请求用户权限。
请注意,若是应用程序选择拒绝或中止重定向(经过分别使用PJSIP_REDIRECT_REJECT或PJSIP_REDIRECT_STOP),则此函数返回以前将调用呼叫断开回调。而且若是应用程序拒绝目标,若是还有另一个目标要尝试,那么onCallRedirected()回调也能够在此函数返回以前被调用。
参数
cmd - 要应用于当前目标的重定向操做。该参数的语义与onCallRedirected()回调中的描述相似,不一样之处在于PJSIP_REDIRECT_PENDING不被接受。
使用RFC 2833有效载荷格式将DTMF数字发送到远程。
参数
digits - 要发送的DTMF字符串数字。
在INVITE会话中发送即时消息。
参数
prm.contentType - MIME类型。
prm.content - 消息内容。
prm.txOption - 要包括在传出请求中的标题等的可选列表。txOption中的body描述符被忽略。
prm.userData - 可选的用户数据,在调用IM回调时将返回。
在INVITE会话中发送IM打字指示。
参数
prm.isTyping - 确实是为了向远方指示当地人当前正在键入IM。
prm.txOption - 要包括在传出请求中的标题等的可选列表。
发送任意请求与呼叫。
这对于发送INFO请求是有用的。请注意,应用程序不该该使用此函数发送将更改邀请会话状态的请求,例如re-INVITE,UPDATE,PRACK和BYE。
参数
prm.method - 请求的SIP方法。
prm.txOption - 可选消息体和/或要包括在传出请求中的头部列表。
将呼叫和媒体统计信息转储为字符串。
返回
调用转储和媒体统计字符串。
参数
with_media - 真的也包括媒体信息。
indent - 左缩进的空格。
获取通话中默认视频流的媒体流索引。
一般这将只是检索呼叫中第一个激活的视频流的流索引。若是没有活动,它将返回第一个不活动的视频流。
返回
Media流索引为-1,若是没有视频流存在于呼叫中。
肯定指定呼叫的视频流当前是否正在运行(即,
已被建立,启动,不被暂停)。
返回
若是目前正在为指定的方向运行流,则为真。
参数
med_idx - 媒体流索引,或-1表示默认视频媒体。
dir - 要检查的方向。
为指定的呼叫添加,删除,修改和/或操纵视频媒体流。
这可能会触发从新启动或更新以发送呼叫。
参数
op - 要执行的视频流操做,可能的值是pjsua_call_vid_strm_op。
param - 视频流操做的参数(请参阅CallVidSetStreamParam)。
获取指定媒体索引的媒体流信息。
返回
流信息。
参数
med_idx - 媒体流索引。
获取指定媒体索引的媒体流统计信息。
返回
流统计。
参数
med_idx - 媒体流索引。
获取指定媒体索引的媒体传输信息。
返回
传输信息。
参数
med_idx - 媒体流索引。
内部函数(由端点调用(当调用媒体状态更改时处理更新以调用媒体。
内部函数(由端点调用)处理调用状态更改。
呼叫状态发生变化时通知应用程序。
应用程序能够经过调用getInfo()函数来查询呼叫信息以获取详细调用状态。
参数
prm - 回调参数
这是一个通用回调,当呼叫中的一个事务已经改变状态时被调用。
例如,应用程序能够实现此回调,以监视传出请求的状态,或者以最终响应回答未处理的传入请求(如INFO)。
参数
prm - 回调参数
当通话中的媒体状态发生变化时通知应用程序。
正常应用须要实现这种回调,例如将呼叫的媒体链接到声音设备。当使用ICE时,也会调用此回调来报告ICE协商失败。
参数
prm - 回调参数
当呼叫刚刚建立本地SDP(用于初始或随后的SDP报价/答案)时通知应用程序。
应用程序能够在远程SDP发送和/或协商以前实施此回调来修改SDP,例如,以每一个账户/呼叫基础编解码器优先级应用或添加自定义/专有SDP属性。
参数
prm - 回调参数
在建立媒体会话以前,注册到会议桥以前通知应用程序。
若是已将媒体处理端口添加到流中,应用程序可能会返回不一样的媒体端口。而后,这个媒体端口将被添加到会议桥。
参数
prm - 回调参数
Media会议从会议桥被注销并被销毁时通知应用程序。
参数
prm - 回调参数
传入DTMF数字时通知应用程序。
参数
prm - 回调参数
通知申请被转移(即
REFER被接收)。应用程序能够经过设置代码来决定接受/拒绝传输请求(默认为202)。当此回调未实现时,默认行为是接受转移。
参数
prm - 回调参数
通知应用之前发送的呼叫转移请求的状态。
应用程序能够监视呼叫转移请求的状态,例如决定是否终止现有呼叫。
参数
prm - 回调参数
经过替换标题通知有关INVITE的应用程序。
应用程序能够经过设置非2xx代码来拒绝该请求。
参数
prm - 回调参数
通知应用程序现有呼叫已被新呼叫替换。
当PJSUA-API使用Replaces标头接收到INVITE请求时,会发生这种状况。
调用此回调后,一般PJSUA-API将断开此调用并创建新的调用newCallId。
参数
prm - 回调参数
当通话接收到来自遥控器的新报价时通知应用程序(即
接收到使用SDP的re-INVITE / UPDATE)。应用程序能够经过设置代码来决定接受/拒绝报价(默认为200)。若是报价被接受,应用程序能够更新应答的通话设置。当此回调未实现时,默认行为是接受使用当前通话设置的报价。
参数
prm - 回调参数
通话时通知应用程序接收到没有SDP报价的INVITE。
应用程序能够更新呼叫设置(例如:添加音频/视频),或启用/禁用编解码器,或者从回调内更新其余媒体会话设置,可是,如标准(RFC3261第14.2节)所规定的那样,它必须确保更新与须要对等体支持的现有媒体会话(编解码器,传输或其余参数)重叠,这是为了不对等体拒绝该提议。
当不执行此回调时,默认行为是使用当前活动媒体会话发送SDP报价(每一个媒体类型上都有全部启用的编解码器)。
参数
prm - 回调参数
通知输入MESSAGE请求的应用程序。
参数
prm - 回调参数
通知应用程序关于传出MESSAGE请求的传送状态。
参数
prm - 回调参数
通知应用程序打字指示。
参数
prm - 回调参数
当呼叫即将从新发送INVITE请求到指定的目标时,调用此回调,遵循先前接收到的重定向响应。
应用程序能够接受重定向到指定的目标,仅拒绝此目标,并使会话继续尝试列表中的下一个目标,若是此类目标存在,则彻底中止整个重定向过程,并致使会话断开或延迟决定要求用户确认。
此回调是可选的,默认行为是不遵循重定向响应。
返回
为目标执行的行动。将此参数设置为如下值之一:
参数
prm - 回调参数
当媒体传输状态更改时,将调用此回调。
参数
prm - 回调参数
有关媒体事件(例如视频通知)的通知。
这种回调极可能是从媒体线程调用的,因此应用程序不能在这个回调中执行大量的处理。特别是,应用程序不得在此回调中销毁呼叫或媒体。若是应用程序须要执行更复杂的任务来处理事件,则应将任务发布到另外一个线程。
参数
prm - 回调参数
应用程序可使用此回调来实现呼叫的自定义媒体传输适配器,或者使用彻底全新的媒体传输替换媒体传输。
建立新呼叫时调用此回调。该库已经为该调用建立了一个媒体传输,而且做为该回调的mediaTp参数提供。回调可能会随媒体传输的实例而改变,以便呼叫使用。
参数
prm - 回调参数
当建立SRTP媒体传输时,将调用此回调。
应用程序能够修改SRTP设置srtpOpt来指定要使用的密码和密钥。请注意,应用程序不该修改字段pjmedia_srtp_setting.close_member_tp,而且只能修改初始INVITE 的字段pjmedia_srtp_setting.use。
参数
prm - 回调参数
公共静态函数
获取指定呼叫ID 的呼叫类。
返回
该呼叫实例或NULL,若是没有找到。
参数
call_id - 要查找的呼叫ID
#include <call.hpp>
来电信息。
应用程序能够经过调用Call :: getInfo ()来查询呼叫信息。
公有函数
从pjsip转换
公有变量
呼叫识别。
初始调用角色(UAC == caller)
此呼叫所属的账户ID。
本地URI。
本地联系人。
远程URI。
远程联系
Dialog Call-ID字符串。
通话设置。
呼叫状态。
描述状态的文字。
听到最后一个状态码,能够做为缘由码使用。
描述最后状态的缘由。
活动媒体信息数组。
临时媒体信息数组。
这包含配置状态下的媒体信息,即媒体会话正在建立/更新(SDP提供/回答正在进行中)。
最新呼叫链接持续时间(呼叫未创建时为零)
总通话时间,包括设置时间。
标记若是远程是SDP提供者。
遥控器提供的音频流数量。
遥控器提供的视频流数量。
#include <call.hpp>
呼叫媒体信息。
公有函数
默认构造函数。
从pjsip转换
公有变量
SDP媒体指数
媒体类型
媒体方向。
呼叫媒体状态。
呼叫的会议端口号。
仅当媒体类型为音频时才有效。
传入视频的窗口ID(若是有)或PJSUA_INVALID_ID。
仅当媒体类型为视频时才有效。
用于传入视频的视频窗口实例。
仅当videoIncomingWindowId不是PJSUA_INVALID_ID且媒体类型是视频时才有效。
用于传出传输的视频捕获设备(若是有的话)或PJMEDIA_VID_INVALID_DEV。
仅当媒体类型为视频时才有效。
#include <call.hpp>
此结构包含Call :: answer(),Call :: hangup(),Call :: reinvite(),Call :: update(),Call :: xfer(),Call :: xferReplaces(),Call :: setHold()。
公有函数
默认构造函数用零/空值初始化。
将useDefaultCallSetting设置为true将使用默认呼叫设置值初始化opt。
公有变量
通话设置。
状态码。
缘由短语
选项。
要添加到传出响应消息的标题列表等。
请注意,此消息数据将在此INVITE请求的全部下一个答案/响应中持续存在。
#include <call.hpp>
此结构包含Call :: sendRequest()的参数,
公有函数
默认构造函数用零/空值初始化。
公有变量
请求的SIP方法。
邮件正文和/或标题列表等要包含在传出请求中。
#include <call.hpp>
通话设置。
公有函数
默认构造函数用空或默认值初始化。
检查设置是否设置为空值。
返回
若是设置为空,则为真。
void fromPj(const pjsua_call_setting&prm )
从pjsip转换
转换为pjsip。
公有变量
pjsua_call_flag常量的位掩码。
默认值:PJSUA_CALL_INCLUDE_DISABLED_MEDIA
此标志控制在呼叫中容许请求关键帧的方法。
值是pjsua_vid_req_keyframe_method的位掩码。
默认值:PJSUA_VID_REQ_KEYFRAME_SIP_INFO | PJSUA_VID_REQ_KEYFRAME_RTCP_PLI
此呼叫的同时有效音频流数量。
将其设置为零将禁用此呼叫中的音频。
默认值:1
此呼叫同时处于活动视频流的数量。
将此设置为零将禁用此呼叫中的视频。
默认值:1(若是启用了视频功能,不然为零)
#include <call.hpp>
此结构包含Call :: vidSetStream()的参数,
公有函数
默认构造函数。
公有变量
指定媒体流索引。
这能够设置为-1以表示呼叫中的默认视频流,即若是没有活动视频流是第一个活动视频流或任何第一个视频流。
除了PJSUA_CALL_VID_STRM_ADD外,此字段对全部视频流操做都有效。
默认值:-1(第一个活动视频流,或任何第一个视频流,若是没有活动)
指定媒体流方向。
此字段对如下视频流操做有效:PJSUA_CALL_VID_STRM_ADD和PJSUA_CALL_VID_STRM_CHANGE_DIR。
默认值:PJMEDIA_DIR_ENCODING_DECODING
指定视频捕获设备ID。
这能够设置为PJMEDIA_VID_DEFAULT_CAPTURE_DEV以指定账户中配置的默认捕获设备。
此字段对如下视频流操做有效:PJSUA_CALL_VID_STRM_ADD和PJSUA_CALL_VID_STRM_CHANGE_CAP_DEV。
默认值:PJMEDIA_VID_DEFAULT_CAPTURE_DEV。
#include <call.hpp>
此结构描述抖动缓冲状态。
公有函数
从pjsip转换
公有变量
单个帧大小,以字节为单位。
最小容许预取,以frms为单位。
最大容许预取,以frms为单位。
当前突发级别,以帧为单位。
当前预取值,以帧为单位。
当前缓冲区大小,以帧为单位。
平均延迟(以ms为单位)
最小延迟(以ms为单位)
最大延迟(以ms为单位)
延迟的标准误差(ms)。
平均突发,以帧为单位。
丢帧数
丢弃帧数。
GET事件上的空数。
#include <call.hpp>
检测到的损失类型。
公有变量
检测到突发/顺序数据包丢失。
检测到随机数据包丢失。
#include <call.hpp>
此结构描述统计状态。
公有函数
默认构造函数。
从pjsip转换
公有变量
样品数量
最大值
最小值
最后的价值
意思
#include <call.hpp>
此结构描述媒体事件。
它对应于pjmedia_event结构。
公有函数
从pjsip转换
公有变量
事件类型。
关于事件的附加数据/参数。
数据类型将特定于正在报告的事件类型。
指向原始的pjmedia_event。
只有当结构从PJSIP的pjmedia_event转换时才有效。
#include <call.hpp>
媒体事件数据。
公有变量
媒体格式更改事件数据。
指向存储到用户事件数据的指针,若是它在此结构以外。
#include <call.hpp>
此结构描述媒体格式更改事件。
公有变量
新的宽度。
新的高度。
#include <call.hpp>
这种结构描述媒体传输信息。
它对应于pjmedia_transport_info结构。
公有函数
从pjsip转换
公有变量
RTP源自的远程地址。
RTCP起源的远程地址。
#include <call.hpp>
此结构包含Call :: onCallMediaEvent()回调的参数。
公有变量
Media流索引。
Media事件。
#include <call.hpp>
此结构包含Call :: onCallMediaState()回调的参数。
#include <call.hpp>
此结构包含Call :: onCallMediaTransportState()回调的参数。
公有变量
Media指数
Media传输情况。
与媒体传输状态相关的最后一个错误代码。
可选的SIP错误代码。
#include <call.hpp>
此结构包含Call :: onCallRedirected()回调的参数。
公有变量
目前被试的目标。
SipEvent e
致使此回调的事件被调用。
若是从Call :: processRedirect()上下文中调用此回调,则多是收到3xx响应或接收到发送到后续目标的INVITE的4xx / 5xx响应,或空(e.type == PJSIP_EVENT_UNKNOWN)。
#include <call.hpp>
此结构包含Call :: onCallReplaced()回调的参数。
公有变量
新的通话ID。
#include <call.hpp>
此结构包含Call :: onCallReplaceRequest()回调的参数。
公有变量
来电INVITE请求来替换呼叫。
应用程序要设置的状态代码。
应用程序只能返回最终状态(200-699)
可选状态文本由应用程序设置。
当前的呼叫设置,应用程序能够更新此更改设置。
#include <call.hpp>
此结构包含Call :: onCallRxOffer()回调的参数。
公有变量
收到的新的Offer。
要回复Offer的状态代码。
在输入时,它包含状态代码200.目前,有效值只有200和488。
当前的通话设置,应用程序能够更新此设置以应答报价。
#include <call.hpp>
此结构包含Call :: onCallSdpCreated()回调的参数。
公有变量
SDP刚刚建立。
若是本地是SDP提供者,则远程SDP将为空。
#include <call.hpp>
此结构包含Call :: onCallState()回调的参数。
公有变量
致使呼叫状态发生变化的事件。
#include <call.hpp>
此结构包含Call :: onCallTransferRequest()回调的参数。
公有变量
呼叫转移到的目的地。
要为呼叫转移请求返回的状态码。
在输入时,它包含状态码200。
当前的呼叫设置,应用程序能够更新该传输呼叫的设置。
#include <call.hpp>
此结构包含Call :: onCallTransferStatus()回调的参数。
公有变量
转移请求的状态进度。
状态进度缘由
若是是,则不会再报告进一步的通知。
此回调中指定的statusCode是最终状态。
最初将设置为true,若是再也不须要接收进一步的通知(例如,挂断电话后),应用程序能够将其设置为false。
#include <call.hpp>
此结构包含Call :: onCallTsxState()回调的参数。
公有变量
致使状态变化的事务事件。
#include <call.hpp>
此结构包含Call :: onCallTxOffer()回调的参数。
公有变量
当前的通话设置,应用程序能够更新此设置以生成优惠。
请注意,应用程序应保留任何活动的媒体,以免对等体拒绝该提议的须要。
#include <call.hpp>
此结构包含Call :: onCreateMediaTransport()回调的参数。
公有变量
SDP中的媒体索引将用于此媒体传输。
不然将由呼叫使用的媒体传输具备此回调未实现。
应用程序能够将其更改成其自身的媒体传输实例,以供呼叫使用。
unsigned flags
来自pjsua_create_media_transport_flag的位掩码。
#include <call.hpp>
此结构包含Call :: onCreateMediaTransportSrtp()回调的参数。
公有变量
将使用SRTP媒体传输的SDP中的媒体索引。
指定是否应使用安全媒体传输。
应用程序只能对初始INVITE进行修改。有效值为PJMEDIA_SRTP_DISABLED,PJMEDIA_SRTP_OPTIONAL和PJMEDIA_SRTP_MANDATORY。
应用程序能够对其进行修改,以指定要使用的密码和密钥。
#include <call.hpp>
此结构包含Call :: onDtmfDigit()回调的参数。
公有变量
DTMF ASCII数字。
#include <call.hpp>
此结构包含Call :: onStreamCreated()回调的参数。
公有变量
媒体流。
Media会话中的流索引。
在输入时,它指定流的媒体端口。
应用程序能够修改该指针以指向要注册到会议桥的不一样媒体端口。
#include <call.hpp>
此结构包含Call :: onStreamDestroyed()回调的参数。
公有变量
媒体流。
Media会话中的流索引。
#include <call.hpp>
RTCP SDES结构。
公有函数
从pjsip转换
公有变量
RTCP SDES类型CNAME。
RTCP SDES类型NAME。
RTCP SDES类型EMAIL。
RTCP SDES类型电话。
RTCP SDES类型LOC。
RTCP SDES型工具。
RTCP SDES类型注意。
#include <call.hpp>
双向RTP流统计。
公有函数
从pjsip转换
公有变量
建立会话的时间
编码器流统计。
解码器流统计。
往返延迟统计
最后TX RTP时间戳。
最后TX RTP序列。
接收方向IP分组延迟变化统计。
仅当PJMEDIA_RTCP_STAT_HAS_IPDV设置为非零时才使用。
接收方向原始抖动统计。
仅当PJMEDIA_RTCP_STAT_HAS_RAW_JITTER设置为非零时才使用。
同行SDES。
#include <call.hpp>
单向RTP流统计。
公有函数
从pjsip转换
公有变量
上次更新的时间
更新数(计算平均)
总数量。
总负载/字节数。
丢弃数据包总数。
丢包总数。
总数不合格的数据包。
重复数据包总数。
损失期统计。
检测到的损失类型。
抖动统计。
#include <call.hpp>
该结构描述了SDP会话描述。
它对应于pjmedia_sdp_session结构。
公有函数
从pjsip转换
公有变量
整个SDP做为一个字符串。
指向其原始的pjmedia_sdp_session。
只有当结构从PJSIP的pjmedia_sdp_session转换时才有效。
#include <call.hpp>
SRTP加密
公有变量
可选键
若是为空,随机密钥将被自动生成。
加密名称。
标志,位号从#pjmedia_srtp_crypto_option。
#include <call.hpp>
媒体流信息。
公有函数
从pjsip转换
公有变量
此流的媒体类型。
传输协议(RTP / AVP等)
媒体方向。
远程RTP地址。
可选远程RTCP地址。
传出编解码器净荷类型。
传入编解码器有效载荷类型。
编解码器名称。
编解码器时钟速率。
可选编解码器参数
#include <call.hpp>
媒体流统计。
公有函数
从pjsip转换
公有变量
RTCP统计。
抖动缓冲区统计。
PJSUA2存在操做。
namespace pj
PJSUA2 API在pj命名空间内。
Typedefs
好友数组
#include <presence.hpp>
Buddy
公有函数
构造函数
析构器
请注意,若是Buddy实例被删除,它也将删除PJSUA-LIB中的相应伙伴。
建立好友并将好友注册给PJSUA-LIB。
参数
acc - 这个好友的账号。
cfg - 好友配置
检查这个好友是否有效。
返回
若是是的话。
获取详细的好友信息。
返回
好友信息
启用/禁用好友的状态监控。
一旦好友的存在被订阅,应用程序将被通知经过onBuddyState()回调改变好友的状态。
参数
subscribe - 指定true以激活状态订阅。
更新伙伴的在线信息。
虽然lib会按期刷新全部好友的存在订阅,但某些应用程序可能会当即刷新好友的呈现订阅,在这种状况下,可使用此功能来完成此操做。
请注意,只有启用了好友的状态监视,才能启动好友的呈现订阅。请参阅subscribePresence()了解更多信息。此外,若是好友的状态订阅已经处于活动状态,则此功能将不会执行任何操做。
一旦对于好友成功激活了呈现订阅,应用程序将在onBuddyState()回调中通知有关好友的状态。
发送即时消息外部对话框,使用该伙伴指定的账户进行路由集和身份验证。
参数
prm - 发送即时消息参数。
在对话框外发送打字指示。
参数
prm - 发送即时消息参数。
当好友状态发生变化时通知应用程序。
应用程序可能会查询好友信息以获取详细信息。
好友 ID。
账户。
#include <presence.hpp>
当Buddy :: create()将好友添加到好友列表时,此结构将描述好友配置。
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
好友网址或名称地址。
指定是否当即启动呈现订阅。
#include <presence.hpp>
此结构描述好友信息,能够经过Buddy :: getInfo ()检索。
公有函数
从pjsip结构导入。
公有变量
伙伴的完整URI,如配置中所指定。
Buddy的联系人,只有在向好友创建了存在订阅时才可用。
标记表示咱们应该监视此好友的存在信息(一般是,除非明确禁用)。
若是presMonitorEnabled为true,则指定状态订阅的最后状态。
若是存在订阅会话当前处于活动状态,则该值将为PJSIP_EVSUB_STATE_ACTIVE。若是存在订阅请求被拒绝,则该值将为PJSIP_EVSUB_STATE_TERMINATED,而且将在subTermReason中指定终止缘由。
订阅状态的字符串表示。
指定最后一次存在订阅终止代码。
这将返回SUBSCRIBE请求的最后一个状态。若是服务器使用NOTIFY终止订阅,则此值将设置为200,并在subTermReason字段中给出订阅终止缘由。
指定最后一次存在订阅终止缘由。
若是如今订阅当前处于活动状态,则该值将为空。
存在状态
#include <presence.hpp>
这描述了状态。
公有函数
构造函数
公有变量
Buddy的在线状态。
文字描述好友的在线状态。
活动类型
描述人物/元素的可选文本。
可选RPID ID字符串。
PJSUA2持久服务。
namespace pj
PJSUA2 API在pj命名空间内。
#include <persistent.hpp>
ContainerNode的内部数据。
有关更多信息,请参阅ContainerNode实现说明。
公有变量
文件。
内部数据1。
内部数据2。
#include <persistent.hpp>
容器节点是用于存储其余数据元素的占位符,能够是布尔值,数字,字符串,字符串数组或另外一个容器。
容器中的每一个数据基本上都是名称/值对,其类型与其内部相关联,以即可以以正确的类型读取写入的数据。数据被连续读取和写入,读取顺序必须与写入顺序相同。
应用程序能够经过使用各类读取方法从中读取数据,并使用各类写入方式将数据写入数据。或者,使用下面提供的宏读取和写入数据可能会更方便,由于这些宏会自动设置名称:
实施说明:
该ContainerNode类的子类,能够,但不是在一般的C ++的方式。使用一般的C ++继承,一些方法将被作成纯虚拟,而且必须由实际的类实现。然而,这样作将须要ContainerNode类的动态实例化,这意味着咱们将须要传递类做为指针,例如做为readContainer()和writeNewContainer()方法的返回值。那么咱们将须要肯定谁须要或如何删除这些对象,或使用共享指针机制,其中每个被认为太不方便或复杂的目的。
所以,咱们使用C风格的“继承”,其中方法在container_node_op中声明,并在container_node_internal_data结构中声明数据。的实现ContainerNode类须要设置这些成员值是有意义的自己。container_node_op中的方法包含指向实际执行操做的指针,这将根据文档的格式具体化。此ContainerNode类中的方法只是调用container_node_op结构中的实现的简单包装器。
公有函数
肯定是否有未读元素。
若是是,那么应用程序可使用一个readXxx()函数来读取它。
获取下一个未读元素的名称。
从文档读取整数值并返回值。
若是当前的元素不是数字,这将抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从文档读取数值并返回值。
若是当前的元素不是数字,这将抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取一个布尔值并返回值。
若是当前元素不是布尔值,这将抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取字符串值并返回值。
若是当前元素不是字符串,则会抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取字符串数组。
若是当前元素不是字符串数组,这将抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取指定的对象。
这等于调用PersistentObject.readObject(ContainerNode);
参数
obj - 要阅读的对象
从容器中读取容器。
若是当前元素不是容器,这将抛出错误。读取位置将提早到下一个元素。
返回
容器对象。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取数组容器。
若是当前元素不是数组,这将抛出错误。读取位置将提早到下一个元素。
返回
容器对象。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
向容器写入一个数字值。
参数
name - 容器中值的名称。
num - 要写的价值
向容器写入一个数字值。
参数
name - 容器中值的名称。
num - 要写的价值
将一个布尔值写入容器。
参数
name - 容器中值的名称。
value - 要写的价值
将一个字符串值写入容器。
参数
name - 容器中值的名称。
value - 要写的价值
将字符串vector写入容器。
参数
name - 容器中值的名称。
arr - 要写的vector
将一个对象写入容器。
这等于调用PersistentObject.writeObject(ContainerNode);
参数
obj - 要写的对象
建立并写入一个空的Object节点,该节点能够用做后续写入操做的父项。
返回
一个子容器。
参数
name - 容器中新容器的名称。
建立并写入一个空数组节点,能够将其用做后续写入操做的父节点。
返回
一个子容器。
参数
name - 数组的名称。
公有变量
方法表。
内部数据
#include <persistent.hpp>
这是持久性文档的抽象基类。
经过从字符串或文件加载,或经过在向其写入数据时手动构建文档来建立文档。而后,文档能够保存到字符串或文件。文档包含一个根ContainerID,其中全部数据都存储在其下。
文件被顺序读取和写入,所以阅读顺序必须与写做顺序相同。该PersistentDocument类提供的API来读取和写入到根节点,但对于更灵活的业务应用程序可使用ContainerNode方法来代替。事实上,PersistentDocument中的读写API 只是一个调用ContainerNode中相关方法的简写。做为提示,一般应用程序仅使用此处声明的readObject()和writeObject()方法来读/写顶级对象,并使用ContainerNode文档中说明的宏来读取/写入更详细的数据。
公有函数
virtual 析构函数
从文件加载此文档。
参数
filename - 文件名。
从字符串加载此文档。
参数
input - 字符串。
将此文档写入文件。
参数
filename - 文件名。
virtual string saveString() =
将此文档写入字符串。
返回
字符串文档。
获取此文档的根容器节点。
返回
根节点。
肯定是否有未读元素。
若是是,那么应用程序可使用一个readXxx()函数来读取它。
返回
若是有的话。
获取下一个未读元素的名称。
若是没有更多的元素要读取,它将抛出错误。
返回
下一个元素的名称。
从文档读取整数值并返回值。
若是当前的元素不是数字,这将抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从文档读取一个浮点值并返回值。
若是当前的元素不是数字,这将抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取一个布尔值并返回值。
若是当前元素不是布尔值,这将抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取字符串值并返回值。
若是当前元素不是字符串,则会抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取字符串数组。
若是当前元素不是字符串数组,这将抛出错误。读取位置将提早到下一个元素。
返回
价值。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取指定的对象。
这等于调用PersistentObject.readObject(ContainerNode);
参数
obj - 要阅读的对象
从容器中读取容器。
若是当前的元素不是一个对象,这将抛出错误。读取位置将提早到下一个元素。
返回
容器对象。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
从容器读取数组容器。
若是当前元素不是数组,这将抛出错误。读取位置将提早到下一个元素。
返回
容器对象。
参数
name - 若是指定了,那么该函数将检查下一个元素的名称是否与指定的名称匹配,若是不匹配则抛出错误。
向容器写入一个数字值。
参数
name - 容器中值的名称。
num - 要写的价值
向容器写入一个数字值。
参数
name - 容器中值的名称。
num - 要写的价值
将一个布尔值写入容器。
参数
name - 容器中值的名称。
value - 要写的价值
将一个字符串值写入容器。
参数
name - 容器中值的名称。
value - 要写的价值
将字符串vector写入容器。
参数
name - 容器中值的名称。
arr - 要写的vector
将一个对象写入容器。
这等于调用PersistentObject.writeObject(ContainerNode);
参数
obj - 要写的对象
建立并写入一个空的Object节点,该节点能够用做后续写入操做的父项。
返回
一个子容器。
参数
name - 容器中新容器的名称。
建立并写入一个空数组节点,能够将其用做后续写入操做的父节点。
返回
一个子容器。
参数
name - 数组的名称。
#include <persistent.hpp>
这是能够将序列化到/从持久性文档的对象的抽象基类。
由pj :: AccountCallConfig,pj :: AccountConfig,pj :: AccountMediaConfig,pj :: AccountMwiConfig,pj :: AccountNatConfig,pj :: AccountPresConfig,pj :: AccountRegConfig,pj :: AccountSipConfig,pj :: AccountVideoConfig,pj :: Subclassed AuthCredInfo,pj :: BuddyConfig,pj :: EpConfig,pj :: LogConfig,pj :: MediaConfig,pj :: TlsConfig,pj :: TransportConfig,pj :: UaConfig
公有函数
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
namespace pj
PJSUA2 API在pj命名空间内。
#include <json.hpp>
具备JSON格式的持久文档(文件)。
公有函数
默认构造函数。
析构器
从文件加载此文档。
参数
filename - 文件名。
从字符串加载此文档。
参数
input - 字符串。
将此文档写入文件。
参数
filename - 文件名。
将此文档写入字符串。
virtual ContainerNode&getRootContainer() const
获取此文档的根容器节点。
一个内部函数来建立JSON元素。
一个内部函数来获取池。
namespace pj
PJSUA2 API在pj命名空间内。
Typedefs
字符串数组
多部分数组。
#include <siptypes.hpp>
证实资料。
凭据包含用于对服务进行身份验证的信息。
公有函数
默认构造函数。
使用指定的参数构造凭据。
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
认证方案(例如
“消化”)。
使用该凭证的领域。
使用“*”建立可用于对任何挑战进行身份验证的凭据。
验证用户名。
“数据”字段中包含的数据类型。
若是数据包含纯文本密码,请使用0。
数据,能够是纯文本密码或散列摘要。
永久用户密钥。
操做员变体键。
认证管理领域。
#include <siptypes.hpp>
此结构描述消息到达事件。
公有变量
接收数据缓冲区。
#include <siptypes.hpp>
此结构包含用于发送实例消息方法的参数,例如:Buddy :: sendInstantMessage(),Call:sendInstantMessage()。
公有函数
默认构造函数用零/空值初始化。
公有变量
MIME类型。
默认为“text / plain”。
消息内容。
要包括在传出请求中的标题列表等。
用户数据,当IM回调被调用时将被返回。
#include <siptypes.hpp>
此结构包含用于发送打字指示方法的参数,例如:Buddy :: sendTypingIndication(),Call:sendTypingIndication()。
公有函数
默认构造函数用零/空值初始化。
公有变量
确实是为了向远方指示当地人当前正在键入IM。
要包括在传出请求中的标题列表等。
#include <siptypes.hpp>
此结构描述事件描述符以彻底标识SIP事件。
它对应于PJSIP库中的pjsip_event结构。
公有函数
默认构造函数。
从PJSIP的pjsip_event构造。
公有变量
事件类型能够是pjsip_event_id_e的任何值。
事件主体,哪些字段取决于事件类型。
指向其原始的pjsip_event。
仅当从PJSIP的pjsip_event构造结构时才有效。
#include <siptypes.hpp>
事件体。
公有变量
定时器事件。
事务状态发生了变化。
消息传输事件。
传输错误事件。
消息到达事件。
用户事件。
#include <siptypes.hpp>
简单的SIP头。
公有函数
从PJSIP头开始。
转换为PJSIP标题。
公有变量
标题名称
标题值。
用于转换为PJSIP标头的Interal缓冲区。
#include <siptypes.hpp>
SIP媒体类型包含类型和子类型。
例如,对于“application / sdp”,类型为“application”,子类型为“sdp”。
公有函数
从PJSIP的pjsip_media_type构造。
转换为PJSIP的pjsip_media_type。
公有变量
媒体类型
媒体子类型。
#include <siptypes.hpp>
这描述了每一个多部分。
公有函数
从PJSIP的pjsip_multipart_part开始。
转换为PJSIP的pjsip_multipart_part。
公有变量
要放在这个多部分的可选标题。
这个多部分部分的主体部分的MIME类型。
身体部分是这个多部分的部分。
用于转换为PJSIP的Interal缓冲区pjsip_multipart_part。
#include <siptypes.hpp>
该结构描述了传入的SIP消息。
它对应于PJSIP库中的pjsip_rx_data结构。
公有函数
默认构造函数。
从PJSIP的pjsip_rx_data构造。
公有变量
描述请求的简短信息字符串,一般包含请求方法及其CSeq。
整个消息数据做为一个字符串,包含标题部分和消息正文部分。
消息的源地址。
指向原始的pjsip_rx_data。
仅当从PJSIP的pjsip_rx_data构造结构时才有效。
#include <siptypes.hpp>
该结构描述了SIP事务对象。
它对应于PJSIP库中的pjsip_transaction结构。
公有函数
默认构造函数。
从PJSIP的pjsip_transaction构造。
公有变量
角色(UAS或UAC)
方法。
看到最后的状态码。
最后的缘由短语。
状态
消息保留转发。
pjsip_transaction。
#include <siptypes.hpp>
该结构描述了传出的SIP消息。
它对应于PJSIP库中的pjsip_tx_data结构。
公有函数
默认构造函数。
从PJSIP的pjsip_tx_data构造。
公有变量
描述请求的简短信息字符串,一般包含请求方法及其CSeq。
整个消息数据做为一个字符串,包含标题部分和消息正文部分。
邮件的目的地址。
指向原始的pjsip_tx_data。
仅当从PJSIP的pjsip_tx_data构造结构时才有效。
#include <siptypes.hpp>
发送出站SIP消息时的附加选项。
这对应于PJSIP库中的pjsua_msg_data结构。
公有函数
检查选项是否为空。
若是选项设置为空值,将不会发送附加信息与传出的SIP消息。
返回
若是选项为空,则为真。
从PJSUA的pjsua_msg_data开始。
转换为PJSUA的pjsua_msg_data。
公有变量
可选远程目标URI(即
目标标题)。若是为空(“”),则将目标设置为远程URI(To头)。此时只有在发送初始INVITE和MESSAGE请求时才使用该字段。
要包含在外发消息中的附加消息头。
消息体的MIME类型,若是应用程序在此结构中指定了messageBody。
仅当消息没有正文时,能够将消息体添加到消息中。
多部分主体的内容类型。
若是应用程序想要发送多部分消息体,它将部件放在multipartParts中,并将内容类型设置为multipartContentType。若是消息已经包含一个主体,那么主体将被添加到多部分主体中。
多部分数组。
若是应用程序须要发送多消息体,它把零件在零件和设置在内容类型multipart_ctype。若是消息已经包含一个主体,那么主体将被添加到多部分主体中。
#include <siptypes.hpp>
此结构描述定时器事件。
公有变量
定时器输入。
#include <siptypes.hpp>
TLS传输设置,要在TransportConfig中指定。
公有函数
默认构造函数初始化为默认值。
转换为pjsip。
从pjsip转换
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
证书证书(CA)清单文件。
公共端点证书文件,将用做传出TLS链接的客户端证书,以及用于传入TLS链接的服务器端证书。
要使用的端点证书的可选私钥。
密码打开私钥。
TLS协议方法来自#pjsip_ssl_method。
在未来,这个领域可能不同意使用原型领域。如今,此字段仅在原始字段设置为零时才适用。
默认值为PJSIP_SSL_UNSPECIFIED_METHOD(0),后者又将使用PJSIP_SSL_DEFAULT_METHOD,默认值为PJSIP_TLSV1_METHOD。
TLS协议类型来自#pj_ssl_sock_proto。
使用此字段启用特定的协议类型。使用按位或运算组合协议类型。
默认为PJSIP_SSL_DEFAULT_PROTO。
密码和订单偏好。
该Endpoint::utilSslGetAvailableCiphers()能够用来检查由后端支持的可用密码。若是数组为空,则将使用后端的默认密码列表。
在服务器上指定TLS传输行为TLS证书验证结果:
在任何状况下,应用程序能够检查回调中的pjsip_tls_state_info以查看验证详细信息。
默认值为false。
指定客户端TLS证书验证结果的TLS传输行为:
在任何状况下,应用程序能够检查回调中的pjsip_tls_state_info以查看验证详细信息。
默认值为PJ_FALSE。
看成为服务器(传入TLS链接)时,若是客户端不提供TLS证书,则拒绝传入链接。
此设置对应于SSL_VERIFY_FAIL_IF_NO_PEER_CERT标志。默认值为PJ_FALSE。
TLS协商超时应用于传出和传入链接,以毫秒为单位。
若是为0,则SSL协商没有超时。
默认值:零
要在此传输上设置QoS流量类型。
当应用程序想要将QoS标记应用于传输时,最好设置此字段而不是qosParam字段,由于这更容易。
默认值为PJ_QOS_TYPE_BEST_EFFORT。
将低级QoS参数设置为传输。
这是比设置qosType字段更低级别的操做,可能在全部平台上都不支持。
默认状况下,此结构中的全部设置都被禁用。
指定在设置QoS流量类型/参数时传输是否应该忽略任何错误。
默认值:PJ_TRUE
#include <siptypes.hpp>
建立传输实例的参数。
公有函数
默认构造函数初始化为默认值。
从pjsip转换
转换为pjsip。
从容器节点读取此对象。
参数
node - 容器从中读取值。
将此对象写入容器节点。
参数
node - 容器将值写入。
公有变量
本地绑定的UDP端口号。
即便须要默认端口,也必须指定此设置。若是值为零,则传输将绑定到任何可用端口,应用程序能够经过查询传输信息来查询端口。
指定插座结合相对于在指定的起始端口号端口范围,端口。
请注意,此设置仅适用于起始端口号不为零时。
默认值为零。
可选地址做为此传输的地址进行广告宣传。
应用程序能够指定该字段的任何地址或主机名,例如它能够指向系统中的一个接口地址,也能够指向为该应用配置了端口映射的NAT路由器的公网地址。
注意:此选项也能够用于UDP和TCP二者!
应该将套接字绑定到的可选地址。
该选项应该仅用于选择性地将套接字绑定到特定接口(而不是0.0.0.0),而且不该该用于设置传输的发布地址(public_addr字段应该用于此目的)。
请注意,与public_addr字段不一样,这里的地址(或主机名)必须对应于主机中的实际接口地址,由于该地址将被指定为bind()参数。
这指定TLS传输的TLS设置。
只有当此传输配置用于建立SIP TLS传输时,才能使用它。
要在此传输上设置QoS流量类型。
当应用程序想要将QoS标记应用于传输时,最好设置此字段而不是qosParam字段,由于这更容易。
默认值是QoS未设置。
pj_qos_params qosParams
将低级QoS参数设置为传输。
这是比设置qosType字段更低级别的操做,可能在全部平台上都不支持。
默认值是QoS未设置。
#include <siptypes.hpp>
此结构描述了Endpoint :: transportGetInfo()函数返回的传输信息。
公有函数
从pjsua_transport_info构造。
公有变量
PJSUA传输识别。
传输类型。
传输类型名称。
传输字符串信息/描述。
传输标志(见pjsip_transport_flags_e)。
本地/绑定地址。
发布地址(或传输地址名称)。
当前引用此传输的对象的数量。
#include <siptypes.hpp>
此结构描述事务状态改变事件。
公有变量
事件来源
交易。
之前的状态
事件来源类型:
#include <siptypes.hpp>
此结构描述事务状态事件源。
公有变量
传入的消息。
传出的消息。
定时器。
传输错误状态。
通用数据。
#include <siptypes.hpp>
此结构描述传输错误事件。
公有变量
发送数据。
交易。
#include <siptypes.hpp>
该结构描述消息传输事件。
公有变量
发送数据缓冲区。
#include <siptypes.hpp>
此结构描述用户事件。
公有变量
用户数据1。
用户数据2。
用户数据3。
用户数据4。
PJSUA2基本类型。
定义
触发错误异常。
触发错误异常。
触发错误异常。
若是表达式失败,则引起错误异常。
若是状态失败,则触发错误异常。
若是表达式失败,则引起错误异常。
namespace pj
PJSUA2 API在pj命名空间内。
string 数组
整数数组。
令牌类型,即
任意应用程序用户数据
套接字地址,编码为字符串。
套接字地址包含“host [:port]”格式的主机和端口号。主机部分可能包含主机名,域名,IPv4或IPv6地址。对于IPv6地址,地址将用方括号括起来,例如“[:: 1]:5060”。
传输ID是一个整数。
传输句柄对应于pjsip_transport实例。
计时器输入,对应于pj_timer_entry。
通用数据。
常数
值:
INVALID_ID = -1
无效ID,等于PJSUA_INVALID_ID。
SUCCESS= 0
成功,等于PJ_SUCCESS。
#include <types.hpp>
此结构包含有关做为异常抛出的错误的信息。
公有函数
构建错误字符串。
默认构造函数。
从指定的参数构造一个错误实例。
若是prm_reason为空,它将填写状态代码的错误描述。
公有变量
错误代码。
抛出错误的PJSUA API操做。
错误消息。
抛出错误的PJSUA源文件。
引起错误的PJSUA源文件的行号。
#include <types.hpp>
表示时间价值。
公有函数
从pjsip转换
公有变量
秒的时间部分。
时间的毫秒数。
#include <types.hpp>
版本信息。
公有变量
主要号码。
次要号码
附加修订号。
版本后缀(例如
“-svn”)
完整版本信息(例如
“2.1.0-svn”)
PJLIB版本号为三个字节,格式以下:0xMMIIRR00,其中MM:主号,II:次号,RR:修订号,00:如今老是为零。
PJSUA2基本代理操做。
指定错误异常信息是否包含操做和源文件信息。