Vector<TSConnection> consultFinish(TSConnection termconn, String address,
			CSTAConnectionID newCall) {
		Vector<TSEvent> eventList = new Vector<TSEvent>();
		termconn.setTermConnState(99, eventList);
		if (eventList.size() > 0) {
			Vector<?> observers = termconn.getTSCall().getObservers();
			for (int j = 0; j < observers.size(); j++) {
				TsapiCallMonitor callback = (TsapiCallMonitor) observers
						.elementAt(j);
				callback.deliverEvents(eventList, 100, false);
			}

		}

		if (termconn.getTSDevice().isMonitorSet()) {
			this.needSnapshot = false;
		} else {
			doSnapshot(newCall, null, false);
		}

		synchronized (this.connections) {
			if (this.connections.size() < 2) {
				try {
					this.connections.wait(Tsapi.getCallCompletionTimeout());
				} catch (InterruptedException e) {
				}
				if ((this.connections.size() < 2) && (this.state != 34)) {
					log.error("failed to get 2 connections for call ID "
							+ this.callID);

					throw new TsapiPlatformException(4, 0,
							"Could not meet post-conditions of consult()");
				}
			}
			return this.connections;
		}
	}