public synchronized void processResponse(ResponseEvent responseReceivedEvent) { Response response = responseReceivedEvent.getResponse(); Integer statusCode = response.getStatusCode(); if (SIP_MESSAGE_CODES.containsKey(statusCode)) { LOG.debug(SIP_MESSAGE_CODES.get(statusCode) + " received from Subscriber"); } }
public void processResponse(ResponseEvent responseReceivedEvent) { LOG.debug("Response received at Subscriber"); Response response = responseReceivedEvent.getResponse(); Transaction clientTransactionId = responseReceivedEvent.getClientTransaction(); LOG.debug("Response received with client transaction id {}:{}", clientTransactionId, response.getStatusCode()); if (clientTransactionId == null) { if (LOG.isWarnEnabled()) { LOG.warn("Stray response -- dropping"); } return; } }
public void on2xxResponse(ResponseEvent event, ActivityContextInterface aci) { final CSeqHeader cseq = (CSeqHeader) event.getResponse().getHeader( CSeqHeader.NAME); if (cseq.getMethod().equals(Request.INVITE)) { // lets ack it ourselves to avoid UAS retransmissions due to // forwarding of this response and further UAC Ack // note that the app does not handles UAC ACKs try { final Request ack = event.getDialog().createAck( cseq.getSeqNumber()); event.getDialog().sendAck(ack); } catch (Exception e) { tracer.severe("Unable to ack INVITE's 200 ok from UAS", e); } } else if (cseq.getMethod().equals(Request.BYE) || cseq.getMethod().equals(Request.CANCEL)) { // not forwarded to the other dialog return; } processResponse(event, aci); }
ClientTransaction ctOld = event.getClientTransaction(); Header h = ctOld.getRequest().getHeader(CallIdHeader.NAME); String oldCallId = ((CallIdHeader) h).getCallId();
if ( logger.isLoggingEnabled(LogLevels.TRACE_DEBUG)) logger.logDebug("Dialog = " + dialog); } else if (sipEvent instanceof ResponseEvent) { Dialog dialog = ((ResponseEvent) sipEvent).getDialog(); if (logger.isLoggingEnabled(LogLevels.TRACE_DEBUG) ) logger.logDebug("Dialog = " + dialog);
try { messageDispatcherFactory.getResponseDispatcher(sipServletResponse, this). dispatchMessage(((SipProvider)responseEvent.getSource()), sipServletResponse); } catch (Throwable e) { logger.error("An unexpected exception happened while routing the response " + sipServletResponse, e);
public void onSuccessRespEvent(ResponseEvent event, ActivityContextInterface aci) { if (log.isDebugEnabled()) { log.debug("Received success response event " + event.getResponse().getStatusCode()); } executeResponseState(event); }
private void processResponse(ResponseEvent event, ActivityContextInterface aci) { try { // Find the dialog to forward the response on ActivityContextInterface peerACI = getPeerDialog(aci); forwardResponse((DialogActivity) aci.getActivity(), (DialogActivity) peerACI.getActivity(), event .getClientTransaction(), event.getResponse()); } catch (SipException e) { tracer.severe(e.getMessage(), e); } }
.getResponse(); SIPDialog sipDialog = ((SIPDialog) responseEvent.getDialog()); try { if (logger.isLoggingEnabled(LogLevels.TRACE_DEBUG)) {
public void onClientErrorRespEvent(ResponseEvent event, ActivityContextInterface aci) { if (log.isDebugEnabled()) { log.debug("Received client error event : " + event.getResponse().getStatusCode()); } executeResponseState(event); }
/** * Accepts a response event and sends an ACK (containing the sdp from this * event) to the callee. * * @param event */ private void sendCalleeAck(ResponseEvent event) { log.debug("Sending Calee ACK event ResposneEvent = " + event); try { ClientTransaction ct = event.getClientTransaction(); final String callerCallId = ((CallIdHeader) ct.getRequest() .getHeader(CallIdHeader.NAME)).getCallId(); Dialog calleeDialog = getPeerDialog(callerCallId); Object content = event.getResponse().getContent(); log.debug("Building ACK content = " + content + " Dialog = " + calleeDialog); Request ackRequest = sipUtils.buildAck(calleeDialog, content); calleeDialog.sendAck(ackRequest); } catch (SipException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public void onRedirRespEvent(ResponseEvent event, ActivityContextInterface ac) { if (tracer.isFineEnabled()) tracer.fine("Received 3xx (REDIRECT) response:\n" + event.getResponse()); // 3xx should not happen? since ECS/PA acts like proxy? handleFailure(event.getResponse().getStatusCode(), ac); }
public void onGlobalFailureRespEvent(ResponseEvent event, ActivityContextInterface ac) { if (tracer.isFineEnabled()) tracer.fine("Received 6xx (GLOBAL FAILURE) response:\n" + event.getResponse()); handleFailure(event.getResponse().getStatusCode(), ac); }
public void on1xxResponse(ResponseEvent event, ActivityContextInterface aci) { if (event.getResponse().getStatusCode() == Response.TRYING) { // those are not forwarded to the other dialog return; } processResponse(event, aci); }
public void onClientErrorRespEvent(ResponseEvent event, ActivityContextInterface ac) { if (tracer.isFineEnabled()) tracer.fine("Received 4xx (CLIENT ERROR) response:\n" + event.getResponse()); handleFailure(event.getResponse().getStatusCode(), ac); }
public void onServerErrorRespEvent(ResponseEvent event, ActivityContextInterface ac) { if (tracer.isFineEnabled()) tracer.fine("Received 5xx (SERVER ERROR) response:\n" + event.getResponse()); handleFailure(event.getResponse().getStatusCode(), ac); }
public void execute(ResponseEvent event) { Response response = event.getResponse(); // We expect a 200 OK but move to TerminationState no matter // what the response status is. // TODO Introduce a termination cause property on the // TerminationEvent to communicate this information final String callId = ((CallIdHeader) response .getHeader(CallIdHeader.NAME)).getCallId(); setState(new TerminationState(), callId); } }
public void execute(ResponseEvent event) { Response response = event.getResponse(); // We expect a 200 OK // However, we should send switch state to TerminationState whatever // the response is // so we simply ignore the response for now. final String callId = ((CallIdHeader) response .getHeader(CallIdHeader.NAME)).getCallId(); setState(new TerminationState(), callId); } }
public void execute(ResponseEvent event) { Response response = event.getResponse(); int status = response.getStatusCode(); final String callId = ((CallIdHeader) response .getHeader(CallIdHeader.NAME)).getCallId(); if (status == Response.OK) { // status == 200 setState(new TerminationState(), callId); } } }
public void on4xxResponse(javax.sip.ResponseEvent event, ActivityContextInterface aci) { Response response = event.getResponse(); if(tracer.isInfoEnabled()) { tracer.info("Received SIP 4xx >> " + response.getStatusCode()); } // Is it a 404? if(response.getStatusCode() == 404) { // Let's see from whom to whom String to = ((ToHeader) response.getHeader("To")).getAddress().toString(); String from = ((FromHeader) response.getHeader("From")).getAddress().toString(); if(tracer.isInfoEnabled()) { tracer.info("From[" + from + "], To [" + to + "]"); } String toAddress = to.substring(to.indexOf("sip:"), to.indexOf(">")); // Create the MissedCall object MissedCall mC = new MissedCall(from, new Date()); Collection<MissedCall> mCs = missedCalls.get(toAddress); if(mCs == null) { mCs = new ArrayList<MissedCall>(); missedCalls.put(toAddress, mCs); } if(!mCs.contains(mC)) { mCs.add(mC); } } aci.detach(this.getSbbContext().getSbbLocalObject()); }