diff options
author | nadi <nadi@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-04-03 09:37:00 +0000 |
---|---|---|
committer | nadi <nadi@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-04-03 09:37:00 +0000 |
commit | f99289547c7d5602c3bb584b819ab3e4a7446d13 (patch) | |
tree | 110ad2dda3648ee2c070560f9493eba5eb0601b5 | |
parent | a1cba707ebcf4a53e914045ed938cd1a21d0592d (diff) |
Use the new sysfs way of mISDN 1.2 to check if a port is NT or not.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@59788 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | channels/misdn/chan_misdn_config.h | 2 | ||||
-rw-r--r-- | channels/misdn_config.c | 23 |
2 files changed, 25 insertions, 0 deletions
diff --git a/channels/misdn/chan_misdn_config.h b/channels/misdn/chan_misdn_config.h index e21c59fdb..9305df500 100644 --- a/channels/misdn/chan_misdn_config.h +++ b/channels/misdn/chan_misdn_config.h @@ -68,7 +68,9 @@ enum misdn_cfg_elements { /* general config items */ MISDN_GEN_FIRST, +#ifndef MISDN_1_2 MISDN_GEN_MISDN_INIT, /* char[] */ +#endif MISDN_GEN_DEBUG, /* int */ MISDN_GEN_TRACEFILE, /* char[] */ MISDN_GEN_BRIDGING, /* int (bool) */ diff --git a/channels/misdn_config.c b/channels/misdn_config.c index cd6a7ffd7..2345bc235 100644 --- a/channels/misdn_config.c +++ b/channels/misdn_config.c @@ -128,7 +128,9 @@ static const struct misdn_cfg_spec port_spec[] = { static const struct misdn_cfg_spec gen_spec[] = { { "debug", MISDN_GEN_DEBUG, MISDN_CTYPE_INT, "0", NONE }, +#ifndef MISDN_1_2 { "misdn_init", MISDN_GEN_MISDN_INIT, MISDN_CTYPE_STR, "/etc/misdn-init.conf", NONE }, +#endif { "tracefile", MISDN_GEN_TRACEFILE, MISDN_CTYPE_STR, "/var/log/asterisk/misdn.log", NONE }, { "bridging", MISDN_GEN_BRIDGING, MISDN_CTYPE_BOOL, "yes", NONE }, { "stop_tone_after_first_digit", MISDN_GEN_STOP_TONE, MISDN_CTYPE_BOOL, "yes", NONE }, @@ -670,6 +672,7 @@ static void _build_port_config (struct ast_variable *v, char *cat) void misdn_cfg_update_ptp (void) { +#ifndef MISDN_1_2 char misdn_init[BUFFERSIZE]; char line[BUFFERSIZE]; FILE *fp; @@ -700,6 +703,26 @@ void misdn_cfg_update_ptp (void) ast_log(LOG_WARNING,"Couldn't open %s: %s\n", misdn_init, strerror(errno)); } } +#else + int i; + int proto; + char filename[128]; + FILE *fp; + + for (i = 1; i <= max_ports; ++i) { + snprintf(filename, sizeof(filename), "/sys/class/mISDN-stacks/st-%08x/protocol", i << 8); + fp = fopen(filename, "r"); + if (!fp) { + ast_log(LOG_WARNING, "Could not open %s: %s\n", filename, strerror(errno)); + continue; + } + if (fscanf(fp, "0x%08x", &proto) != 1) + ast_log(LOG_WARNING, "Could not parse contents of %s!\n", filename); + else + ptp[i] = proto & 1<<4 ? 1 : 0; + fclose(fp); + } +#endif } static void _fill_defaults (void) |