diff -u -r1.3 frame.c
--- frame.c	28 Jun 2003 16:40:02 -0000	1.3
+++ frame.c	13 Jul 2003 04:49:59 -0000
@@ -343,6 +343,41 @@
 	return ast_fr_fdwrite(fd, &hangup);
 }
 
+char* ast_getformatname(int format)
+{
+	if (format == AST_FORMAT_G723_1) 
+		return "G723";
+	else if (format == AST_FORMAT_GSM)
+		return "GSM";
+	else if (format == AST_FORMAT_ULAW)
+		return "ULAW";
+	else if (format == AST_FORMAT_ALAW)
+		return "ALAW";
+	else if (format == AST_FORMAT_MP3)
+		return "MP3";
+	else if (format == AST_FORMAT_SLINEAR)
+		return "SLINR";
+	else if (format == AST_FORMAT_LPC10)
+		return "LPC10";
+	else if (format == AST_FORMAT_ADPCM)
+		return "ADPCM";
+	else if (format == AST_FORMAT_G729A)
+		return "G729";
+	else if (format == AST_FORMAT_SPEEX)
+		return "SPEEX";
+	else if (format == AST_FORMAT_ILBC)
+		return "ILBC";
+	else if (format == AST_FORMAT_JPEG)
+		return "JPEG";
+	else if (format == AST_FORMAT_PNG)
+		return "PNG";
+	else if (format == AST_FORMAT_H261)
+		return "H261";
+	else if (format == AST_FORMAT_H263)
+		return "H263";
+	return "UNKN";
+}
+
 int ast_getformatbyname(char *name)
 {
 	if (!strcasecmp(name, "g723.1")) 
diff -u -r1.1.1.1 image.c
--- image.c	12 Feb 2003 13:59:13 -0000	1.1.1.1
+++ image.c	13 Jul 2003 04:49:59 -0000
@@ -175,14 +175,14 @@
 static int show_image_formats(int fd, int argc, char *argv[])
 {
 #define FORMAT "%10s %10s %50s %10s\n"
-#define FORMAT2 "%10s %10s %50s %10d\n"
+#define FORMAT2 "%10s %10s %50s %10s\n"
 	struct ast_imager *i;
 	if (argc != 3)
 		return RESULT_SHOWUSAGE;
 	ast_cli(fd, FORMAT, "Name", "Extensions", "Description", "Format");
 	i = list;
 	while(i) {
-		ast_cli(fd, FORMAT2, i->name, i->exts, i->desc, i->format);
+		ast_cli(fd, FORMAT2, i->name, i->exts, i->desc, ast_getformatname(i->format));
 		i = i->next;
 	};
 	return RESULT_SUCCESS;
diff -u -r1.1.1.2 translate.c
--- translate.c	16 Mar 2003 22:37:29 -0000	1.1.1.2
+++ translate.c	13 Jul 2003 04:49:59 -0000
@@ -252,26 +252,29 @@
 
 static int show_translation(int fd, int argc, char *argv[])
 {
-#define SHOW_TRANS 14
+#define SHOW_TRANS 11
 	int x,y;
 	char line[80];
 	if (argc != 2) 
 		return RESULT_SHOWUSAGE;
-	ast_cli(fd, "                        Translation times between formats (in milliseconds)\n");
-	ast_cli(fd, "                                 Destination Format\n");
+	ast_cli(fd, "         Translation times between formats (in milliseconds)\n");
+	ast_cli(fd, "          Source Format (Rows) Destination Format(Columns)\n\n");
 	ast_pthread_mutex_lock(&list_lock);
-	for (x=0;x<SHOW_TRANS; x++) {
-		if (x == 1) 
-			strcpy(line, "  Src  ");
-		else if (x == 2)
-			strcpy(line, "  Fmt  ");
-		else
-			strcpy(line, "       ");
-		for (y=0;y<SHOW_TRANS;y++) {
-			if (tr_matrix[x][y].step)
-				snprintf(line + strlen(line), sizeof(line) - strlen(line), " %4d", tr_matrix[x][y].cost);
+	for (x=-1;x<SHOW_TRANS; x++) {
+		strcpy(line, " ");
+		for (y=-1;y<SHOW_TRANS;y++) {
+			/* Skip MP3 (y = 4) as Destination format */
+			if (y != 4 && x >= 0 && y >= 0 && tr_matrix[x][y].step)
+				snprintf(line + strlen(line), sizeof(line) - strlen(line), " %6d", tr_matrix[x][y].cost);
 			else
-				snprintf(line + strlen(line), sizeof(line) - strlen(line), "  n/a");
+				if ((y != 4) && ((x == -1 && y >= 0) || (y == -1 && x >= 0))) {
+					snprintf(line + strlen(line), sizeof(line) - strlen(line), 
+						" %6s", ast_getformatname(1<<(x+y+1)) );
+				} else if (x != -1 && y != -1 && y != 4) {
+					snprintf(line + strlen(line), sizeof(line) - strlen(line), "      -");
+				} else if (y != 4) {
+					snprintf(line + strlen(line), sizeof(line) - strlen(line), "       ");
+				}
 		}
 		snprintf(line + strlen(line), sizeof(line) - strlen(line), "\n");
 		ast_cli(fd, line);			
diff -u -r1.9 chan_iax.c
--- channels/chan_iax.c	19 May 2003 00:48:48 -0000	1.9
+++ channels/chan_iax.c	13 Jul 2003 04:50:01 -0000
@@ -2256,7 +2256,7 @@
 static int iax_show_channels(int fd, int argc, char *argv[])
 {
 #define FORMAT2 "%-15.15s  %-10.10s  %-11.11s  %-11.11s  %-7.7s  %-6.6s  %s\n"
-#define FORMAT  "%-15.15s  %-10.10s  %5.5d/%5.5d  %5.5d/%5.5d  %-5.5dms  %-4.4dms  %d\n"
+#define FORMAT  "%-15.15s  %-10.10s  %5.5d/%5.5d  %5.5d/%5.5d  %-5.5dms  %-4.4dms  %-6.6s\n"
 	int x;
 	int numchans = 0;
 	if (argc != 3)
@@ -2271,7 +2271,7 @@
 						iaxs[x]->oseqno, iaxs[x]->iseqno, 
 						iaxs[x]->lag,
 						iaxs[x]->jitter,
-						iaxs[x]->voiceformat);
+						ast_getformatname(iaxs[x]->voiceformat) );
 			numchans++;
 		}
 		ast_pthread_mutex_unlock(&iaxsl[x]);
diff -u -r1.31 chan_iax2.c
--- channels/chan_iax2.c	9 Jul 2003 00:24:28 -0000	1.31
+++ channels/chan_iax2.c	13 Jul 2003 04:50:03 -0000
@@ -2408,7 +2408,7 @@
 static int iax2_show_channels(int fd, int argc, char *argv[])
 {
 #define FORMAT2 "%-15.15s  %-10.10s  %-11.11s  %-11.11s  %-7.7s  %-6.6s  %s\n"
-#define FORMAT  "%-15.15s  %-10.10s  %5.5d/%5.5d  %5.5d/%5.5d  %-5.5dms  %-4.4dms  %d\n"
+#define FORMAT  "%-15.15s  %-10.10s  %5.5d/%5.5d  %5.5d/%5.5d  %-5.5dms  %-4.4dms  %-6.6s\n"
 	int x;
 	int numchans = 0;
 	if (argc != 3)
@@ -2423,7 +2423,7 @@
 						iaxs[x]->oseqno, iaxs[x]->iseqno, 
 						iaxs[x]->lag,
 						iaxs[x]->jitter,
-						iaxs[x]->voiceformat);
+						ast_getformatname(iaxs[x]->voiceformat) );
 			numchans++;
 		}
 		ast_pthread_mutex_unlock(&iaxsl[x]);
diff -u -r1.130 chan_sip.c
--- channels/chan_sip.c	29 Jun 2003 03:25:00 -0000	1.130
+++ channels/chan_sip.c	13 Jul 2003 04:50:05 -0000
@@ -3767,7 +3767,7 @@
 static int sip_show_channels(int fd, int argc, char *argv[])
 {
 #define FORMAT2 "%-15.15s  %-10.10s  %-11.11s  %-11.11s  %-7.7s  %-6.6s  %s\n"
-#define FORMAT  "%-15.15s  %-10.10s  %-11.11s  %5.5d/%5.5d  %-5.5dms  %-4.4dms  %d\n"
+#define FORMAT  "%-15.15s  %-10.10s  %-11.11s  %5.5d/%5.5d  %-5.5dms  %-4.4dms  %-6.6s\n"
 	struct sip_pvt *cur;
 	int numchans = 0;
 	if (argc != 3)
@@ -3783,7 +3783,7 @@
 						cur->ocseq, cur->icseq, 
 						0,
 						0,
-						cur->owner ? cur->owner->nativeformats : 0);
+						ast_getformatname(cur->owner ? cur->owner->nativeformats : 0) );
 		numchans++;
 		}
 		cur = cur->next;
diff -u -r1.8 frame.h
--- include/asterisk/frame.h	28 Jun 2003 16:40:02 -0000	1.8
+++ include/asterisk/frame.h	13 Jul 2003 04:50:06 -0000
@@ -309,6 +309,14 @@
 
 //! Get a format from a name
 /*!
+ * \param format id of format
+ * Gets the name of a format.
+ * This returns the name of the format in a sttring or UNKN if unknown.
+ */
+//! Get the name of a format
+extern char* ast_getformatname(int format);
+
+/*!
  * \param name string of format
  * Gets a format from a name.
  * This returns the form of the format in binary on success, 0 on error.
