public void setXferController(TSConnection termconn)
			throws TsapiInvalidArgumentException, TsapiInvalidStateException {
		if (updateObject()) {
			if (this.state != 33) {
				throw new TsapiInvalidStateException(3, 0,
						TsapiCreateObject.getTsapiObject(this, false), 1,
						this.state, "call is not active");
			}

			if (termconn.getCallControlTermConnState() == 102) {
				throw new TsapiInvalidStateException(3, 0,
						TsapiCreateObject.getTsapiObject(termconn, false), 5,
						102, "terminal connection is dropped");
			}

			boolean contains = false;

			synchronized (this.connections) {
				for (int i = 0; i < this.connections.size(); i++) {
					TSConnection conn = (TSConnection) this.connections
							.elementAt(i);
					Vector<?> termConns = conn.getTermConns();
					if ((termConns != null) && (termConns.contains(termconn))) {
						contains = true;
						break;
					}
				}
			}
			if (!contains) {
				throw new TsapiInvalidStateException(3, 0,
						TsapiCreateObject.getTsapiObject(this, false), 1,
						this.state, "terminal connection is not in this call");
			}

		}

		this.xferController = termconn;
	}