docs: private boolean splitTwo() throws PBXException
      {
          final AsteriskSettings profile = PBXFactory.getActiveProfile();
          AsteriskPBX pbx = (AsteriskPBX) PBXFactory.getActivePBX();
  
          List<Channel> channels = new LinkedList<>();
          channels.add(channel1);
          if (!pbx.waitForChannelsToQuiescent(channels, 3000))
          {
              logger.error(callSite, callSite);
              throw new PBXException("Channel: " + channel1 + " cannot be split as they are still in transition.");
          }
  
          /*
           * redirects the specified channels to the specified endpoints. Returns
           * true or false reflecting success.
           */
  
          AgiChannelActivityHold agi1 = new AgiChannelActivityHold();
  
          pbx.setVariable(channel1, "proxyId", "" + ((ChannelProxy) channel1).getIdentity());
  
          channel1.setCurrentActivityAction(agi1);
  
          final String agiExten = profile.getAgiExtension();
          final String agiContext = profile.getManagementContext();
          logger.debug("redirect channel lhs:" + channel1 + " to " + agiExten + " in context " + agiContext);
  
          final EndPoint extensionAgi = pbx.getExtensionAgi();
          final RedirectAction redirect = new RedirectAction(channel1, agiContext, extensionAgi, 1);
          // logger.error(redirect);
  
          boolean ret = false;
          {
              try
              {
  
                  // final ManagerResponse response =
                  pbx.sendAction(redirect, 1000);
                  double ctr = 0;
                  while (!agi1.hasCallReachedAgi() && ctr < 10)
                  {
                      Thread.sleep(100);
                      ctr += 100.0 / 1000.0;
                      if (!agi1.hasCallReachedAgi())
                      {
                          logger.warn("Waiting on (agi1) " + channel1);
                      }
  
                  }
                  ret = agi1.hasCallReachedAgi();
  
              }
              catch (final Exception e)
              {
                  logger.error(e, e);
              }
          }
          return ret;
      }