Make udev run dahdi_cfg on each device:
authorOron Peled <oron.peled@xorcom.com>
Thu, 6 Oct 2011 19:03:03 +0000 (21:03 +0200)
committerRuss Meyerriecks <rmeyerriecks@digium.com>
Fri, 24 May 2013 21:58:15 +0000 (16:58 -0500)
 * New script: dahdi_cfg_device_args:
   - Just like span_assignments, span_types: may be given
     one or more sysfs devpath's
   - Output the required options for dahdi_cfg. E.g:
       "-S 8 -C 15-28"
   - This may be passed (with any other wanted options)
     to the new dahdi_cfg (which supports '-S' and '-C')

 * Use dahdi_cfg_device_args in handle_device so we configure
   each span from udev.

Signed-off-by: Oron Peled <oron.peled@xorcom.com>
Signed-off-by: Russ Meyerriecks <rmeyerriecks@digium.com>

dahdi_cfg_device_args [new file with mode: 0755]
handle_device

diff --git a/dahdi_cfg_device_args b/dahdi_cfg_device_args
new file mode 100755 (executable)
index 0000000..de5d557
--- /dev/null
@@ -0,0 +1,32 @@
+#! /bin/sh
+
+devbase='/sys/bus/dahdi_devices/devices'
+
+# Use given devices or otherwise, all existing devices
+if [ "$#" -gt 0 ]; then
+       DEVICES="$@"
+else
+       DEVICES=`echo $devbase/*`
+fi
+
+run_action_spans() {
+       device="$1"
+       for span in $device/span-*
+       do
+               spanno=`echo "$span" | sed 's,.*/span-,,'`
+               spantype=`cat "$span/spantype"`
+               basechan=`cat "$span/basechan"`
+               channels=`cat "$span/channels"`
+               endchan=`expr "$basechan" + "$channels" - 1`
+               echo "-S $spanno -C $basechan-$endchan"
+       done
+}
+
+run_action() {
+       for device in $DEVICES
+       do
+               run_action_spans "$device"
+       done
+}
+
+run_action
index 180a163..59d0f62 100755 (executable)
@@ -22,6 +22,12 @@ PATH="$dir:/usr/sbin:/sbin:/usr/bin:/bin"
 
 set -e
 
+run_dahdi_cfg() {
+       args="-c $DAHDICONFDIR/system.conf $@"
+       echo "Running dahdi_cfg $args"
+       dahdi_cfg $args
+}
+
 echo >&2 "$0($ACTION): DEBUG($# args): '$*'"
 
 case "$ACTION" in
@@ -31,6 +37,9 @@ add)
        #export DAHDICONFDIR="/tmp/xortel/dahdi"
        span_types set "/sys/$DEVPATH" 2>&1 | $LOGGER
        span_assignments add "/sys/$DEVPATH" 2>&1 | $LOGGER
+       dahdi_cfg_device_args | while read args; do
+                       run_dahdi_cfg $args 2>&1 | $LOGGER
+               done
        ;;
 remove)
        echo "$ACTION: $DEVPATH" | $LOGGER