diff --git a/main/stasis_endpoints.c b/main/stasis_endpoints.c
index 2d114210b758d1d63e744510c3e283325b4d26b7..c32dbb44f298d1ec35a1cd520d7bfe43078984dd 100644
--- a/main/stasis_endpoints.c
+++ b/main/stasis_endpoints.c
@@ -253,6 +253,7 @@ static struct ast_json *contactstatus_to_json(struct stasis_message *msg, const
 	struct ast_endpoint_blob *obj = stasis_message_data(msg);
 	struct ast_json *json_endpoint;
 	struct ast_json *json_final;
+	const char *rtt;
 	const struct timeval *tv = stasis_message_timestamp(msg);
 
 	json_endpoint = ast_endpoint_snapshot_to_json(obj->snapshot, NULL);
@@ -260,15 +261,30 @@ static struct ast_json *contactstatus_to_json(struct stasis_message *msg, const
 		return NULL;
 	}
 
-	json_final = ast_json_pack("{s: s, s: o, s: o, s: { s: s, s: s, s: s, s: s } } ",
-		"type", "ContactStatusChange",
-		"timestamp", ast_json_timeval(*tv, NULL),
-		"endpoint", json_endpoint,
-		"contact_info",
-		"uri", ast_json_string_get(ast_json_object_get(obj->blob, "uri")),
-		"contact_status", ast_json_string_get(ast_json_object_get(obj->blob, "contact_status")),
-		"aor", ast_json_string_get(ast_json_object_get(obj->blob, "aor")),
-		"roundtrip_usec", ast_json_string_get(ast_json_object_get(obj->blob, "roundtrip_usec")));
+	/* The roundtrip time is optional. */
+	rtt = ast_json_string_get(ast_json_object_get(obj->blob, "roundtrip_usec"));
+	if (!ast_strlen_zero(rtt)) {
+		json_final = ast_json_pack("{s: s, s: o, s: o, s: { s: s, s: s, s: s, s: s } } ",
+			"type", "ContactStatusChange",
+			"timestamp", ast_json_timeval(*tv, NULL),
+			"endpoint", json_endpoint,
+			"contact_info",
+			"uri", ast_json_string_get(ast_json_object_get(obj->blob, "uri")),
+			"contact_status", ast_json_string_get(ast_json_object_get(obj->blob,
+				"contact_status")),
+			"aor", ast_json_string_get(ast_json_object_get(obj->blob, "aor")),
+			"roundtrip_usec", rtt);
+	} else {
+		json_final = ast_json_pack("{s: s, s: o, s: o, s: { s: s, s: s, s: s } } ",
+			"type", "ContactStatusChange",
+			"timestamp", ast_json_timeval(*tv, NULL),
+			"endpoint", json_endpoint,
+			"contact_info",
+			"uri", ast_json_string_get(ast_json_object_get(obj->blob, "uri")),
+			"contact_status", ast_json_string_get(ast_json_object_get(obj->blob,
+				"contact_status")),
+			"aor", ast_json_string_get(ast_json_object_get(obj->blob, "aor")));
+	}
 	if (!json_final) {
 		ast_json_unref(json_endpoint);
 	}