/** {@inheritDoc} */
 public synchronized void addConnector(Connector connector) {
   if (connector.getProtocolHandler() instanceof SipProtocolHandler) {
     final SipStandardService sipService = this.sipService;
     sipService.addConnector(connector);
   }
 }
  /** {@inheritDoc} */
  public synchronized void start(StartContext context) throws StartException {
    if (org.apache.tomcat.util.Constants.ENABLE_MODELER) {
      // Set the MBeanServer
      final MBeanServer mbeanServer = this.mbeanServer.getOptionalValue();
      if (mbeanServer != null) {
        Registry.getRegistry(null, null).setMBeanServer(mbeanServer);
      }
    }

    System.setProperty(
        "catalina.home", pathManagerInjector.getValue().getPathEntry(TEMP_DIR).resolvePath());
    server = new StandardServer();

    //        final StandardService service = new StandardService();
    //        service.setName(JBOSS_SIP);
    //        service.setServer(server);
    //        server.addService(service);

    //        final Engine engine = new StandardEngine();
    //        engine.setName(JBOSS_SIP);
    //        engine.setService(service);
    //        engine.setDefaultHost(defaultHost);
    //        if (instanceId != null) {
    //            engine.setJvmRoute(instanceId);
    //        }
    //
    //        service.setContainer(engine);

    //        if (useNative) {
    //            final AprLifecycleListener apr = new AprLifecycleListener();
    //            apr.setSSLEngine("on");
    //            server.addLifecycleListener(apr);
    //        }
    //        server.addLifecycleListener(new JasperListener());

    sipService = new SipStandardService();
    // https://code.google.com/p/sipservlets/issues/detail?id=277
    // Add the Service and sip app dispatched right away so apps can get the needed objects
    // when they deploy fast
    server.addService(sipService);

    if (sipAppDispatcherClass != null) {
      sipService.setSipApplicationDispatcherClassName(sipAppDispatcherClass);
    } else {
      sipService.setSipApplicationDispatcherClassName(SipApplicationDispatcherImpl.class.getName());
    }
    //
    final String baseDir = System.getProperty("jboss.server.base.dir");
    if (sipAppRouterFile != null) {
      if (!sipAppRouterFile.startsWith(FILE_PREFIX_PATH)) {
        sipAppRouterFile = FILE_PREFIX_PATH.concat(baseDir).concat("/").concat(sipAppRouterFile);
      }
      System.setProperty("javax.servlet.sip.dar", sipAppRouterFile);
    }
    //
    sipService.setSipPathName(sipPathName);
    //
    if (sipStackPropertiesFile != null) {
      if (!sipStackPropertiesFile.startsWith(FILE_PREFIX_PATH)) {
        sipStackPropertiesFile =
            FILE_PREFIX_PATH.concat(baseDir).concat("/").concat(sipStackPropertiesFile);
      }
    }
    sipService.setSipStackPropertiesFile(sipStackPropertiesFile);
    //
    if (sipConcurrencyControlMode != null) {
      sipService.setConcurrencyControlMode(sipConcurrencyControlMode);
    } else {
      sipService.setConcurrencyControlMode("None");
    }
    //
    sipService.setCongestionControlCheckingInterval(sipCongestionControlInterval);
    //
    sipService.setUsePrettyEncoding(usePrettyEncoding);
    //
    sipService.setBaseTimerInterval(baseTimerInterval);
    sipService.setT2Interval(t2Interval);
    sipService.setT4Interval(t4Interval);
    sipService.setTimerDInterval(timerDInterval);
    if (additionalParameterableHeaders != null) {
      sipService.setAdditionalParameterableHeaders(additionalParameterableHeaders);
    }
    sipService.setDialogPendingRequestChecking(dialogPendingRequestChecking);
    sipService.setDnsServerLocatorClass(dnsServerLocatorClass);
    sipService.setDnsTimeout(dnsTimeout);
    sipService.setDnsResolverClass(dnsResolverClass);
    sipService.setCanceledTimerTasksPurgePeriod(canceledTimerTasksPurgePeriod);
    sipService.setMemoryThreshold(memoryThreshold);
    sipService.setBackToNormalMemoryThreshold(backToNormalMemoryThreshold);
    sipService.setCongestionControlPolicy(congestionControlPolicy);
    sipService.setOutboundProxy(outboundProxy);
    sipService.setName(JBOSS_SIP);
    sipService.setServer(server);

    sipEngine = new SipStandardEngine();
    sipEngine.setName(JBOSS_SIP);
    sipEngine.setService(sipService);
    //        sipEngine.setDefaultHost(defaultHost);
    if (instanceId != null) {
      sipEngine.setJvmRoute(instanceId);
    }
    sipService.setContainer(sipEngine);

    try {
      server.init();
      server.start();
    } catch (Exception e) {
      throw new StartException(MESSAGES.errorStartingSip(), e);
    }
  }