From c1e016fa3389cc04ae7f4a1ed9329e0d6c7435ca Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Tue, 1 Oct 2013 22:13:43 +0300 Subject: [PATCH] Do the Right Thing when there's no config Do the "right thing" (hopefully. At least for a system with a single device) if there is are no configuration files: * No span-types.conf: just ignore it as before. It is optional. * No pinned-spans.conf: use span_assignments auto (same as having dahdi.auto_assign_spans=1). * No system.conf: generate a temporary one with dahdi_genconf. This will hopefully allow having a partially-working system, and help making ut usable with 'span_assignments dumpconfig'. Or maybe just work as-is. Signed-off-by: Tzafrir Cohen --- handle_device | 3 +++ span_config | 30 ++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/handle_device b/handle_device index a25c921..4a95b7b 100755 --- a/handle_device +++ b/handle_device @@ -54,6 +54,9 @@ add) fi if [ -r "$DAHDICONFDIR/pinned-spans.conf" ]; then span_assignments add "/sys$DEVPATH" + else + # No configuration. No order guaranteed + span_assignments auto fi ) 2>&1 < /dev/null | $LOGGER & ;; diff --git a/span_config b/span_config index 8500d46..64a6ede 100755 --- a/span_config +++ b/span_config @@ -32,22 +32,36 @@ DAHDICONFDIR='/etc/dahdi' export DAHDICONFDIR run_dahdi_cfg() { + echo "dahdi_cfg: span $spanno <$basechan-$endchan>" + dahdi_cfg -c "$cfg_file" -S "$spanno" -C "$basechan-$endchan" +} + +configure_span() { span_devpath="$1" # Sanity check checkit=`"dahdi_cfg" --help 2>&1 | grep -- '-S' | wc -l` if [ "$checkit" != 1 ]; then - $LOGGER "Bad dahdi_cfg (no -S support). Skipping" + echo "Bad dahdi_cfg (no -S support). Skipping" exit 0 fi + + # Set variables spanno=`echo "$span_devpath" | sed 's,.*/span-,,'` basechan=`cat "$span_devpath/basechan"` channels=`cat "$span_devpath/channels"` endchan=`expr "$basechan" + "$channels" - 1` - echo "dahdi_cfg: span $spanno <$basechan-$endchan>" - dahdi_cfg \ - -c "$DAHDICONFDIR/system.conf" \ - -S "$spanno" \ - -C "$basechan-$endchan" + + # Configure DAHDI + cfg_file="$DAHDICONFDIR/system.conf" + if [ -r "$cfg_file" ]; then + run_dahdi_cfg + else + echo "Using auto-generated config for dahdi_cfg" + cfg_file='-' + DAHDI_CONF_FILE="$cfg_file" dahdi_genconf system | run_dahdi_cfg + fi + + # Add to asterisk asterisk -rx "dahdi create channels $basechan $endchan" } @@ -57,9 +71,9 @@ add) # Can have alternate dahdi configuration directory for debugging # export DAHDICONFDIR="/tmp/xortel/dahdi" - run_dahdi_cfg "/sys$DEVPATH" 2>&1 | $LOGGER + configure_span "/sys$DEVPATH" 2>&1 | $LOGGER ;; -remove) +remove|online|offline) # Nothing to do yet... echo "$ACTION: $DEVPATH" | $LOGGER ;;