java实现SIP一个例子(3)

2019-01-05 10:50

{

System.out.println(\

return;

} } /**

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

*/

private void processInfo(Request request)

{

if (null == request)

{

System.out.println(\

return;

} } /**

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

*/

private void processAck(Request request, RequestEvent requestEvent)

{

if (null == request)

{

System.out.println(\

return;

} try {

Request ackRequest = null;

CSeq csReq = (CSeq)request.getHeader(CSeq.NAME); ackRequest = calleeDialog.createAck(csReq.getSeqNumber());

calleeDialog.sendAck(ackRequest);

System.out.println(\

}

catch (SipException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (InvalidArgumentException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

} } /**

* 处理CANCEL消息 * @param request * @param requestEvent

*/

private void processCancel(Request request, RequestEvent requestEvent)

{

// 判断参数是否有效

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

{

System.out.println(\

return;

} try {

// 发送CANCEL 200 OK消息

Response response = msgFactory.createResponse(Response.OK, request); ServerTransaction cancelServTran = requestEvent.getServerTransaction();

if (cancelServTran == null)

{

cancelServTran = sipProvider.getNewServerTransaction(request);

}

cancelServTran.sendResponse(response);

// 向对端发送CANCEL消息 Request cancelReq = null;

Request inviteReq = clientTransactionId.getRequest();

List list = new ArrayList();

Via viaHeader = (Via)inviteReq.getHeader(Via.NAME);

list.add(viaHeader);

CSeq cseq = (CSeq)inviteReq.getHeader(CSeq.NAME);

CSeq cancelCSeq = (CSeq)headerFactory.createCSeqHeader(cseq.getSeqNumber(),

Request.CANCEL);

cancelReq = msgFactory.createRequest(inviteReq.getRequestURI(),

inviteReq.getMethod(),

(CallIdHeader)inviteReq.getHeader(CallIdHeader.NAME),

cancelCSeq,

(FromHeader)inviteReq.getHeader(From.NAME), (ToHeader)inviteReq.getHeader(ToHeader.NAME),

list,

(MaxForwardsHeader)inviteReq.getHeader(MaxForwardsHeader.NAME));

ClientTransaction cancelClientTran = sipProvider.getNewClientTransaction(cancelReq);

cancelClientTran.sendRequest();

}

catch (ParseException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (TransactionAlreadyExistsException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (TransactionUnavailableException 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();

} }

private ServerTransaction serverTransactionId = null;

/* (non-Javadoc)

* @see javax.sip.SipListener#processRequest(javax.sip.RequestEvent)

*/

public void processRequest(RequestEvent arg0)

{

Request request = arg0.getRequest();

if (null == request)

{

System.out.println(\

return;

}

System.out.println(\

if (Request.INVITE.equals(request.getMethod()))

{

processInvite(request, arg0);

}

else if (Request.REGISTER.equals(request.getMethod()))

{

processRegister(request, arg0);

}

else if (Request.SUBSCRIBE.equals(request.getMethod()))

{

processSubscribe(request);

}

else if (Request.ACK.equalsIgnoreCase(request.getMethod()))

{

processAck(request, arg0);

}

else if (Request.BYE.equalsIgnoreCase(request.getMethod()))

{

processBye(request, arg0);

}

else if (Request.CANCEL.equalsIgnoreCase(request.getMethod()))

{

processCancel(request, arg0);

} else {

System.out.println(\

} } /** * 主叫对话

*/


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

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

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

马上注册会员

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