本文整理汇总了Java中com.csipsimple.service.impl.SipCallSessionImpl类的典型用法代码示例。如果您正苦于以下问题:Java SipCallSessionImpl类的具体用法?Java SipCallSessionImpl怎么用?Java SipCallSessionImpl使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
SipCallSessionImpl类属于com.csipsimple.service.impl包,在下文中一共展示了SipCallSessionImpl类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getCalls
import com.csipsimple.service.impl.SipCallSessionImpl; //导入依赖的package包/类
/**
* Get list of calls session available.
*
* @return List of calls.
*/
public SipCallSessionImpl[] getCalls() {
if (callsList != null) {
List<SipCallSessionImpl> calls = new ArrayList<SipCallSessionImpl>();
synchronized (callsList) {
for (int i = 0; i < callsList.size(); i++) {
SipCallSessionImpl callInfo = getCallInfo(i);
if (callInfo != null) {
calls.add(callInfo);
}
}
}
return calls.toArray(new SipCallSessionImpl[calls.size()]);
}
return new SipCallSessionImpl[0];
}
示例2: updateSession
import com.csipsimple.service.impl.SipCallSessionImpl; //导入依赖的package包/类
/**
* Copy infos from pjsua call info object to SipCallSession object
*
* @param session the session to copy info to (output)
* @param pjCallInfo the call info from pjsip
* @param service PjSipService Sip service to retrieve pjsip accounts infos
*/
private static void updateSession(SipCallSessionImpl session, pjsua_call_info pjCallInfo,
Context context) {
// Should be unecessary cause we usually copy infos from a valid
session.setCallId(pjCallInfo.getId());
// Nothing to think about here cause we have a
// bijection between int / state
session.setCallState(pjCallInfo.getState().swigValue());
session.setMediaStatus(pjCallInfo.getMedia_status().swigValue());
session.setRemoteContact(PjSipService.pjStrToString(pjCallInfo.getRemote_info()));
session.setConfPort(pjCallInfo.getConf_slot());
// Try to retrieve sip account related to this call
int pjAccId = pjCallInfo.getAcc_id();
session.setAccId(PjSipService.getAccountIdForPjsipId(context, pjAccId));
pj_time_val duration = pjCallInfo.getConnect_duration();
session.setConnectStart(SystemClock.elapsedRealtime() - duration.getSec() * 1000
- duration.getMsec());
}
示例3: getCallInfo
import com.csipsimple.service.impl.SipCallSessionImpl; //导入依赖的package包/类
/**
* Get call info for a given call id.
*
* @param callId the id of the call we want infos for
* @return the call session infos.
*/
public SipCallSessionImpl getCallInfo(Integer callId) {
SipCallSessionImpl callInfo;
synchronized (callsList) {
callInfo = callsList.get(callId, null);
}
return callInfo;
}
示例4: updateRecordingStatus
import com.csipsimple.service.impl.SipCallSessionImpl; //导入依赖的package包/类
/**
* Update status of call recording info in call session info
*
* @param callId The call id to modify
* @param canRecord if we can now record the call
* @param isRecording if we are currently recording the call
*/
public void updateRecordingStatus(int callId, boolean canRecord, boolean isRecording) {
SipCallSessionImpl callInfo = getCallInfo(callId);
callInfo.setCanRecord(canRecord);
callInfo.setIsRecording(isRecording);
synchronized (callsList) {
// Re-add it just to be sure
callsList.put(callId, callInfo);
}
onBroadcastCallState(callInfo);
}
示例5: updateSessionFromPj
import com.csipsimple.service.impl.SipCallSessionImpl; //导入依赖的package包/类
/**
* Update the call session infos
*
* @param session The session to update (input/output). Must have a correct
* call id set
* @param service PjSipService Sip service to retrieve pjsip accounts infos
* @throws SameThreadException
*/
public static void updateSessionFromPj(SipCallSessionImpl session, pjsip_event e, Context context)
throws SameThreadException {
Log.d(THIS_FILE, "Update call " + session.getCallId());
pjsua_call_info pjInfo = new pjsua_call_info();
int status = pjsua.call_get_info(session.getCallId(), pjInfo);
if (status == pjsua.PJ_SUCCESS) {
// Transform pjInfo into CallSession object
updateSession(session, pjInfo, context);
// Update state here because we have pjsip_event here and can get q.850 state
if(e != null) {
// Status code
int status_code = pjsua.get_event_status_code(e);
if(status_code == 0) {
try {
status_code = pjInfo.getLast_status().swigValue();
} catch (IllegalArgumentException err) {
// The status code does not exist in enum ignore it
}
}
session.setLastStatusCode(status_code);
Log.d(THIS_FILE, "Last status code is " + status_code);
// TODO - get comment from q.850 state as well
String status_text = PjSipService.pjStrToString(pjInfo.getLast_status_text());
session.setLastStatusComment(status_text);
// Reason code
int reason_code = pjsua.get_event_reason_code(e);
if (reason_code != 0) {
session.setLastReasonCode(reason_code);
}
}
// And now, about secure information
session.setSignalisationSecure(pjsua.call_secure_sig_level(session.getCallId()));
String secureInfo = PjSipService.pjStrToString(pjsua.call_secure_media_info(session
.getCallId()));
session.setMediaSecureInfo(secureInfo);
session.setMediaSecure(!TextUtils.isEmpty(secureInfo));
zrtp_state_info zrtpInfo = pjsua.jzrtp_getInfoFromCall(session.getCallId());
session.setZrtpSASVerified(zrtpInfo.getSas_verified() == pjsuaConstants.PJ_TRUE);
session.setHasZrtp(zrtpInfo.getSecure() == pjsuaConstants.PJ_TRUE);
// About video info
int vidStreamIdx = pjsua.call_get_vid_stream_idx(session.getCallId());
if(vidStreamIdx >= 0) {
int hasVid = pjsua.call_vid_stream_is_running(session.getCallId(), vidStreamIdx, pjmedia_dir.PJMEDIA_DIR_DECODING);
session.setMediaHasVideo((hasVid == pjsuaConstants.PJ_TRUE));
}
} else {
Log.d(THIS_FILE,
"Call info from does not exists in stack anymore - assume it has been disconnected");
session.setCallState(pjsip_inv_state.PJSIP_INV_STATE_DISCONNECTED.swigValue());
}
}