7 呼叫Calls
呼叫由Call類處理
7.1 子類化Call類
要使用Call類,應用程序應創建子類,如:
class MyCall : public Call { public: MyCall(Account &acc, int call_id = PJSUA_INVALID_ID) : Call(acc, call_id) { } ~MyCall() { } // Notification when call's state has changed. virtual void onCallState(OnCallStateParam &prm); // Notification when call's media state has changed. virtual void onCallMediaState(OnCallMediaStateParam &prm); };
在其子類中,應用程序可以實現呼叫回調,基本上用於處理與呼叫有關的事件,如呼叫狀態更改或來電轉接請求。
7.2 呼出 Making Outgoing Calls
撥出電話很簡單,只需調用Call對象的makeCall()方法即可。假設在“dest_uri”中將Account對象作為acc變量和目標URI字符串,可以使用下面的代碼段發起呼出:
Call *call = new MyCall(*acc); CallOpParam prm(true); // Use default call settings try { call->makeCall(dest_uri, prm); } catch(Error& err) { cout << err.info() << endl; }
上面的代碼段創建一個Call對象,並使用默認的呼叫設置啟動到dest_uri的呼出。對呼叫的后續操作可以使用呼叫實例中的方法,並且將呼叫的事件報告給回調。有關回調的更多內容將稍后解釋。
7.3 接收來電 Receiving Incoming Calls
來電將被報告為Account類的onIncomingCall()。必須從Account類派生一個類來處理來電。
以下是回調實現的示例代碼:
void MyAccount::onIncomingCall(OnIncomingCallParam &iprm)
{ Call *call = new MyCall(*this, iprm.callId); CallOpParam prm; prm.statusCode = PJSIP_SC_OK; call->answer(prm); }
對於來電,如以上所示,在回調函數中創建呼叫實例。應用程序應確保在呼叫生命周期內存儲呼叫實例(直到呼叫斷開連接)。
7.4 呼叫屬性
所有呼叫屬性,如狀態,媒體狀態,遠端(遠程對等體)信息等都存儲為CallInfo類,可以使用Call的getInfo()方法獲取。
7.5 呼叫斷開
呼叫斷開事件是一個特殊的事件,因為一旦報告此事件的回調返回,該調用將不再有效,並且調用對象的任何操作將引發錯誤異常。因此,建議刪除回調中的調用對象。
Call的onCallState()方法報告呼叫斷開,可以檢測如下:
void MyCall::onCallState(OnCallStateParam &prm) { CallInfo ci = getInfo(); if (ci.state == PJSIP_INV_STATE_DISCONNECTED) { /* Delete the call */ delete this; } }
7.6 與通話的音頻媒體工作
當呼叫的音頻媒體准備就緒(或激活)時,只能使用呼叫的音頻媒體(例如,連接會議電話中的聲音設備的呼叫)。呼叫媒體狀態的更改在onCallMediaState()回調中報告,如果呼叫音頻媒體已准備就緒(或活動),則Call.getMedia()函數將返回有效的音頻媒體。
以下是當媒體處於活動狀態時將呼叫連接到聲音設備的示例代碼:
void MyCall::onCallMediaState(OnCallMediaStateParam &prm) { CallInfo ci = getInfo(); // Iterate all the call medias for (unsigned i = 0; i < ci.media.size(); i++) { if (ci.media[i].type==PJMEDIA_TYPE_AUDIO && getMedia(i)) { AudioMedia *aud_med = (AudioMedia *)getMedia(i); // Connect the call audio media to sound device AudDevManager& mgr = Endpoint::instance().audDevManager(); aud_med->startTransmit(mgr.getPlaybackDevMedia()); mgr.getCaptureDevMedia().startTransmit(*aud_med); } } }
當音頻媒體變得不活動時(例如當呼叫被保持)時,不需要停止到/從聲音設備的音頻媒體傳輸,因為(當音頻媒體不再有效時)呼叫的音頻媒體將自動從會議橋被移除,這也將自動刪除來自或連接到該呼叫的所有連接。
7.7 呼叫操作
可以調用Call對象的操作,例如掛斷,保持呼叫,發送re-INVITE等。請參閱Call的參考文檔以獲取更多信息。
7.8 即時消息(IM)
可以使用Call.sendInstantMessage()在通話中發送IM。Call.onInstantMessageStatus()回調方法報告傳出即時消息的傳輸狀態。
除了發送即時消息,還可以使用Call.sendTypingIndication()發送打字指示。
在呼叫中收到的IM和打字指示將在回調函數Call.onInstantMessage()和Call.onTypingIndication()中報告。
或者,您可以通過使用Buddy.sendInstantMessage()和Buddy.sendTypingIndication()發送IM和打電話外的指示。有關更多信息,請參閱文檔。
7.9 類參考
7.9.1 Call
公有函數
1)Call(Account &ACC,INT CALL_ID = PJSUA_INVALID_ID )
構造函數
2)virtual ~Call()
析構
3)CallInfo getInfo() const
獲取有關此呼叫的詳細信息。
返回
呼叫信息。
4)bool isActive() const
檢查此呼叫是否具有活動的INVITE會話,並且INVITE會話未被斷開。
返回
如果call處於活動狀態,則為真。
5)INT getId() const
獲取與此呼叫相關聯的PJSUA-LIB呼叫ID或索引。
返回
整數大於或等於零。
6)bool hasMedia() const
檢查呼叫是否有活動的媒體會話。
返回
如果是,則為真。
7)Media * getMedia(unsigned med_idx ) const
獲取指定介質索引的介質。
返回
Media 或NULL(如果invalid 或inactive)
參數
- med_idx - 媒體索引號
8)pjsip_dialog_cap_status remoteHasCap( INT HTYPE,const string hname,const string token ) const
檢查遠端(遠程對等體)是否支持指定的功能。
返回
PJSIP_DIALOG_CAP_SUPPORTED如果顯式支持指定的功能,請參閱pjsip_dialog_cap_status以獲取更多信息。
參數
- htype - 要檢查的標題類型(pjsip_hdr_e),該值可以是:
- o PJSIP_H_ACCEPT
- o PJSIP_H_ALLOW
- o PJSIP_H_SUPPORTED
- hname -如果htype指定了PJSIP_H_OTHER,則必須在此參數中提供頭名稱。否則,該值必須設置為空字符串(“”)。
- token -檢查的能力標記。例如,如果HTYPE是PJSIP_H_ALLOW,則令牌指定方法名稱; 如果HTYPE是PJSIP_H_SUPPORTED,則令牌指定諸如“100rel”擴展名。
9)void setUserData(Token user_data )
將應用程序特定數據附加到呼叫。
然后,應用程序可以通過調用檢查此數據getUserData() 。
參數
- user_data -要附加到任意數據。
10)Token getUserData() const
獲取附接至該呼叫,先前已經設置與用戶數據()setUserData來。
返回 用戶數據
11)pj_stun_nat_type getRemNatType()
獲取遠程端點的NAT類型。
當natTypeInSdp 在UaConfig中設置時,這是pjsua-lib的專有特征,在SDP中發送NAT類型。
只有從遠程接收到SDP之后才能調用此功能。這意味着對於來電,只要來電包含SDP,就可以在收到呼叫時立即調用此功能;對於撥出的呼叫,此功能只能在接收SDP后(通常為200 / OK響應INVITE)才能調用。一般情況下,應用程序應在調用onCallMediaState()時或調用該回調之后才能使用該函數。
返回
NAT類型。
參考
Endpoint:: natGetType(),natTypeInSdp
12)void makeCall(const string &dst_uri, const CallOpParam&PRM )
撥出電話給指定的URI。
參數
- dst_uri -要放入To頭的URI(通常與目標URI相同)。
- prm.opt -可選呼叫設置。
- prm.txOption -可選標題等待添加到發出的INVITE請求。
13)void answer(const CallOpParam&PRM )
通過呼叫設置參數發送對INVITE請求的響應。
根據指定為參數的狀態碼,此功能可能發送臨時響應,建立呼叫或終止呼叫。有關通話設置的注意事項:
- 如果在此功能的后續呼叫中更改呼叫設置,則僅應用提供的第一個呼叫設置。所以一般來說,應用程序在獲取用戶的確認之前不會提供呼叫設置。
- 如果在SDP已發送未提供通話設置,即:答案與狀態碼183或者2xx,默認調用的設置將被使用,檢查CallSetting它的默認值。
參數
prm.opt -可選呼叫設置。
prm.statusCode -狀態碼,(100-699)。
prm.reason -可選原因短語。如果為空,將使用默認文本。
prm.txOption -要添加到傳出響應消息的標題等的可選列表。請注意,此消息數據將在此INVITE請求的所有下一個答案/響應中持續存在。
14)void hangup(const CallOpParam&PRM )
通過使用根據呼叫狀態適當的方法掛斷呼叫。
此功能比3XX-6xx應答應答呼叫(使用不同的答案() ),在這個函數會掛斷電話,無論狀態和呼叫的角色,而答案()只與早期國家來電工程。
參數
prm.statusCode -我們拒絕來電時可以發送的可選狀態碼。如果值為零,將發送“603 / Decline”。
prm.reason -我們拒絕來電時可以選擇發送的原因短語。如果為空,將使用默認文本。
prm.txOption -要添加到傳出請求/響應消息的標題等的可選列表。
15)void setHold( const CallOpParam&PRM )
將指定的呼叫置於保持狀態。
這將發送re-INVITE與適當的SDP通知遙控器呼叫被擱置。請求本身的最終地位將在報告onCallMediaState()回調,這表示該呼叫的媒體狀態已經改變了應用程序。
參數
prm.options -pjsua_call_flag常量的位掩碼。目前,只能使用標志PJSUA_CALL_UPDATE_CONTACT。
prm.txOption -與請求一起發送的可選消息組件。
16)void reinvite( const CallOpParam&PRM )
發送re-INVITE。
請求本身的最終地位將在報告onCallMediaState()回調,這表示該呼叫的媒體狀態已經改變了應用程序。
參數
prm.opt -可選呼叫設置,如果為空,當前呼叫設置將保持不變。
prm.opt.flag -pjsua_call_flag常量的位掩碼。在此指定PJSUA_CALL_UNHOLD將釋放呼叫保持。
prm.txOption -與請求一起發送的可選消息組件。
17)void update( const CallOpParam&PRM )
發送UPDATE請求。
參數
prm.opt -可選呼叫設置,如果為空,當前呼叫設置將保持不變。
prm.txOption -與請求一起發送的可選消息組件。
18)void xfer(const string &DEST, const CallOpParam&PRM )
啟動呼叫轉移到指定的地址。
該功能將發送REFER請求,指示遠程呼叫方向指定的目的地/目標發起新的INVITE會話。
如果應用程序有興趣監視成功性和傳輸請求的進步,它可以實現onCallTransferStatus()回調,這將報告該呼叫轉移請求的進度。
參數
dest -要聯系的新目標的URI。URI可以是名稱地址或addr-spec格式。
prm.txOption -與請求一起發送的可選消息組件。
19)void xferReplaces( const call & dest_call, const CallOpParam & PRM )
發起參加呼叫轉移。
此功能會發送REFER請求指示遠程呼叫方發起新的INVITE會話的URL destCall。在黨dest_call則應從REFER接受者新來電與我們“取代”的號召。
參數
dest_call -呼叫被替換。
prm.options -應用程序可以指定PJSUA_XFER_NO_REQUIRE_REPLACES以阻止在REFER請求創建的傳出INVITE請求中包含“Require:replace”。
prm.txOption -與請求一起發送的可選消息組件。
20)void processRedirect( pjsip_redirect_op CMD )
接受或拒絕重定向響應。
應用程序必須調用此函數后,它在信號PJSIP_REDIRECT_PENDING onCallRedirected()回調,以通知呼叫是否接受或拒絕重定向到當前目標。應用程序可以使用PJSIP_REDIRECT_PENDING命令的組合onCallRedirected()回調此功能將呼叫重定向之前要求用戶權限。
請注意,如果應用程序選擇拒絕或停止重定向(通過分別使用PJSIP_REDIRECT_REJECT或PJSIP_REDIRECT_STOP),則此函數返回之前將調用呼叫斷開回調。如果應用程序拒絕對目標的onCallRedirected()回調也可稱為前如果有另一個目標試試這個函數返回。
參數
cmd -要應用於當前目標的重定向操作。這種說法的語義相似,在說明書onCallRedirected()回調,除了PJSIP_REDIRECT_PENDING這里不接受。
21)void dialDtmf( const string &digits)
使用RFC 2833有效載荷格式將DTMF數字發送到遠程。
參數
digits -要發送的DTMF字符串數字。
22)void sendInstantMessage( const SendInstantMessageParam &PRM )
在INVITE會話中發送即時消息。
參數
prm.contentType -MIME類型。
prm.content -消息內容。
prm.txOption -要包括在傳出請求中的標題等的可選列表。txOption中的body描述符被忽略。
prm.userData -可選的用戶數據,在調用IM回調時將返回。
23)void sendTypingIndication( const SendTypingIndicationParam&PRM )
在INVITE會話中發送IM打字指示。
參數
prm.isTyping -確實是為了向遠方指示當地人當前正在鍵入IM。
prm.txOption -要包括在傳出請求中的標題等的可選列表。
24)void sendRequest( const CallSendRequestParam&PRM )
發送任意請求與呼叫。
這對於發送INFO請求是有用的。請注意,應用程序不應該使用此函數發送將更改邀請會話狀態的請求,例如re-INVITE,UPDATE,PRACK和BYE。
參數
prm.method -請求的SIP方法。
prm.txOption -可選消息體和/或要包括在傳出請求中的頭的列表。
字符串dump(布爾with_media,const string 縮進)
將呼叫和媒體統計信息轉儲為字符串。
返回
呼叫轉儲和媒體統計字符串。
參數
with_media -真的也包括媒體信息。
indent -左縮進的空格。
25)INT vidGetStreamIdx() const
獲取通話中默認視頻流的媒體流索引。
通常這將只是檢索呼叫中第一個激活的視頻流的流索引。如果沒有活動,它將返回第一個不活動的視頻流。
返回
Media 流索引為-1,如果沒有視頻流存在於呼叫中。
26)bool vidStreamIsRunning( INT med_idx,pjmedia_dir DIR ) const
確定指定呼叫的視頻流當前是否正在運行(即,
已被創建,啟動,不被暫停)。
返回
如果目前正在為指定的方向運行流,則為真。
參數
med_idx -媒體流索引,或-1指定默認的視頻媒體。
dir -要檢查的方向。
27)void vidSetStream(pjsua_call_vid_strm_op op, const CallVidSetStreamParam ¶m)
為指定的呼叫添加,刪除,修改和/或操縱視頻媒體流。
這可能會觸發重新啟動或更新以發送呼叫。
參數
op -要執行的視頻流操作,可能的值是pjsua_call_vid_strm_op。
param -視頻流操作的參數(見CallVidSetStreamParam)。
28)StreamInfo getStreamInfo(unsigned med_idx ) const
獲取指定媒體索引的媒體流信息。
返回
流信息。
參數
med_idx -媒體流索引。
29)StreamStat getStreamStat(unsigned med_idx ) const
獲取指定媒體索引的媒體流統計信息。
返回
流統計。
參數
med_idx -媒體流索引。
30)MediaTransportInfo getMedTransportInfo(unsigned med_idx ) const
獲取指定媒體索引的媒體傳輸信息。
返回
交通信息。
參數
med_idx -媒體流索引。
31)void processMediaUpdate(OnCallMediaStateParam&PRM )
內部功能(由callled 端點(工藝更新調用媒體呼吁媒體狀態發生變化時。
32)void processStateChange(OnCallStateParam&PRM )
內部功能(通過稱為端點)來處理呼叫狀態的變化。
33)virtual void onCallState(OnCallStateParam&PRM )
呼叫狀態發生變化時通知應用程序。
然后,應用程序可以查詢通話信息通過調用來獲取詳細呼叫狀態的getInfo()函數。
參數
prm -回調參數
34)virtual void onCallTsxState(OnCallTsxStateParam&PRM )
這是一個通用回調,當呼叫中的一個事務已經改變狀態時被調用。
例如,應用程序可以實現此回調,以監視傳出請求的狀態,或者以最終響應回答未處理的傳入請求(如INFO)。
參數
prm -回調參數
35)virtual void onCallMediaState(OnCallMediaStateParam&PRM )
當通話中的媒體狀態發生變化時通知應用程序。
正常應用需要實現這種回調,例如將呼叫的媒體連接到聲音設備。當使用ICE時,也會調用此回調來報告ICE協商失敗。
參數
prm -回調參數
36)virtual void onCallSdpCreated(OnCallSdpCreatedParam&PRM )
當呼叫剛剛創建本地SDP(用於初始或隨后的SDP報價/答案)時通知應用程序。
應用程序可以在遠程SDP發送和/或協商之前實施此回調來修改SDP,例如,以每個帳戶/呼叫基礎編解碼器優先級應用或添加自定義/專有SDP屬性。
參數
prm -回調參數
37)virtual void onStreamCreated(OnStreamCreatedParam&PRM )
在創建媒體會話之前,注冊到會議橋之前通知應用程序。
如果已將媒體處理端口添加到流中,應用程序可能會返回不同的媒體端口。然后,這個媒體端口將被添加到會議橋。
參數
prm -回調參數
38)virtual void onStreamDestroyed(OnStreamDestroyedParam&PRM )
Media 會議從會議橋被注銷並被破壞時通知應用程序。
參數
prm -回調參數
39)virtual void onDtmfDigit(OnDtmfDigitParam&PRM )
傳入DTMF數字時通知應用程序。
參數
prm -回調參數
40)virtual void onCallTransferRequest(OnCallTransferRequestParam&PRM )
通知申請被轉移(即
REFER被接收)。應用程序可以通過設置代碼來決定接受/拒絕傳輸請求(默認為202)。當此回調未實現時,默認行為是接受轉移。
參數
prm -回調參數
41)virtual void onCallTransferStatus(OnCallTransferStatusParam&PRM )
通知應用以前發送的呼叫轉移請求的狀態。
應用程序可以監視呼叫轉移請求的狀態,例如決定是否終止現有呼叫。
參數
prm -回調參數
42)virtual void onCallReplaceRequest(OnCallReplaceRequestParam&PRM )
通過替換標題通知有關INVITE的應用程序。
應用程序可以通過設置非2xx代碼來拒絕該請求。
參數
prm -回調參數
43)virtual void onCallReplaced(OnCallReplacedParam&PRM )
通知應用程序現有呼叫已被新呼叫替換。
當PJSUA-API使用Replaces標頭接收到INVITE請求時,會發生這種情況。
這種回調被調用后,通常PJSUA-API將斷開此呼叫並建立一個新的呼叫newCallId。
參數
prm -回調參數
44)virtual void onCallRxOffer(OnCallRxOfferParam&PRM )
當通話接收到來自遙控器的新報價時通知應用程序(即
接收到使用SDP的re-INVITE / UPDATE)。應用程序可以通過設置代碼來決定接受/拒絕報價(默認為200)。如果報價被接受,應用程序可以更新應答的通話設置。當此回調未實現時,默認行為是接受使用當前通話設置的報價。
參數
prm -回調參數
45)virtual void onCallTxOffer(OnCallTxOfferParam&PRM )
通話時通知應用程序接收到沒有SDP報價的INVITE。
應用程序可以更新呼叫設置(例如:添加音頻/視頻),或啟用/禁用編解碼器,或者從回調內更新其他媒體會話設置,但是,如標准(RFC3261第14.2節)所規定的那樣,它必須確保更新與需要對等體支持的現有媒體會話(編解碼器,傳輸或其他參數)重疊,這是為了避免對等體拒絕該提議。
當不執行此回調時,默認行為是使用當前活動媒體會話發送SDP報價(每個媒體類型上都有所有啟用的編解碼器)。
參數
prm -回調參數
46)virtual void onInstantMessage(OnInstantMessageParam&PRM )
通知輸入MESSAGE請求的應用程序。
參數
prm -回調參數
47)virtual void onInstantMessageStatus(OnInstantMessageStatusParam&PRM )
通知應用程序關於傳出MESSAGE請求的傳送狀態。
參數
prm -回調參數
48)virtual void onTypingIndication(OnTypingIndicationParam&PRM )
通知應用程序打字指示。
參數
prm -回調參數
49)virtual pjsip_redirect_op onCallRedirected(OnCallRedirectedParam&PRM )
當呼叫即將重新發送INVITE請求到指定的目標時,調用此回調,遵循先前接收到的重定向響應。
應用程序可以接受重定向到指定的目標,僅拒絕此目標,並使會話繼續嘗試列表中的下一個目標,如果此類目標存在,則完全停止整個重定向過程,並導致會話斷開或延遲決定要求用戶確認。
此回調是可選的,默認行為是不遵循重定向響應。
返回
為目標執行的行動。將此參數設置為以下值之一:
- PJSIP_REDIRECT_ACCEPT:立即接受重定向。設置后,呼叫將立即重新發送INVITE請求給目標。
- PJSIP_REDIRECT_ACCEPT_REPLACE:立即接受重定向,並將To標題替換為當前目標。設置后,呼叫將立即重新發送INVITE請求給目標。
- PJSIP_REDIRECT_REJECT:立即拒絕此目標。如果存在,則呼叫將繼續重試下一個目標,如果沒有更多目標嘗試,則斷開該呼叫。
- PJSIP_REDIRECT_STOP:停止整個重定向過程,並立即斷開通話。該onCallState()回調將PJSIP_INV_STATE_DISCONNECTED狀態回調返回后立即調用。
- PJSIP_REDIRECT_PENDING:如果不能立即作出決定(例如要求用戶確認),則設置為此值。然后應用程序必須調用processRedirect() ,以接受或在獲取用戶決定拒絕該重定向。
參數
prm -回調參數
50)virtual void onCallMediaTransportState(OnCallMediaTransportStateParam&PRM )
當媒體傳輸狀態更改時,將調用此回調。
參數
prm -回調參數
51)virtual void onCallMediaEvent(OnCallMediaEventParam&PRM )
有關媒體事件(例如視頻通知)的通知。
這種回調很可能是從媒體線程調用的,所以應用程序不能在這個回調中執行大量的處理。特別是,應用程序不得在此回調中銷毀呼叫或媒體。如果應用程序需要執行更復雜的任務來處理事件,則應將任務發布到另一個線程。
參數
prm -回調參數
52)virtual void onCreateMediaTransport(OnCreateMediaTransportParam&PRM )
應用程序可以使用此回調來實現呼叫的自定義媒體傳輸適配器,或者使用完全全新的媒體傳輸替換媒體傳輸。
創建新呼叫時調用此回調。圖書館創造了該呼叫的媒體傳輸,它被設置為mediaTp回調的論據。回調可能會隨媒體傳輸的實例而改變,以便呼叫使用。
參數
prm -回調參數
53)virtual void onCreateMediaTransportSrtp(OnCreateMediaTransportSrtpParam&PRM )
當創建SRTP媒體傳輸時,將調用此回調。
應用程序可以修改SRTP設置srtpOpt指定cryptos和密鑰,其將被使用。請注意,應用程序不應該修改字段pjmedia_srtp_setting.close_member_tp,只能修改字段pjmedia_srtp_setting.use初始INVITE。
參數
prm -回調參數
公共靜態功能
54)static Call * lookup( INT CALL_ID )
獲取呼叫的指定呼叫ID級別。
返回
該呼叫實例或NULL,如果沒有找到。
參數
call_id -要查找的呼叫ID
7.9.2 設置
55)struct pj::CallSetting
通話設置。
7.9.3 信息和統計
56)struct pj::CallInfo
呼叫信息。
應用程序可以通過調用查詢呼叫信息呼叫::的getInfo() 。
57)struct pj::CallMediaInfo
呼叫媒體信息。
58)struct pj::StreamInfo
媒體流信息。
59)struct pj::StreamStat
媒體流的統計數據。
60)struct pj::JbufState
此結構描述抖動緩沖狀態。
61)struct pj::RtcpStat
雙向RTP流統計。
62)struct pj::RtcpStreamStat
單向RTP流統計。
63)struct pj::MathStat
此結構描述統計狀態。
64)struct pj::MediaTransportInfo
這種結構描述媒體傳輸信息。
它對應於pjmedia_transport_info結構。
7.9.4 回調參數
65)struct pj::OnCallStateParam
該結構包含參數用於call:: onCallState()回調。
66)struct pj::OnCallTsxStateParam
該結構包含參數用於call:: onCallTsxState()回調。
67)struct pj::OnCallMediaStateParam
該結構包含參數用於call:: onCallMediaState()回調。
68)struct pj::OnCallSdpCreatedParam
該結構包含參數用於call:: onCallSdpCreated()回調。
69)struct pj::OnStreamCreatedParam
該結構包含參數用於call:: onStreamCreated()回調。
70)struct pj::OnStreamDestroyedParam
該結構包含參數用於call:: onStreamDestroyed()回調。
71)struct pj::OnDtmfDigitParam
該結構包含參數用於call:: onDtmfDigit()回調。
72)struct pj::OnCallTransferRequestParam
該結構包含參數用於call:: onCallTransferRequest()回調。
73)struct pj::OnCallTransferStatusParam
該結構包含參數用於call:: onCallTransferStatus()回調。
74)struct pj::OnCallReplaceRequestParam
該結構包含參數用於call:: onCallReplaceRequest()回調。
75)struct pj::OnCallReplacedParam
該結構包含參數用於call:: onCallReplaced()回調。
76)struct pj::OnCallRxOfferParam
該結構包含參數用於call:: onCallRxOffer()回調。
77)struct pj::OnCallRedirectedParam
該結構包含參數用於call:: onCallRedirected()回調。
78)struct pj::OnCallMediaEventParam
該結構包含參數用於call:: onCallMediaEvent()回調。
79)struct pj::OnCallMediaTransportStateParam
該結構包含參數用於call:: onCallMediaTransportState()回調。
80)struct pj::OnCreateMediaTransportParam
該結構包含參數用於call:: onCreateMediaTransport()回調。
81)struct pj::CallOpParam
該結構包含參數用於 Call::answer(), Call::hangup(), Call::reinvite(), Call::update(), Call::xfer(), Call::xferReplaces(), Call::setHold().
82)struct pj::CallSendRequestParam
該結構包含參數用於call:: sendRequest將()
83)struct pj::CallVidSetStreamParam
該結構包含參數用於call:: vidSetStream()
7.9.5 其他
84)struct pj::MediaEvent
此結構描述媒體事件。
它對應於pjmedia_event結構。
85)struct pj::MediaFmtChangedEvent
此結構描述媒體格式更改事件。
86)struct pj::SdpSession
該結構描述了SDP會話描述。
它對應於pjmedia_sdp_session結構。
87)struct pj::RtcpSdes
RTCP SDES結構。