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基本代理操做。
指定錯誤異常信息是否包含操做和源文件信息。