diff --git a/libpri.h b/libpri.h index 9d89b53..6ffb45e 100755 --- a/libpri.h +++ b/libpri.h @@ -48,6 +48,7 @@ #define PRI_SWITCH_ATT4ESS 4 /* AT&T 4ESS */ #define PRI_SWITCH_EUROISDN_E1 5 /* Standard EuroISDN (CTR4, ETSI 300-102) */ #define PRI_SWITCH_EUROISDN_T1 6 /* T1 EuroISDN variant (ETSI 300-102) */ +#define PRI_SWITCH_NI1 7 /* National ISDN 1 */ /* PRI D-Channel Events */ #define PRI_EVENT_DCHAN_UP 1 /* D-channel is up */ diff --git a/pri.c b/pri.c index ee9444a..b55e520 100755 --- a/pri.c +++ b/pri.c @@ -49,6 +49,8 @@ char *pri_switch2str(int sw) return "Lucent 5E"; case PRI_SWITCH_ATT4ESS: return "AT&T 4ESS"; + case PRI_SWITCH_NI1: + return "National ISDN 1"; default: return "Unknown switchtype"; } diff --git a/q931.c b/q931.c index 6bc4796..00a71c8 100755 --- a/q931.c +++ b/q931.c @@ -911,9 +911,12 @@ static int receive_display(struct pri *pri, q931_call *call, int msgtype, q931_i static int transmit_display(struct pri *pri, q931_call *call, int msgtype, q931_ie *ie, int len) { - ie->data[0] = 0xb1; - memcpy(ie->data + 1, call->callername, strlen(call->callername)); - return 3 + strlen(call->callername); + if (pri->switchtype != PRI_SWITCH_NI1) { + ie->data[0] = 0xb1; + memcpy(ie->data + 1, call->callername, strlen(call->callername)); + return 3 + strlen(call->callername); + } + return 0; } static int receive_progress_indicator(struct pri *pri, q931_call *call, int msgtype, q931_ie *ie, int len)