code: @Override
      public boolean isSame(final Channel _rhs)
      {
          boolean equals = false;
  
          if (_rhs == null)
          {
              logger.warn("isSame called with null");
              return false;
          }
          ChannelImpl rhs;
          if (_rhs instanceof ChannelImpl)
          {
              rhs = (ChannelImpl) _rhs;
          }
          else
          {
              rhs = ((ChannelProxy) _rhs).getRealChannel();
          }
          // If we have unique id's for both channels then we can compare the id's
          // directly.
          if ((this._uniqueID.compareTo(ChannelImpl.UNKNOWN_UNIQUE_ID) != 0)
                  && (rhs._uniqueID.compareTo(ChannelImpl.UNKNOWN_UNIQUE_ID) != 0))
          {
              if (this._uniqueID.compareToIgnoreCase(rhs._uniqueID) == 0)
              {
                  equals = true;
              }
          }
          else
          {
              boolean ok = (this._channelName != null) && (rhs._channelName != null);
              final boolean namesMatch = (ok && (this._channelName.compareToIgnoreCase(rhs._channelName) == 0));
  
              if (namesMatch)
              {
                  // check if the actions match
                  if (this._isInAction != rhs._isInAction)
                  {
                      ok = false;
                  }
                  else if (this._isInAction)
                  {
                      ok = this._actionPrefix.compareTo(rhs._actionPrefix) == 0;
                  }
              }
  
              if (ok && namesMatch)
              {
                  // check if the zombie match
                  if (this._isZombie != rhs._isZombie)
                  {
                      ok = false;
                  }
              }
  
              if (ok && namesMatch)
              {
                  // check if the masquerade match
                  if (this._isMasqueraded != rhs._isMasqueraded)
                  {
                      ok = false;
                  }
              }
  
              equals = ok & namesMatch;
          }
          return equals;
      }
docs: *************************************************************************
  ************************** The remaining methods are bridging methods to
  the new abstract PBX classes.
  *************************************************************************
  **************************