public void scheduleAsynchronousWork(SipSessionAsynchronousWork work) { sipFactory.getSipApplicationDispatcher().getAsynchronousExecutor().execute(new SipSessionAsyncTask(key, work, sipFactory)); } public int getRequestsPending() {
/** * */ public void dumpSipApplicationSessions() { if(logger.isDebugEnabled()) { logger.debug("sip application sessions present in the session manager"); Enumeration<SipApplicationSessionKey> keys = sipApplicationSessions.keys(); while(keys.hasMoreElements()) { SipApplicationSessionKey sipApplicationSessionKey = keys.nextElement(); logger.debug(sipApplicationSessionKey.toString() + "/hashed_app_name=" + sipFactoryImpl.getSipApplicationDispatcher().getHashFromApplicationName(sipApplicationSessionKey.getApplicationName())); } } }
public MobicentsSipApplicationSession getSipApplicationSession() { if(sipApplicationSession == null) { final String applicationName = key.getApplicationName(); final SipContext sipContext = sipFactory.getSipApplicationDispatcher().findSipApplication(applicationName); if(sipContext != null) { sipApplicationSession = sipContext.getSipManager().getSipApplicationSession(sipApplicationSessionKey, false); } } return sipApplicationSession; }
if(sipFactoryImpl.getSipApplicationDispatcher().getDNSServerLocator() != null && nextHops != null && nextHops.size() > 1) { nextHops.remove(); Hop nextHop = nextHops.peek();
final SipContext sipContext = sipFactoryImpl.getSipApplicationDispatcher().findSipApplication(applicationName); SipApplicationSessionKey sipApplicationSessionKey = new SipApplicationSessionKey(sessionKey.getApplicationSessionId(), sessionKey.getApplicationName(), null); MobicentsSipApplicationSession sipApplicationSession = sipContext.getSipManager().getSipApplicationSession(sipApplicationSessionKey, false);
proxyImpl.getSipFactoryImpl().getSipApplicationDispatcher().getCallId(null, callId), SipFactoryImpl.headerFactory.createCSeqHeader(cSeq, Request.BYE), from, to, new ArrayList(),
sipFactoryImpl.getSipApplicationDispatcher().updateResponseStatistics(((SipServletResponseImpl)sipServletResponse).getResponse(), false);
!sipFactoryImpl.getSipApplicationDispatcher().isViaHeaderExternal(via) ) { return null; } else {
SipServletRequestImpl originalSipServletRequestImpl = (SipServletRequestImpl) linkedSession.getSessionCreatingTransactionRequest(); String newToTag = ApplicationRoutingHeaderComposer.getHash(sipFactoryImpl.getSipApplicationDispatcher(),sipSessionKey.getApplicationName(), sipSessionKey.getApplicationSessionId()); if(logger.isDebugEnabled()) { logger.debug("derived session " + mobicentsSipSession + " has no linked forked session yet, lazily creating one with new ToTag " + newToTag);
!sipFactoryImpl.getSipApplicationDispatcher().isViaHeaderExternal(via) ) { return -1; } else {
/** * {@inheritDoc} */ public String getInitialTransport() { if(getTransaction() != null) { return ((SIPTransaction)getTransaction()).getTransport(); } else { ViaHeader via = (ViaHeader) message.getHeader(ViaHeader.NAME); if(via == null || // https://github.com/Mobicents/sip-servlets/issues/47 // check if the via is container generated, if it is then it means // this is an outgoing request or response and thus should return null !sipFactoryImpl.getSipApplicationDispatcher().isViaHeaderExternal(via) ) { return null; } else { return via.getTransport(); } } }
String routeAppName = null; if(routeAppNameHashed != null) { routeAppName = sipFactoryImpl.getSipApplicationDispatcher().getApplicationNameFromHash(routeAppNameHashed); if(routeAppName == null || !sipFactoryImpl.getSipApplicationDispatcher().getApplicationServerId().equalsIgnoreCase(serverId) || !routeAppName.equals(getSipSession().getKey().getApplicationName())) { ackRequest.addHeader(routeHeader);
public String getRemoteAddr() { if(getTransaction() != null) { if(((SIPTransaction)getTransaction()).getPeerPacketSourceAddress() != null && ((SIPTransaction)getTransaction()).getPeerPacketSourceAddress().getHostAddress() != null) { return ((SIPTransaction)getTransaction()).getPeerPacketSourceAddress().getHostAddress(); } else { return ((SIPTransaction)getTransaction()).getPeerAddress(); } } else { ViaHeader via = (ViaHeader) message.getHeader(ViaHeader.NAME); // https://code.google.com/p/sipservlets/issues/detail?id=137 boolean isExternal = sipFactoryImpl.getSipApplicationDispatcher().isViaHeaderExternal(via); if(message instanceof Request && !isExternal) { // locally generated messages should return null as per Javadoc return null; } if(via == null) { return null; } else { return via.getHost(); } } }
final String branch = JainSipUtils.createBranch(sipApplicationSession.getKey().getId(), sipFactoryImpl.getSipApplicationDispatcher().getHashFromApplicationName(session.getKey().getApplicationName())); viaHeader.setBranch(branch);
boolean isExternal = sipFactoryImpl.getSipApplicationDispatcher().isExternal(sipUri.getHost(), sipUri.getPort(), transport); if(!isExternal) { if(logger.isDebugEnabled()) {
/** * * @param hop * @param request */ private void addDnsRoute(Hop hop, final Request request) throws ParseException, SipException { if(hop != null && sipFactoryImpl.getSipApplicationDispatcher().isExternal(hop.getHost(), hop.getPort(), hop.getTransport())) { javax.sip.address.SipURI nextHopUri = SipFactoryImpl.addressFactory.createSipURI(null, hop.getHost()); nextHopUri.setLrParam(); nextHopUri.setPort(hop.getPort()); if(hop.getTransport() != null) { nextHopUri.setTransportParam(hop.getTransport()); } // Deal with http://code.google.com/p/mobicents/issues/detail?id=2346 nextHopUri.setParameter(DNSAwareRouter.DNS_ROUTE, Boolean.TRUE.toString()); final javax.sip.address.Address nextHopRouteAddress = SipFactoryImpl.addressFactory.createAddress(nextHopUri); final RouteHeader nextHopRouteHeader = SipFactoryImpl.headerFactory.createRouteHeader(nextHopRouteAddress); if(logger.isDebugEnabled()) { logger.debug("Adding next hop found by RFC 3263 lookups as route header" + nextHopRouteHeader); } request.addFirst(nextHopRouteHeader); } }
final SipContext sipContext = sipFactoryImpl.getSipApplicationDispatcher().findSipApplication(applicationName);
final SipApplicationDispatcher sipApplicationDispatcher = sipFactoryImpl.getSipApplicationDispatcher(); final String branch = JainSipUtils.createBranch(session.getSipApplicationSession().getKey().getId(), sipApplicationDispatcher.getHashFromApplicationName(session.getSipApplicationSession().getKey().getApplicationName())); ViaHeader viaHeader = JainSipUtils.createViaHeader( String routeAppName = null; if(routeAppNameHashed != null) { routeAppName = sipFactoryImpl.getSipApplicationDispatcher().getApplicationNameFromHash(routeAppNameHashed); if(routeAppName == null || !sipFactoryImpl.getSipApplicationDispatcher().getApplicationServerId().equalsIgnoreCase(serverId) || !routeAppName.equals(getSipSession().getKey().getApplicationName())) { prackRequest.addHeader(routeHeader);
public int getRemotePort() { int port = -1; if(getTransaction() != null) { if(((SIPTransaction)getTransaction()).getPeerPacketSourceAddress() != null) { port = ((SIPTransaction)getTransaction()).getPeerPacketSourcePort(); } else { port = ((SIPTransaction)getTransaction()).getPeerPort(); } } else { ViaHeader via = (ViaHeader) message.getHeader(ViaHeader.NAME); // https://code.google.com/p/sipservlets/issues/detail?id=137 boolean isExternal = sipFactoryImpl.getSipApplicationDispatcher().isViaHeaderExternal(via); if(message instanceof Request && !isExternal) { // locally generated messages should return -1 as per Javadoc return -1; } if(via != null) { port = via.getPort(); } } if(port<=0) { return 5060; } else { return port; } }
public static void optimizeViaHeaderAddressForStaticAddress(SipConnector sipConnector, Request request, SipFactoryImpl sipFactoryImpl, String transport) throws ParseException, InvalidArgumentException { javax.sip.address.URI uri = request.getRequestURI(); ViaHeader viaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); RouteHeader route = (RouteHeader) request.getHeader(RouteHeader.NAME); if(route != null) { uri = route.getAddress().getURI(); } if(uri.isSipURI()) { javax.sip.address.SipURI sipUri = (javax.sip.address.SipURI) uri; String host = sipUri.getHost(); int port = sipUri.getPort(); if(sipFactoryImpl.getSipApplicationDispatcher().isExternal(host, port, transport)) { viaHeader.setHost(sipConnector.getStaticServerAddress()); viaHeader.setPort(sipConnector.getStaticServerPort()); } } } }