更新时间:2019-11-20
用户点对点音频通话。
主被叫客户端均已注册。
呼叫ID作为一路通话的唯一标识,UI应保存并管理,以用于后继的呼叫相关操作。
//c code TSDK_RESULT ret; ret = tsdk_start_call(&callid, call_number, FALSE); if (TSDK_SUCCESS != ret) { LOG_D_CALL_ERROR("start call failed. result=%#x", ret); return -1; } return TSDK_SUCCESS; |
//c code case TSDK_E_CALL_EVT_CALL_OUTGOING: { CHECK_POINTER(data); TSDK_S_CALL_INFO* callInfo = (TSDK_S_CALL_INFO*)data; TSDK_S_CALL_INFO* notifyInfo = new TSDK_S_CALL_INFO; memset(notifyInfo, 0, sizeof(TSDK_S_CALL_INFO)); memcpy_s(notifyInfo, sizeof(TSDK_S_CALL_INFO), callInfo, sizeof(TSDK_S_CALL_INFO)); ::PostMessage(maindlg->GetSafeHwnd(), WM_CALL_STARTCALL, WPARAM(notifyInfo), NULL); break; } case TSDK_E_CALL_EVT_CALL_INCOMING: { CHECK_POINTER(data); TSDK_S_CALL_INFO* callInfo = (TSDK_S_CALL_INFO*)data; TSDK_S_CALL_INFO* notifyInfo = new TSDK_S_CALL_INFO; memset(notifyInfo, 0, sizeof(TSDK_S_CALL_INFO)); memcpy_s(notifyInfo, sizeof(TSDK_S_CALL_INFO), callInfo, sizeof(TSDK_S_CALL_INFO)); ::PostMessage(maindlg->GetSafeHwnd(), WM_CALL_INCOMMING, (WPARAM)notifyInfo, NULL); break; } |
//c code case TSDK_E_CALL_EVT_CALL_RINGBACK: { LOG_D_CALL_INFO("call ringback"); break; } |
//c code TSDK_RESULT ret; ret = tsdk_accept_call(callid, (TSDK_BOOL)isVideo); if (TSDK_SUCCESS != ret) { LOG_D_CALL_ERROR("accept call failed. result=%#x", ret); return -1; } return TSDK_SUCCESS; |
RTP通道已建立,可以进行一些二次拨号等操作。
//c code case TSDK_E_CALL_EVT_CALL_RTP_CREATED: { LOG_D_CALL_INFO("call rtp created Event"); break; } |
//c code case TSDK_E_CALL_EVT_CALL_CONNECTED: { TSDK_S_CALL_INFO* callInfo = (TSDK_S_CALL_INFO*)data; TSDK_S_CALL_INFO* notifyInfo = new TSDK_S_CALL_INFO; memset(notifyInfo, 0, sizeof(TSDK_S_CALL_INFO)); memcpy_s(notifyInfo, sizeof(TSDK_S_CALL_INFO), callInfo, sizeof(TSDK_S_CALL_INFO)); ::PostMessage(maindlg->GetSafeHwnd(), WM_CALL_CONNECTED, (WPARAM)notifyInfo, NULL); break; } |
无。