diff options
Diffstat (limited to 'channels/misdn')
-rw-r--r-- | channels/misdn/chan_misdn_config.h | 1 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.c | 24 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.h | 2 |
3 files changed, 13 insertions, 14 deletions
diff --git a/channels/misdn/chan_misdn_config.h b/channels/misdn/chan_misdn_config.h index 8e2b2609f..84f346a94 100644 --- a/channels/misdn/chan_misdn_config.h +++ b/channels/misdn/chan_misdn_config.h @@ -26,6 +26,7 @@ enum misdn_cfg_elements { MISDN_CFG_RXGAIN, /* int */ MISDN_CFG_TXGAIN, /* int */ MISDN_CFG_TE_CHOOSE_CHANNEL, /* int (bool) */ + MISDN_CFG_PMP_L1_CHECK, /* int (bool) */ MISDN_CFG_CONTEXT, /* char[] */ MISDN_CFG_LANGUAGE, /* char[] */ MISDN_CFG_MUSICCLASS, /* char[] */ diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c index 8605bff90..ee0e988de 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -1460,27 +1460,25 @@ int misdn_lib_send_facility(struct misdn_bchannel *bc, enum facility_type fac, v } -int misdn_lib_port_up(int port) +int misdn_lib_port_up(int port, int check) { struct misdn_stack *stack; - + + for (stack=glob_mgr->stack_list; stack; stack=stack->next) { + if ( !stack->ptp && !check) return 1; + if (stack->port == port) { - if (stack->nt) { - if (stack->l1link) - return 1; - else - return 0; - } else { - if (stack->l1link) - return 1; - else - return 0; + if (stack->l1link) + return 1; + else { + cb_log(-1,port, "Port down [%s]\n", + stack->ptp?"PP":"PMP"); + return 0; } - } } diff --git a/channels/misdn/isdn_lib.h b/channels/misdn/isdn_lib.h index 77804241d..7590b3eee 100644 --- a/channels/misdn/isdn_lib.h +++ b/channels/misdn/isdn_lib.h @@ -335,7 +335,7 @@ void manager_ph_control(struct misdn_bchannel *bc, int c1, int c2); int misdn_lib_port_restart(int port); int misdn_lib_get_port_info(int port); -int misdn_lib_port_up(int port); +int misdn_lib_port_up(int port, int notcheck); int misdn_lib_get_port_up (int port) ; |