From 2ac7a9de4f691df2622d8d962c55ef4083f29d70 Mon Sep 17 00:00:00 2001
From: Stefan Knoblich <s.knoblich@axsentis.de>
Date: Tue, 10 May 2011 19:35:56 +0200
Subject: [PATCH] ftmod_libpri: Set default config values, just in case the
 user forgot to set some parameters in freetdm.conf.xml.

This fixes the "[ERR] ftmod_libpri.c:128 Don't know how to SABME on a type 0 node" messages
from libpri, when there's no "node"/"mode" parameter set for the span.

NOTE: Now defaulting to CPE mode; EuroISDN on BRI/E1 and 4ESS on J1/T1 lines,
      make sure you set dialect/switchtype!

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
---
 libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c
index ec7fe39c7d..8093443986 100644
--- a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c
+++ b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c
@@ -1965,6 +1965,10 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_libpri_configure_span)
 	assert(isdn_data != NULL);
 	memset(isdn_data, 0, sizeof(*isdn_data));
 
+	/* set some default values */
+	isdn_data->mode = PRI_CPE;
+	isdn_data->ton  = PRI_UNKNOWN;
+
 	switch (ftdm_span_get_trunk_type(span)) {
 	case FTDM_TRUNK_BRI:
 	case FTDM_TRUNK_BRI_PTMP:
@@ -1975,12 +1979,14 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_libpri_configure_span)
 #endif
 	case FTDM_TRUNK_E1:
 		ftdm_log(FTDM_LOG_NOTICE, "Setting default Layer 1 to ALAW since this is an E1/BRI/BRI PTMP trunk\n");
-		isdn_data->layer1 = PRI_LAYER_1_ALAW;
+		isdn_data->layer1  = PRI_LAYER_1_ALAW;
+		isdn_data->dialect = PRI_SWITCH_EUROISDN_E1;
 		break;
 	case FTDM_TRUNK_T1:
 	case FTDM_TRUNK_J1:
 		ftdm_log(FTDM_LOG_NOTICE, "Setting default Layer 1 to ULAW since this is a T1/J1 trunk\n");
-		isdn_data->layer1 = PRI_LAYER_1_ULAW;
+		isdn_data->layer1  = PRI_LAYER_1_ULAW;
+		isdn_data->dialect = PRI_SWITCH_LUCENT5E;
 		break;
 	default:
 		ftdm_log(FTDM_LOG_ERROR, "Invalid trunk type: '%s'\n", ftdm_span_get_trunk_type_str(span));