diff options
author | Kinsey Moore <kmoore@digium.com> | 2010-07-30 15:28:31 +0000 |
---|---|---|
committer | Kinsey Moore <kmoore@digium.com> | 2010-07-30 15:28:31 +0000 |
commit | 8a4c0f2ee2735cede40205c9ce6bb188f7c9aff1 (patch) | |
tree | d7f75304353cbb403883263673a5ba64d084ff5c | |
parent | 004b9bd3e55e5a1907756d3c81db5e971d11e264 (diff) |
dahdi_cfg: Display more appropriate error messages when an invalid signaling is chosen along with suggestions on how to fix the problem.
git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/trunk@9067 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r-- | dahdi_cfg.c | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/dahdi_cfg.c b/dahdi_cfg.c index abedf68..9386e00 100644 --- a/dahdi_cfg.c +++ b/dahdi_cfg.c @@ -1552,8 +1552,61 @@ finish: if (needupdate && ioctl(fd, DAHDI_CHANCONFIG, &cc[x])) { fprintf(stderr, "DAHDI_CHANCONFIG failed on channel %d: %s (%d)\n", x, strerror(errno), errno); if (errno == EINVAL) { - fprintf(stderr, "Did you forget that FXS interfaces are configured with FXO signalling\n" - "and that FXO interfaces use FXS signalling?\n"); + /* give helpful suggestions on signaling errors */ + fprintf(stderr, "Selected signaling not " + "supported\n"); + fprintf(stderr, "Possible causes:\n"); + switch(cc[x].sigtype) { + case DAHDI_SIG_FXOKS: + case DAHDI_SIG_FXOLS: + case DAHDI_SIG_FXOGS: + fprintf(stderr, "\tFXO signaling is " + "being used on a FXO interface" + " (use a FXS signaling variant" + ")\n"); + fprintf(stderr, "\tRBS signaling is " + "being used on a E1 CCS span" + "\n"); + break; + case DAHDI_SIG_FXSKS: + case DAHDI_SIG_FXSLS: + case DAHDI_SIG_FXSGS: + fprintf(stderr, "\tFXS signaling is " + "being used on a FXS interface" + " (use a FXO signaling variant" + ")\n"); + fprintf(stderr, "\tRBS signaling is " + "being used on a E1 CCS span" + "\n"); + break; + case DAHDI_SIG_EM: + fprintf(stderr, "\te&m signaling is " + "being used on a E1 line (use" + " e&me1)\n"); + break; + case DAHDI_SIG_EM_E1: + fprintf(stderr, "\te&me1 signaling is " + "being used on a T1 line (use " + "e&m)\n"); + fprintf(stderr, "\tRBS signaling is " + "being used on a E1 CCS span" + "\n"); + break; + case DAHDI_SIG_HARDHDLC: + fprintf(stderr, "\thardhdlc is being " + "used on a TE12x (use dchan)\n" + ); + break; + case DAHDI_SIG_HDLCFCS: + fprintf(stderr, "\tdchan is being used" + " on a BRI span (use hardhdlc)" + "\n"); + break; + default: + break; + } + fprintf(stderr, "\tSignaling is being assigned" + " to channel 16 of an E1 CAS span\n"); } close(fd); exit(1); |