diff --git a/java/common/org/linphone/core/LinphoneCallLog.java b/java/common/org/linphone/core/LinphoneCallLog.java
index 08cdb8034b748dced650c32b4eef262e5dc3aa48..0e459f81ccfdd593b781d070668fa77605fb3f49 100644
--- a/java/common/org/linphone/core/LinphoneCallLog.java
+++ b/java/common/org/linphone/core/LinphoneCallLog.java
@@ -18,12 +18,64 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 package org.linphone.core;
 
+import java.util.Vector;
+
+
+
 public interface LinphoneCallLog {
+	/**
+	 * Represents call status
+	 *
+	 */
+	static class CallStatus {
+		static private Vector values = new Vector();
+		private final int mValue;
+		private final String mStringValue;
+		/**
+		 * Call success.
+		 */
+		public final static CallStatus Sucess = new CallStatus(0,"Sucess");
+		/**
+		 * Call aborted.
+		 */
+		public final static CallStatus Aborted = new CallStatus(1,"Aborted");
+		/**
+		 * missed incoming call.
+		 */
+		public final static CallStatus Missed = new CallStatus(2,"Missed");
+		/**
+		 * remote call declined.
+		 */
+		public final static CallStatus Declined = new CallStatus(3,"Declined");
+		private CallStatus(int value,String stringValue) {
+			mValue = value;
+			values.addElement(this);
+			mStringValue=stringValue;
+		}
+		public static CallStatus fromInt(int value) {
 
+			for (int i=0; i<values.size();i++) {
+				CallStatus state = (CallStatus) values.elementAt(i);
+				if (state.mValue == value) return state;
+			}
+			throw new RuntimeException("CallStatus not found ["+value+"]");
+		}
+		public String toString() {
+			return mStringValue;
+		}
+		public int toInt() {
+			return mValue;
+		}
+	}
 	
 	public LinphoneAddress getFrom();
 	
 	public LinphoneAddress getTo ();
 	
 	public CallDirection getDirection();
+	/**
+	 * get status of this call
+	 * @return
+	 */
+	public CallStatus getStatus();
 }