From d810d52606abca7b740af988c5fb15ced1217c5f Mon Sep 17 00:00:00 2001
From: Matthew Fredrickson <creslin@digium.com>
Date: Thu, 2 Nov 2006 16:50:55 +0000
Subject: [PATCH] Changes to show blocked/unblocked states, as well as in
 service, out of service state

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_zap.c | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index f94aaff072..75dccf3d9c 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -10644,10 +10644,12 @@ static int action_zaprestart(struct mansession *s, struct message *m)
 
 static int zap_show_channels(int fd, int argc, char **argv)
 {
-#define FORMAT "%7s %-10.10s %-15.15s %-10.10s %-20.20s\n"
-#define FORMAT2 "%7s %-10.10s %-15.15s %-10.10s %-20.20s\n"
+#define FORMAT "%7s %-10.10s %-15.15s %-10.10s %-20.20s %-10.10s %-10.10s\n"
+#define FORMAT2 "%7s %-10.10s %-15.15s %-10.10s %-20.20s %-10.10s %-10.10s\n"
 	struct zt_pvt *tmp = NULL;
 	char tmps[20] = "";
+	char statestr[20] = "";
+	char blockstr[20] = "";
 	ast_mutex_t *lock;
 	struct zt_pvt *start;
 #ifdef HAVE_PRI
@@ -10683,9 +10685,9 @@ static int zap_show_channels(int fd, int argc, char **argv)
 
 	ast_mutex_lock(lock);
 #ifdef HAVE_PRI
-	ast_cli(fd, FORMAT2, pri ? "CRV" : "Chan", "Extension", "Context", "Language", "MOH Interpret");
+	ast_cli(fd, FORMAT2, pri ? "CRV" : "Chan", "Extension", "Context", "Language", "MOH Interpret", "Blocked", "State");
 #else
-	ast_cli(fd, FORMAT2, "Chan", "Extension", "Context", "Language", "MOH Interpret");
+	ast_cli(fd, FORMAT2, "Chan", "Extension", "Context", "Language", "MOH Interpret", "Blocked", "State");
 #endif	
 	
 	tmp = start;
@@ -10694,7 +10696,22 @@ static int zap_show_channels(int fd, int argc, char **argv)
 			snprintf(tmps, sizeof(tmps), "%d", tmp->channel);
 		} else
 			ast_copy_string(tmps, "pseudo", sizeof(tmps));
-		ast_cli(fd, FORMAT, tmps, tmp->exten, tmp->context, tmp->language, tmp->mohinterpret);
+
+		if (tmp->locallyblocked)
+			blockstr[0] = 'L';
+		else
+			blockstr[0] = ' ';
+
+		if (tmp->remotelyblocked)
+			blockstr[1] = 'R';
+		else
+			blockstr[1] = ' ';
+
+		blockstr[2] = '\0';
+
+		snprintf(statestr, sizeof(statestr), "%s", tmp->inservice ? "In Service" : "Out of Service");
+
+		ast_cli(fd, FORMAT, tmps, tmp->exten, tmp->context, tmp->language, tmp->mohinterpret, blockstr, statestr);
 		tmp = tmp->next;
 	}
 	ast_mutex_unlock(lock);
-- 
GitLab