java实现SIP一个例子(2)

2019-01-05 10:50

try {

// 发送100 Trying

serverTransactionId = requestEvent.getServerTransaction();

if (serverTransactionId == null)

{

serverTransactionId = sipProvider.getNewServerTransaction(request);

callerDialog = serverTransactionId.getDialog();

Response response = msgFactory.createResponse(Response.TRYING, request);

serverTransactionId.sendResponse(response);

}

//查询目标地址

URI reqUri = request.getRequestURI(); URI contactURI = currUser.get(reqUri);

System.out.println(\

callerVia.getBranch()+\

// FIXME 需要测试是否能够通过设置VIA头域来修改VIA头域值

cliReq.removeHeader(Via.NAME);

cliReq.addHeader(via);

// 更新contact的地址

ContactHeader contactHeader = headerFactory.createContactHeader(); Address address = addressFactory.createAddress(\

port);

contactHeader.setAddress(address); contactHeader.setExpires(3600); cliReq.setHeader(contactHeader);

clientTransactionId = sipProvider.getNewClientTransaction(cliReq);

clientTransactionId.sendRequest();

System.out.println(\

clientTransactionId.toString());

System.out.println(\

}

catch (TransactionUnavailableException e1)

{

// TODO Auto-generated catch block

e1.printStackTrace();

}

catch (SipException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (ParseException e)

{

e.printStackTrace();

}

catch (Exception e)

{

e.printStackTrace();

} } /**

* 处理SUBSCRIBE请求 * @param request 请求消息

*/

private void processSubscribe(Request request)

{

if (null == request)

{

System.out.println(\

return;

}

ServerTransaction serverTransactionId = null;

try {

serverTransactionId = sipProvider.getNewServerTransaction(request);

}

catch (TransactionAlreadyExistsException e1)

{

// TODO Auto-generated catch block

e1.printStackTrace();

} catch (TransactionUnavailableException e1)

{

// TODO Auto-generated catch block

e1.printStackTrace();

} try {

Response response = null;

response = msgFactory.createResponse(200, request);

if (response != null)

{

ExpiresHeader expireHeader = headerFactory.createExpiresHeader(30);

response.setExpires(expireHeader);

}

System.out.println(\

if(serverTransactionId != null)

{

serverTransactionId.sendResponse(response);

serverTransactionId.terminate();

} else {

System.out.println(\

}

}

catch (ParseException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (SipException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (InvalidArgumentException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

} } /**

* 处理BYE请求 * @param request 请求消息

*/

private void processBye(Request request, RequestEvent requestEvent)

{

if (null == request || null == requestEvent)

{

System.out.println(\

return;

}

Request byeReq = null;

Dialog dialog = requestEvent.getDialog();

System.out.println(\ System.out.println(\

try {

if (dialog.equals(calleeDialog))

{

byeReq = callerDialog.createRequest(request.getMethod());

ClientTransaction clientTran = sipProvider.getNewClientTransaction(byeReq);

callerDialog.sendRequest(clientTran);

calleeDialog.setApplicationData(requestEvent.getServerTransaction());

}

else if (dialog.equals(callerDialog))

{

byeReq = calleeDialog.createRequest(request.getMethod());

ClientTransaction clientTran = sipProvider.getNewClientTransaction(byeReq);

calleeDialog.sendRequest(clientTran);

callerDialog.setApplicationData(requestEvent.getServerTransaction());

} else {

System.out.println(\

}

System.out.println(\

}

catch (SipException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

} } /**

* 处理CANCEL请求 * @param request 请求消息

*/

private void processCancel(Request request)

{

if (null == request)


java实现SIP一个例子(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016杭电《实时三维图形绘制》OpenGL课复习提纲、试题展示及参考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: