[svn-commits] qwell: branch 1.4 r4285 - /branches/1.4/ztscan.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Wed May 14 13:42:25 CDT 2008
Author: qwell
Date: Wed May 14 13:42:25 2008
New Revision: 4285
URL: http://svn.digium.com/view/zaptel?view=rev&rev=4285
Log:
Temporarily revert revisions 4006 and 4009, until a better decision can be made about channels on spans. Closes issue #12635
Modified:
branches/1.4/ztscan.c
Modified: branches/1.4/ztscan.c
URL: http://svn.digium.com/view/zaptel/branches/1.4/ztscan.c?view=diff&rev=4285&r1=4284&r2=4285
==============================================================================
--- branches/1.4/ztscan.c (original)
+++ branches/1.4/ztscan.c Wed May 14 13:42:25 2008
@@ -40,109 +40,116 @@
#include <zaptel/zaptel.h>
#endif
-void print_span(int spanno, int ctl)
+int main(int argc, char *argv[])
{
- struct zt_spaninfo spaninfo;
- int y;
+ int ctl;
+ int x, y;
struct zt_params params;
unsigned int basechan = 1;
+ struct zt_spaninfo s;
char buf[100];
char alarms[50];
- memset(&spaninfo, 0, sizeof(spaninfo));
- spaninfo.spanno = spanno;
- if (ioctl(ctl, ZT_SPANSTAT, &spaninfo))
- return;
+ if ((ctl = open("/dev/zap/ctl", O_RDWR)) < 0) {
+ fprintf(stderr, "Unable to open /dev/zap/ctl: %s\n", strerror(errno));
+ exit(1);
+ }
+
+ for (x = 1; x < ZT_MAX_SPANS; x++) {
+ memset(&s, 0, sizeof(s));
+ s.spanno = x;
+ if (ioctl(ctl, ZT_SPANSTAT, &s))
+ continue;
- alarms[0] = '\0';
- if (spaninfo.alarms) {
- if (spaninfo.alarms & ZT_ALARM_BLUE)
- strcat(alarms,"BLU/");
- if (spaninfo.alarms & ZT_ALARM_YELLOW)
- strcat(alarms, "YEL/");
- if (spaninfo.alarms & ZT_ALARM_RED)
- strcat(alarms, "RED/");
- if (spaninfo.alarms & ZT_ALARM_LOOPBACK)
- strcat(alarms,"LB/");
- if (spaninfo.alarms & ZT_ALARM_RECOVER)
- strcat(alarms,"REC/");
- if (spaninfo.alarms & ZT_ALARM_NOTOPEN)
- strcat(alarms, "NOP/");
- if (!strlen(alarms))
- strcat(alarms, "UUU/");
- if (strlen(alarms)) {
- /* Strip trailing / */
- alarms[strlen(alarms)-1]='\0';
+ alarms[0] = '\0';
+ if (s.alarms) {
+ if (s.alarms & ZT_ALARM_BLUE)
+ strcat(alarms,"BLU/");
+ if (s.alarms & ZT_ALARM_YELLOW)
+ strcat(alarms, "YEL/");
+ if (s.alarms & ZT_ALARM_RED)
+ strcat(alarms, "RED/");
+ if (s.alarms & ZT_ALARM_LOOPBACK)
+ strcat(alarms,"LB/");
+ if (s.alarms & ZT_ALARM_RECOVER)
+ strcat(alarms,"REC/");
+ if (s.alarms & ZT_ALARM_NOTOPEN)
+ strcat(alarms, "NOP/");
+ if (!strlen(alarms))
+ strcat(alarms, "UUU/");
+ if (strlen(alarms)) {
+ /* Strip trailing / */
+ alarms[strlen(alarms)-1]='\0';
+ }
+ } else {
+ if (s.numchans)
+ strcpy(alarms, "OK");
+ else
+ strcpy(alarms, "UNCONFIGURED");
}
- } else {
- if (spaninfo.numchans)
- strcpy(alarms, "OK");
- else
- strcpy(alarms, "UNCONFIGURED");
- }
- fprintf(stdout, "[%d]\n", spanno);
- fprintf(stdout, "active=yes\n");
- fprintf(stdout, "alarms=%s\n", alarms);
- fprintf(stdout, "description=%s\n", spaninfo.desc);
- fprintf(stdout, "name=%s\n", spaninfo.name);
- fprintf(stdout, "manufacturer=%s\n", spaninfo.manufacturer);
- fprintf(stdout, "devicetype=%s\n", spaninfo.devicetype);
- fprintf(stdout, "location=%s\n", spaninfo.location);
- fprintf(stdout, "basechan=%d\n", basechan);
- fprintf(stdout, "totchans=%d\n", spaninfo.totalchans);
- fprintf(stdout, "irq=%d\n", spaninfo.irq);
- y = basechan;
- memset(¶ms, 0, sizeof(params));
- params.channo = y;
- if (ioctl(ctl, ZT_GET_PARAMS, ¶ms)) {
- basechan += spaninfo.totalchans;
- return;
- }
+ fprintf(stdout, "[%d]\n", x);
+ fprintf(stdout, "active=yes\n");
+ fprintf(stdout, "alarms=%s\n", alarms);
+ fprintf(stdout, "description=%s\n", s.desc);
+ fprintf(stdout, "name=%s\n", s.name);
+ fprintf(stdout, "manufacturer=%s\n", s.manufacturer);
+ fprintf(stdout, "devicetype=%s\n", s.devicetype);
+ fprintf(stdout, "location=%s\n", s.location);
+ fprintf(stdout, "basechan=%d\n", basechan);
+ fprintf(stdout, "totchans=%d\n", s.totalchans);
+ fprintf(stdout, "irq=%d\n", s.irq);
+ y = basechan;
+ memset(¶ms, 0, sizeof(params));
+ params.channo = y;
+ if (ioctl(ctl, ZT_GET_PARAMS, ¶ms)) {
+ basechan += s.totalchans;
+ continue;
+ }
- if (params.sigcap & (__ZT_SIG_DACS | ZT_SIG_CAS)) {
- /* this is a digital span */
- fprintf(stdout, "type=digital-%s\n", spaninfo.spantype);
- fprintf(stdout, "syncsrc=%d\n", spaninfo.syncsrc);
- fprintf(stdout, "lbo=%s\n", spaninfo.lboname);
- fprintf(stdout, "coding_opts=");
- buf[0] = '\0';
- if (spaninfo.linecompat & ZT_CONFIG_B8ZS) strcat(buf, "B8ZS,");
- if (spaninfo.linecompat & ZT_CONFIG_AMI) strcat(buf, "AMI,");
- if (spaninfo.linecompat & ZT_CONFIG_HDB3) strcat(buf, "HDB3,");
- buf[strlen(buf) - 1] = '\0';
- fprintf(stdout, "%s\n", buf);
- fprintf(stdout, "framing_opts=");
- buf[0] = '\0';
- if (spaninfo.linecompat & ZT_CONFIG_ESF) strcat(buf, "ESF,");
- if (spaninfo.linecompat & ZT_CONFIG_D4) strcat(buf, "D4,");
- if (spaninfo.linecompat & ZT_CONFIG_CCS) strcat(buf, "CCS,");
- if (spaninfo.linecompat & ZT_CONFIG_CRC4) strcat(buf, "CRC4,");
- buf[strlen(buf) - 1] = '\0';
- fprintf(stdout, "%s\n", buf);
- fprintf(stdout, "coding=");
- if (spaninfo.lineconfig & ZT_CONFIG_B8ZS) fprintf(stdout, "B8ZS");
- else if (spaninfo.lineconfig & ZT_CONFIG_AMI) fprintf(stdout, "AMI");
- else if (spaninfo.lineconfig & ZT_CONFIG_HDB3) fprintf(stdout, "HDB3");
- fprintf(stdout, "\n");
- fprintf(stdout, "framing=");
- if (spaninfo.lineconfig & ZT_CONFIG_ESF) fprintf(stdout, "ESF");
- else if (spaninfo.lineconfig & ZT_CONFIG_D4) fprintf(stdout, "D4");
- else if (spaninfo.lineconfig & ZT_CONFIG_CCS) fprintf(stdout, "CCS");
- else if (spaninfo.lineconfig & ZT_CONFIG_CRC4) fprintf(stdout, "/CRC4");
- fprintf(stdout, "\n");
- } else {
- /* this is an analog span */
- fprintf(stdout, "type=analog\n");
- for (y = basechan; y < (basechan + spaninfo.totalchans); y++) {
- memset(¶ms, 0, sizeof(params));
- params.channo = y;
- if (ioctl(ctl, ZT_GET_PARAMS, ¶ms)) {
- fprintf(stdout, "port=%d,unknown\n", y);
- return;
- };
- fprintf(stdout, "port=%d,", y);
- switch (params.sigcap & (__ZT_SIG_FXO | __ZT_SIG_FXS)) {
+ if (params.sigcap & (__ZT_SIG_DACS | ZT_SIG_CAS)) {
+ /* this is a digital span */
+ fprintf(stdout, "type=digital-%s\n", s.spantype);
+ fprintf(stdout, "syncsrc=%d\n", s.syncsrc);
+ fprintf(stdout, "lbo=%s\n", s.lboname);
+ fprintf(stdout, "coding_opts=");
+ buf[0] = '\0';
+ if (s.linecompat & ZT_CONFIG_B8ZS) strcat(buf, "B8ZS,");
+ if (s.linecompat & ZT_CONFIG_AMI) strcat(buf, "AMI,");
+ if (s.linecompat & ZT_CONFIG_HDB3) strcat(buf, "HDB3,");
+ buf[strlen(buf) - 1] = '\0';
+ fprintf(stdout, "%s\n", buf);
+ fprintf(stdout, "framing_opts=");
+ buf[0] = '\0';
+ if (s.linecompat & ZT_CONFIG_ESF) strcat(buf, "ESF,");
+ if (s.linecompat & ZT_CONFIG_D4) strcat(buf, "D4,");
+ if (s.linecompat & ZT_CONFIG_CCS) strcat(buf, "CCS,");
+ if (s.linecompat & ZT_CONFIG_CRC4) strcat(buf, "CRC4,");
+ buf[strlen(buf) - 1] = '\0';
+ fprintf(stdout, "%s\n", buf);
+ fprintf(stdout, "coding=");
+ if (s.lineconfig & ZT_CONFIG_B8ZS) fprintf(stdout, "B8ZS");
+ else if (s.lineconfig & ZT_CONFIG_AMI) fprintf(stdout, "AMI");
+ else if (s.lineconfig & ZT_CONFIG_HDB3) fprintf(stdout, "HDB3");
+ fprintf(stdout, "\n");
+ fprintf(stdout, "framing=");
+ if (s.lineconfig & ZT_CONFIG_ESF) fprintf(stdout, "ESF");
+ else if (s.lineconfig & ZT_CONFIG_D4) fprintf(stdout, "D4");
+ else if (s.lineconfig & ZT_CONFIG_CCS) fprintf(stdout, "CCS");
+ else if (s.lineconfig & ZT_CONFIG_CRC4) fprintf(stdout, "/CRC4");
+ fprintf(stdout, "\n");
+ } else {
+ /* this is an analog span */
+ fprintf(stdout, "type=analog\n");
+ for (y = basechan; y < (basechan + s.totalchans); y++) {
+ memset(¶ms, 0, sizeof(params));
+ params.channo = y;
+ if (ioctl(ctl, ZT_GET_PARAMS, ¶ms)) {
+ fprintf(stdout, "port=%d,unknown\n", y);
+ continue;
+ };
+ fprintf(stdout, "port=%d,", y);
+ switch (params.sigcap & (__ZT_SIG_FXO | __ZT_SIG_FXS)) {
case __ZT_SIG_FXO:
fprintf(stdout, "FXS");
break;
@@ -151,44 +158,15 @@
break;
default:
fprintf(stdout, "none");
+ }
+ if (params.sigcap & ZT_SIG_BROKEN)
+ fprintf(stdout, " FAILED");
+ fprintf(stdout, "\n");
}
- if (params.sigcap & ZT_SIG_BROKEN)
- fprintf(stdout, " FAILED");
- fprintf(stdout, "\n");
}
+
+ basechan += s.totalchans;
}
- basechan += spaninfo.totalchans;
+ exit(0);
}
-
-int main(int argc, char *argv[])
-{
- int ctl;
- int x, spanno;
-
- if ((ctl = open("/dev/zap/ctl", O_RDWR)) < 0) {
- fprintf(stderr, "Unable to open /dev/zap/ctl: %s\n", strerror(errno));
- exit(1);
- }
-
- /* If no parameters: loop over all spans */
- if (argc == 1) {
- for (spanno = 1; spanno < ZT_MAX_SPANS; spanno++)
- print_span(spanno, ctl);
- return 0;
- }
-
- /* Parameters provided: use them as span numbers */
- for (x=1; argv[x]; x++) {
- /* We can use atoi because span numbers must be > 0 */
- int spanno = atoi(argv[x]);
- if (spanno <= 0) {
- fprintf(stderr, "%s: Error: Invalid span number %d (%s). Aborting\n",
- argv[0], spanno, argv[x]);
- exit(2);
- }
- print_span(spanno, ctl);
- }
-
- return 0;
-}
More information about the svn-commits
mailing list