Addressed review comments

Added server feature spec to echo metadata.
Clarified client spec for testing metadata.
Removed Status for tests that are now ready for implementation.
Modified the spec for UnimplementedCall to take an Empty request.
diff --git a/doc/interop-test-descriptions.md b/doc/interop-test-descriptions.md
index 4f32ab2..41ebc6b 100644
--- a/doc/interop-test-descriptions.md
+++ b/doc/interop-test-descriptions.md
@@ -394,8 +394,6 @@
 
 ### custom_metadata
 
-Status: Ready for implementation, beta requirement.
-
 This test verifies that custom metadata in either binary or ascii format can be
 sent as initial-metadata by the client and as both initial- and trailing-metadata
 by the server.
@@ -404,8 +402,7 @@
 * [UnaryCall][]
 * [FullDuplexCall][]
 * [Compressable Payload][]
-* Ability to receive custom metadata from client in header and send custom data
-  back to client in both header and trailer. 
+* [Echo Metadata][]
 
 Procedure:
  1. While sending custom metadata (ascii + binary) in the header, client calls
@@ -420,25 +417,22 @@
       }
     }
     ```
-The client attaches custom metadata with the following keys:
+The client attaches custom metadata with the following keys and values:
     ```
-    "x-grpc-test-echo-initial"
-    or
-    "x-grpc-test-echo-trailing"
+    key: "x-grpc-test-echo-initial", value: "test_initial_metadata_value"
+    key: "x-grpc-test-echo-trailing", value: 0xababab
     ```
  2. Client repeats step 1. with FullDuplexCall instead of UnaryCall.
 
 Asserts:
 * call was successful
-* metadata with key `"x-grpc-test-echo-initial"` is received in the initial metadata.
-* metadata with key `"x-grpc-test-echo-trailing"` is received in the trailing metadata.
+* metadata with key `"x-grpc-test-echo-initial"` and value `"test_initial_metadata_value"`is received in the initial metadata.
+* metadata with key `"x-grpc-test-echo-trailing"` and value `0xababab` is received in the trailing metadata.
 
 
 
 ### status_code_and_message
 
-Status: Ready for implementation, beta requirement.
-
 This test verifies unary calls succeed in sending messages, and propagates back
 status code and message sent along with the messages.
 
@@ -472,15 +466,10 @@
 This test verifies calling unimplemented RPC method returns the UNIMPLEMENTED status code.
 
 Procedure:
-* Client calls UnimplementedCall with:
+* Client calls UnimplementedCall with an empty request (defined as `grpc.testing.Empty`):
 
     ```
     {
-      response_type: COMPRESSABLE
-      response_size: 314159
-      payload:{
-        body: 271828 bytes of zeros
-      }
     }
     ```
 
@@ -697,11 +686,19 @@
 
 ### Echo Status
 [Echo Status]: #echo-status
-When the client sends a response_status in the request payload, the server returns
-exactly the status code and messsage contained within said response_status. This
-can be used by clients to verify correct handling of different status codes and
+When the client sends a response_status in the request payload, the server closes
+the stream with the status code and messsage contained within said response_status.
+The server will not process any further messages on the stream sent by the client.
+This can be used by clients to verify correct handling of different status codes and
 associated status messages end-to-end.
 
+### Echo Metadata
+[Echo Metadata]: #echo-metadata
+When the client sends metadata with the key `"x-grpc-test-echo-initial"` with its
+request, the server sends back exactly this key and the corresponding value back to
+the client as part of initial metadata. When the client sends metadata with the key
+`"x-grpc-test-echo-trailing"` with its request, the server sends back exactly this
+key and the corresponding value back to the client as trailing metadata.
 
 ### Observe ResponseParameters.interval_us
 [Observe ResponseParameters.interval_us]: #observe-responseparametersinterval_us