private void makeCall() {
		// send the originate action (Call)
		this.asteriskServer.originateAsync(this.originateAction, new OriginateCallbackAdapter() {
			@Override
			public void onDialing(final AsteriskChannel asteriskChannel) {
				Call.this.log.log(Level.INFO, "Dialing: " + asteriskChannel.getName() + " " + Call.this.destination);
				Call.this.state=CallState.DIALING;
				Call.this.currentChannel = asteriskChannel.getName();
				// Make sure when there was a hangup event that it is realy hung up.
				if(Call.this.hangup)
					Call.this.hangup();
				// Listen for cool stuff like "ringing"
				asteriskChannel.addPropertyChangeListener(new PropertyChangeListener() {

					@Override
					public void propertyChange(PropertyChangeEvent evt) {
						// is the phone ringing?
						if (evt.getPropertyName().equals("state") && evt.getNewValue().toString().equals("RINGING")) {
							Call.this.log.log(Level.INFO, "Ringing: " + asteriskChannel.getName() + " " + Call.this.destination);
							// Schedule hangup timeout
							Call.this.timeoutTimer.schedule(new TimerTask() {

								@Override
								public void run() {
									if (!Call.this.success) {
										Call.this.asteriskServer.getChannelByName(Call.this.currentChannel).hangup();
										// no "noAnswer()" called here because a
										// onNoAnswer event will come in anyway
									}
								}
							}, new Long(EPursuit.properties.getProperty("callTime")));
						}
					}
				});
			}

			@Override
			public void onSuccess(AsteriskChannel asteriskChannel) {
				Call.this.state=CallState.RUNNING;
				Call.this.success = true;
				Call.this.log.log(Level.INFO, "Connection successful: " + asteriskChannel.getName() + " " + Call.this.destination);

			}

			@Override
			public void onNoAnswer(AsteriskChannel asteriskChannel) {
				Call.this.log.log(Level.INFO, "Channel not answered: " + Call.this.currentChannel + " " + Call.this.destination);
				if (asteriskChannel.getHangupCause().toString().equals("CALL_REJECTED")) {
					Call.this.noAnswer();
				} else {
					Call.this.noAnswer();
				}
			}

			@Override
			public void onBusy(AsteriskChannel asteriskChannel) {
				Call.this.noAnswer();

				Call.this.log.log(Level.INFO, "Busy: " + asteriskChannel.getName() + " " + Call.this.destination);
			}

			@Override
			public void onFailure(LiveException cause) {
				Call.this.noAnswer();

				if (cause.getClass().getCanonicalName().equals("org.asteriskjava.live.NoSuchChannelException")) {
					// Called when the channel is busy... dunno why
					Call.this.log.log(Level.INFO, "Channel perhabs busy. " + Call.this.destination);
				} else {
					Call.this.log.log(Level.WARNING, "Received unknown error.\n" + cause + " " + Call.this.destination);
				}

			}
		});

	}