registration-order: Added dahdi_auto_assign_compat
Maintains the original registration order as was before span assignments. Should allow seemless trannsition to dahdi.auto_assign_spans=0 * The idea: - We stop handling in udev the case of missing /etc/dahdi/assigned-spans.conf - Instead we rely on "registration_time" dahdi_device attribute from DAHDI-linux - Then, we can sort the devices and assign their spans in /etc/init.d/dahdi * Mechanics: - From /etc/init.d/dahdi, we run a new 'dahdi_auto_assign_compat' script (after "waitfor_xpds" etc.) - In this script we "auto" assign spans of non-Astribank devices - In the end of the script we run "dahdi_registration" which does the same for Astribank devices. Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
This commit is contained in:
parent
cfee27106b
commit
1292ea9078
1
Makefile
1
Makefile
@ -108,6 +108,7 @@ endif
|
|||||||
ASSIGNED_DATA_SCRIPTS:=\
|
ASSIGNED_DATA_SCRIPTS:=\
|
||||||
dahdi_handle_device \
|
dahdi_handle_device \
|
||||||
dahdi_span_config \
|
dahdi_span_config \
|
||||||
|
dahdi_auto_assign_compat \
|
||||||
span_config.d/10-dahdi-cfg \
|
span_config.d/10-dahdi-cfg \
|
||||||
span_config.d/20-fxotune \
|
span_config.d/20-fxotune \
|
||||||
span_config.d/50-asterisk \
|
span_config.d/50-asterisk \
|
||||||
|
@ -148,11 +148,6 @@ xpp_startup() {
|
|||||||
if ! /usr/share/dahdi/waitfor_xpds; then return 0; fi
|
if ! /usr/share/dahdi/waitfor_xpds; then return 0; fi
|
||||||
|
|
||||||
hotplug_exit_after_load
|
hotplug_exit_after_load
|
||||||
|
|
||||||
# overriding locales for the above two, as perl can be noisy
|
|
||||||
# when locales are missing.
|
|
||||||
# No register all the devices if they didn't auto-register:
|
|
||||||
LC_ALL=C dahdi_registration on
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -263,6 +258,9 @@ case "$1" in
|
|||||||
|
|
||||||
xpp_startup
|
xpp_startup
|
||||||
|
|
||||||
|
# Assign all spans that weren't handled via udev + /etc/dahdi/assigned-spans.conf
|
||||||
|
/usr/share/dahdi/dahdi_auto_assign_compat
|
||||||
|
|
||||||
if [ $system = debian ]; then
|
if [ $system = debian ]; then
|
||||||
echo -n "Running dahdi_cfg: "
|
echo -n "Running dahdi_cfg: "
|
||||||
$DAHDI_CFG_CMD 2> /dev/null && echo -n "done"
|
$DAHDI_CFG_CMD 2> /dev/null && echo -n "done"
|
||||||
|
25
hotplug/dahdi_auto_assign_compat
Executable file
25
hotplug/dahdi_auto_assign_compat
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
devdir='/sys/bus/dahdi_devices/devices'
|
||||||
|
|
||||||
|
# DAHDI is loaded?
|
||||||
|
if [ ! -d "$devdir" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
devices_by_registration_time() {
|
||||||
|
grep -H '' $devdir/*/registration_time 2>/dev/null | \
|
||||||
|
sed 's,/registration_time:,\t,' | \
|
||||||
|
sort -k 2,2
|
||||||
|
}
|
||||||
|
|
||||||
|
# First assign non-Astribank devices
|
||||||
|
devices_by_registration_time | \
|
||||||
|
grep -v '/astribanks:' | \
|
||||||
|
while read devpath time; do
|
||||||
|
echo >&2 "D: auto '$devpath'"
|
||||||
|
dahdi_span_assignments auto "$devpath"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now handle Astribanks
|
||||||
|
LC_ALL=C dahdi_registration -Rv on
|
@ -7,9 +7,9 @@ add)
|
|||||||
exit 0
|
exit 0
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# For now, handle only spans in assigned-spans.conf
|
||||||
|
# We leave other cases to /etc/init.d/dahdi, so
|
||||||
|
# legacy ordering can be preserved.
|
||||||
if [ -r "$DAHDICONFDIR/assigned-spans.conf" ]; then
|
if [ -r "$DAHDICONFDIR/assigned-spans.conf" ]; then
|
||||||
dahdi_span_assignments add "/sys$DEVPATH"
|
dahdi_span_assignments add "/sys$DEVPATH"
|
||||||
else
|
|
||||||
# No configuration. No order guaranteed
|
|
||||||
dahdi_span_assignments auto "/sys$DEVPATH"
|
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user