本文整理汇总了Java中javax.sip.message.Response.clone方法的典型用法代码示例。如果您正苦于以下问题:Java Response.clone方法的具体用法?Java Response.clone怎么用?Java Response.clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.sip.message.Response
的用法示例。
在下文中一共展示了Response.clone方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: processResponse
import javax.sip.message.Response; //导入方法依赖的package包/类
public synchronized void processResponse(ResponseEvent responseEvent) {
try {
Response response = responseEvent.getResponse();
CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
logger.info("ClientTxID = " + responseEvent.getClientTransaction() + " client tx id "
+ ((ViaHeader) response.getHeader(ViaHeader.NAME)).getBranch()
+ " CSeq header = " + response.getHeader(CSeqHeader.NAME) + " status code = "
+ response.getStatusCode());
// JvB: stateful proxy MUST NOT forward 100 Trying
if (response.getStatusCode() == 100)
return;
if (response.getStatusCode() == Response.LOOP_DETECTED) {
logger.info("Saw a LOOP DETECTED response");
this.loopDetectedSeen = true;
}
if (cseq.getMethod().equals(Request.INVITE)) {
ClientTransaction ct = responseEvent.getClientTransaction();
if (ct != null) {
ServerTransaction st = (ServerTransaction) ct.getApplicationData();
// Strip the topmost via header
Response newResponse = (Response) response.clone();
newResponse.removeFirst(ViaHeader.NAME);
// The server tx goes to the terminated state.
st.sendResponse(newResponse);
} else {
logger.debug("Discarding response - no transaction found!");
}
} else {
// this is the OK for the cancel.
logger.info("Got a non-invite response " + response);
}
} catch (Exception ex) {
ex.printStackTrace();
fail("unexpected exception");
}
}