public void drop(CSTAPrivate reqPriv)
			throws TsapiPrivilegeViolationException,
			TsapiInvalidStateException, TsapiResourceUnavailableException,
			TsapiMethodNotSupportedException {
		if (this.provider.getCapabilities().getClearCall() == 0) {
			throw new TsapiMethodNotSupportedException(4, 0,
					"unsupported by driver");
		}
		if (updateObject()) {
			if (this.state != 33) {
				throw new TsapiInvalidStateException(3, 0,
						TsapiCreateObject.getTsapiObject(this, false), 1,
						this.state, "call is not active");
			}

		}

		CSTAConnectionID clearConnID = null;
		synchronized (this.connections) {
			if (this.connections.size() > 0) {
				clearConnID = ((TSConnection) this.connections.elementAt(0))
						.getConnID();
			}
		}
		if (clearConnID == null) {
			throw new TsapiInvalidStateException(3, 0,
					TsapiCreateObject.getTsapiObject(this, false), 1,
					this.state, "call is not active (no connections)");
		}

		ConfHandler handler = new ClearCallConfHandler(this);
		try {
			this.provider.tsapi.clearCall(clearConnID, reqPriv, handler);
		} catch (TsapiInvalidStateException e) {
			setState(34, null);
			endCVDObservers(100, null);
		} catch (TsapiPrivilegeViolationException e) {
			throw e;
		} catch (TsapiResourceUnavailableException e) {
			throw e;
		} catch (TsapiPlatformException e) {
			throw e;
		} catch (Exception e) {
			if ((e instanceof ITsapiException)) {
				throw new TsapiPlatformException(
						((ITsapiException) e).getErrorType(),
						((ITsapiException) e).getErrorCode(),
						"clearCall failure");
			}
			throw new TsapiPlatformException(4, 0, "clearCall failure");
		}
	}