diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/createlinks mezzanine_patched_smeserver-freepbx-0.1/createlinks --- smeserver-freepbx-0.1/createlinks 2009-02-12 00:22:09.000000000 +0100 +++ mezzanine_patched_smeserver-freepbx-0.1/createlinks 2009-02-12 00:20:26.000000000 +0100 @@ -14,10 +14,10 @@ service_link_enhanced("httpd-fpbx", "K15", "0"); service_link_enhanced("httpd-fpbx", "K15", "1"); -service_link_enhanced("zaptel", "S09", "7"); -service_link_enhanced("zaptel", "K16", "6"); -service_link_enhanced("zaptel", "K16", "0"); -service_link_enhanced("zaptel", "K16", "1"); +service_link_enhanced("dahdi", "S09", "7"); +service_link_enhanced("dahdi", "K16", "6"); +service_link_enhanced("dahdi", "K16", "0"); +service_link_enhanced("dahdi", "K16", "1"); safe_symlink("../daemontools" , 'root/etc/rc.d/init.d/supervise/httpd-fpbx'); safe_symlink("/var/service/httpd-fpbx" , 'root/service/httpd-fpbx'); diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/dahdi/status mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/dahdi/status --- smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/dahdi/status 1970-01-01 01:00:00.000000000 +0100 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/dahdi/status 2008-09-20 14:06:51.000000000 +0200 @@ -0,0 +1 @@ +enabled diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/dahdi/type mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/dahdi/type --- smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/dahdi/type 1970-01-01 01:00:00.000000000 +0100 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/dahdi/type 2008-09-20 14:06:43.000000000 +0200 @@ -0,0 +1 @@ +service diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/zaptel/status mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/zaptel/status --- smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/zaptel/status 2008-09-20 14:06:51.000000000 +0200 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/zaptel/status 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -enabled diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/zaptel/type mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/zaptel/type --- smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/zaptel/type 2008-09-20 14:06:43.000000000 +0200 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/zaptel/type 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -service diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/usr/share/freepbx/scripts/uninstall.sh mezzanine_patched_smeserver-freepbx-0.1/root/usr/share/freepbx/scripts/uninstall.sh --- smeserver-freepbx-0.1/root/usr/share/freepbx/scripts/uninstall.sh 2008-08-13 13:22:56.000000000 +0200 +++ mezzanine_patched_smeserver-freepbx-0.1/root/usr/share/freepbx/scripts/uninstall.sh 2009-02-12 00:19:52.000000000 +0100 @@ -8,7 +8,7 @@ echo "This script will remove from your server:" echo " - freepbx and asterisk cdr MySQL databases" echo " - freepbx MySQL User" -echo " - freepbx DB entries (freepbx, httpd-fpbx and zaptel)" +echo " - freepbx DB entries (freepbx, httpd-fpbx and dahdi)" echo " - /opt/freepbx" echo "" echo -n "Are you sure you want to remove FreePBX permanently ? (y/n) [n] " @@ -26,7 +26,7 @@ echo "Removing SME DB entries..." /sbin/e-smith/db configuration delete freepbx /sbin/e-smith/db configuration delete httpd-fpbx - /sbin/e-smith/db configuration delete zaptel + /sbin/e-smith/db configuration delete dahdi echo "Removing /opt/freepbx ..." rm -rf /opt/freepbx echo "Removing this script ..." diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/var/lib/asterisk/bin/genzaptelconf mezzanine_patched_smeserver-freepbx-0.1/root/var/lib/asterisk/bin/genzaptelconf --- smeserver-freepbx-0.1/root/var/lib/asterisk/bin/genzaptelconf 2009-02-12 00:22:09.000000000 +0100 +++ mezzanine_patched_smeserver-freepbx-0.1/root/var/lib/asterisk/bin/genzaptelconf 1970-01-01 01:00:00.000000000 +0100 @@ -1,570 +0,0 @@ -#! /bin/bash - -# genzaptelconf: generate as smartly as you can: -# /etc/zaptel.conf -# /etc/asterisk/zapata-channels.conf (to be #include-d into zapata.conf) -# update: -# /etc/default/zaptel (list of modules to load) -# -# $Id:$ -# - -# The script uses a number of bash-specific features -# TODO: either ditch them or convert to perl - -# /etc/default/zaptel may override the following variables -lc_country=us -#method=ls -#method=ks -base_exten=6000 - - -ZAPCONF_FILE=/etc/zaptel.conf -ZAPATA_FILE=/etc/asterisk/zapata-auto.conf -ZAPTEL_BOOT=/etc/sysconfig/zaptel -exten_base_dir=/etc/asterisk/extensions-phones.d -exten_defs_file=/etc/asterisk/extensions-defs.conf -ztcfg_cmd=ztcfg - -# a temporary directory. Created when the switch -r is parsed on getopts -# and deleted in the end on update_extensions_defs -tmp_dir= - -# read default configuration from /etc/default/zaptel -if [ -r $ZAPTEL_BOOT ]; then . $ZAPTEL_BOOT; fi - -# work around a bug (that was already fixed) in the installer: -if [ "$lc_country" = '' ]; then lc_country=us; fi - -ALL_MODULES="wctdm wcfxo wcfxs pciradio tor2 torisa wct1xxp wct4xxp wcte11xp wcusb ztd_eth ztdummy" -force_stop_ast=yes -do_detect=no -do_unload=no -verbose=no -rapid_extens='' -# global: current extension number in extensions list. Should only be -# changed in print_pattern: -rapid_cur_exten=1 -# set the TRUNK in extensidialplan dialplan defs file rapid_conf_mode=no - -die() { - echo "$@" >&2 - exit 1 -} - -say() { - if [ "$verbose" = no ]; then - return - fi - echo "$@" >&2 -} - -run_ztcfg() { - if [ "$verbose" = no ]; then - $ztcfg_cmd "$@" - else - say "Reconfiguring identified channels" - $ztcfg_cmd -vv "$@" - fi -} - -do_update() { - sed -i.bak "s/^$1=.*\$/$1=\"$2\"/" ${ZAPTEL_BOOT} - if ! grep -q "^$1=" ${ZAPTEL_BOOT}; then - echo "$1=\"$2\"" >> ${ZAPTEL_BOOT} - fi -} - -update_extensions_defs() { - if [ "$rapid_conf_mode" = 'yes' ] - then - say "DEBUG: Updating dialplan defs file $exten_defs_file" - if [ "`echo $tmp_dir/fxo_* | grep -v '*'`" != '' ] - then - trunk_nums=`cat $tmp_dir/fxo_* | sort -n | xargs` - say "Configuring TRUNK to be [first of] zaptel channels: $trunk_nums" - trunk_dev=`echo $trunk_nums| sed -e 's/ /\\\\\\&/g' -e 's/[0-9a-zA-Z]\+/Zap\\\\\\/&/g'` - echo >&2 sed -i "s/^TRUNK.*=>.*/TRUNK => $trunk_dev/" $exten_defs_file - sed -i "s/^TRUNK.*=>.*/TRUNK => $trunk_dev/" $exten_defs_file - if ! grep -q "^TRUNK =>" $exten_defs_file; then - trunk_dev=`echo $trunk_nums| sed -e 's/ /&/g' -e 's/[0-9a-zA-Z]*/Zap\\/&/g'` - echo "TRUNK => $trunk_dev" >> $exten_defs_file - fi - else - say "Warning: No FXO channel for trunk. Moving on." - fi - if [ "`echo $tmp_dir/fxs_* | grep -v '*'`" != '' ] - then - fxs_nums=`cat $tmp_dir/fxs_* | sort -n | xargs` - zap_nums=`grep '^[^;].*Zap/\${CHAN_ZAP_' $exten_base_dir/*.conf | \ - sed -e 's/.*Zap\/\${CHAN_ZAP_\([0-9]*\)}.*/\1/' | sort -u | xargs` - say "Configuring channels: $fxs_nums as channel placeholders: $zap_nums" - j=1 - for i in $zap_nums - do - chan=`echo $fxs_nums | awk "{print \\$$i}"` - if [ "$chan" = '' ] - then - # if the result is empty, we probably got past the last one. - # bail out. - say "Warning: No FXS channel for CHAN_ZAP_$i. Moving on" - break - fi - say "DEBUG: setting channel $chan to placeholder $i" - if grep -q "^CHAN_ZAP_$i " $exten_defs_file - then - sed -i -e "s/^CHAN_ZAP_$i .*/CHAN_ZAP_$i => Zap\/$chan/" $exten_defs_file - else - echo "CHAN_ZAP_$i => Zap/$chan" >> $exten_defs_file - fi - done - fi - # cleaning up the temp dir - if [ -d "$tmp_dir" ]; then rm -rf "$tmp_dir"; fi - fi -} - -usage() { - program=`basename $0` - - echo >&2 "$program: generate zaptel.conf" - echo >&2 "usage:" - echo >&2 " $program [-v] [-m k|l|g] [-c ] [-r |-e ] " - echo >&2 " $program [-v] -l" - echo >&2 " $program -u" - echo >&2 " $program -h (this screen)" - echo >&2 "" - echo >&2 "Options:" - echo >&2 " -c CODE: set the country code (default: $lc_country)" - echo >&2 " -e NUM: set the base extension number (default: $base_exten)" - echo >&2 " -m: set signalling method (gs/ks/ls, default: $method)" - echo >&2 " -l: output a list of detected channels instead of zaptel.conf" - echo >&2 " -u: Unload zaptel modules" - echo >&2 " -v: verbose" - echo >&2 " -r: rapid configuration mode: configure Zaptel FXS channels from " - echo >&2 " existing Rapid extension files. FXOs will all be TRUNK " -} - -# $1: channel number -print_pattern() { - local chan=$1 - local sig=$2 #fxs/fxo - local mode=$3 - case "$mode" in - zaptel) echo "${sig}$method=$chan" ;; - list) echo $chan $sig;; - zapata) - echo "signalling=${sig}_$method" - if [ "$sig" = 'fxo' ] - then - echo "; Note: this is an extension. Create a ZAP extension in AMP for Channel $chan" - echo "context=from-internal" - echo "group=1" - # to preconfigure channel 1's extension to 550, set - # chan_1_exten=550 - # in, e.g, /etc/default/zaptel - var_name=`echo chan_${chan}_exten` - cfg_exten=`echo ${!var_name} | tr -d -c 0-9` - var_name=`echo chan_${chan}_vmbox` - cfg_vmbox=`echo ${!var_name} | tr -d -c 0-9` - var_name=`echo chan_${chan}_cntxt` - cfg_cntxt=`echo ${!var_name} | tr -d -c 0-9` - - # if option -E was given, get configuration from current extension - if [ "$rapid_conf_mode" = 'yes' ] - then - rap_exten=`echo $rapid_extens |awk "{print \\$$rapid_cur_exten}"` - if [ "$rap_exten" != '' ] - then - rap_cfgfile="$exten_base_dir/$rap_exten.conf" - if [ -r "$rap_exten" ] - then - cfg_exten=$rap_exten - # the vmbox is the third parameter to stdexten - rap_vmbox=`grep '^[^;].*Macro(stdexten' $rap_exten | cut -d, -f3 \ - | cut -d')' -f1 | tr -d -c '0-9@a-zA-Z'` - if [ "$rap_vmbox" ]!= '' ; then cfg_vmbox=$rap_vmbox; fi - fi - fi - rapid_cur_exten=$(($rapid_cur_exten + 1)) - fi - - if [ "$cfg_exten" = '' ] - then # No extension number set for this channel - exten=$(($chan+$base_exten)) - else # use the pre-configured extension number - exten=$cfg_exten - fi - # is there any real need to set 'mailbox=' ? - if [ "x$cfg_vmbox" = x ] - then # No extension number set for this channel - vmbox=$exten - else # use the pre-configured extension number - vmbox=$cfg_vmbox - fi - # echo "callerid=\"Channel $chan\" <$exten>" - # echo "mailbox=$exten" - else # we have may have set it. So reset it: - echo "; Note: this is a trunk. Create a ZAP trunk in AMP for Channel $chan" - echo "context=from-zaptel" - echo "group=0" - # echo "callerid=\"\" <0>" - # echo "mailbox=" - fi - - echo "channel => $chan" - echo "" - - # Keep a note of what channels we have identified - say "DEBUG: adding to channels list: channel: $chan, sig: $sig" - case "$sig" in - fxs) - echo $chan >$tmp_dir/fxo_$chan - say "DEBUG: FXO list now contains: `cat $tmp_dir/fxo_* |xargs`" - ;; - fxo) - echo $chan >$tmp_dir/fxs_$chan - say "DEBUG: FXS list now contains: `cat $tmp_dir/fxs_* |xargs`" - ;; - esac - ;; - esac - -} - -# the number of channels from /proc/zaptel -# must always print a number as its output. -count_proc_zap_lines() { - # if zaptel is not loaded there are 0 channels: - if [ ! -d /proc/zaptel ]; then echo '0'; return; fi - - ( - for file in `echo /proc/zaptel/* |grep -v '\*'` - do sed -e 1,2d $file # remove the two header lines - done - ) | wc -l # the total number of lines -} - -load_modules() { - say "Test Loading modules:" - for i in zaptel $ALL_MODULES - do - if [ "$i" = ztdummy ]; then - continue # No hardware to detect - fi - lines_before=`count_proc_zap_lines` - args="${i}_args" - eval "args=\$$args" - # a module is worth listing if it: - # a. loaded successfully, and - # b. added channels lines under /proc/zaptel/* - if /sbin/modprobe $i $args 2> /dev/null && \ - [ $lines_before -lt `count_proc_zap_lines` ] - then - probed_modules="$probed_modules $i" - say " ok $i $args" - else - say " - $i $args" - fi - done -} - - -unload_modules() { - if - pids="$(pgrep asterisk)" - [ "$pids" != '' ] - then - die "Before unloading -- STOP asterisk (pids=$pids)." - fi - say "Unloading zaptel modules:" - modlist='' - for i in $ALL_MODULES zaptel - do - if lsmod | grep "^$i *" > /dev/null; then - modlist="$modlist $i" - say -n "$i " - fi - done - /sbin/modprobe -r $modlist - say '' -} - -detect() { - unload_modules - load_modules - modlist="$probed_modules" - #for i in $ALL_MODULES - #do - # if lsmod | grep "^$i *" > /dev/null; then - # modlist="$modlist $i" - # fi - #done - modlist="$(echo $modlist)" # clean spaces - if [ "$modlist" = '' ]; then - modlist=ztdummy # Fallback - fi - say "Updating '${ZAPTEL_BOOT}'" - do_update ZAPTEL_MODS "$modlist" -} - -check_tdm_sigtype() { - chan_num=$1 - sig_type=$2 - mode=$3 - - case "$sig_type" in - fxs)chan_sig_type=fxo;; - fxo)chan_sig_type=fxs;; - esac - -# print_pattern $chan_num $chan_sig_type $mode - - $ztcfg_cmd -c <(print_pattern $chan_num $chan_sig_type zaptel) 2>/dev/null \ - || return 1 - if head -c1 /dev/zap/$chan_num >/dev/null 2>/dev/null - then - print_pattern $chan_num $chan_sig_type $mode - return 0 - else - return 1 - fi -} - -# output a list of extensions that need a channel -get_rapid_extens() { - if [ "$rapid_conf_mode" = 'yes' ] - then - rapid_extens=`grep -l '^[^;].*Zap/\${CHAN_ZAP_' $exten_base_dir/*.conf 2>/dev/null | \ - rev | cut -d/ -f1 | cut -d. -f2- | rev | xargs` - say "Need to configure extensions: $rapid_extens" - fi -} - -genconf() { - local mode=$1 - - # reset FXO list (global) - say "DEBUG: resetting channels lists" - rm -f $tmp_dir/fx{s,o}_* - - if [ "$mode" = 'zapata' ] - then - rem_char=';' - else - rem_char='#' - fi - - spanlist=`echo /proc/zaptel/* | grep -v '\*'` - - #if [ "$spanlist" == "" ]; then - # die "No zapata interfaces in /proc/zaptel" - #fi - - - case "$mode" in - zaptel) - cat <&2 "unknown signalling method ${OPTARG}s, defaulting to \"$method\"";; - esac - ;; - r) - rapid_conf_mode=yes - tmp_dir=`mktemp -d` || die "$0: failed to create temporary directory. Aborting" - ;; - *) echo >&2 "unknown parameter -$arg, Aborting"; usage; exit 1;; - esac -done -shift $(( $OPTIND-1 )) -if [ $# != 0 ]; then - echo >&2 "$0: too many parameters" - usage - exit 1 -fi - -case "$lc_country" in - # the list was generated from the source of zaptel: - #grep '{.*[0-9]\+,.*"[a-z][a-z]"' zonedata.c | cut -d'"' -f 2 | xargs |tr ' ' '|' - us|au|fr|nl|uk|fi|es|jp|no|at|nz|it|gr|tw|cl|se|be|il) - :;; -*) - lc_country=us - echo >&2 "unknown country-code $lc_country, defaulting to \"us\"";; -esac -# any reason for loadzone and defaultzone to be different? If so, this is -# the place to make that difference -loadzone=$lc_country -defaultzone=$loadzone - -# Choose reasonable default for signaling method (by country) -if [ "" = "$method" ]; then - case "$lc_country" in - il) method=ls ;; - *) method=ks ;; - esac -fi - -# make sure asterisk is not in our way -if [ "$force_stop_ast" = 'yes' ] -then -# /etc/init.d/asterisk stop 1>&2 - /usr/sbin/amportal stop 1>&2 -else - if ps auxww |grep asterisk | grep -v -- -r | grep -q -v grep - then - echo >&2 "Asterisk is already running. Configuration left untouched" - echo >&2 "You can use the option -s to shut down Asterisk for the" - echo >&2 "duration of the detection." - exit 1 - fi -fi - -if [ "$do_unload" = yes ] -then - unload_modules - exit -fi - -if [ "$do_detect" = yes ] -then - detect -fi - -if [ "$mode" = list ]; then - genconf list -else - get_rapid_extens - echo "Generating '${ZAPCONF_FILE}'" - mv "${ZAPCONF_FILE}" "${ZAPCONF_FILE}.bak" - genconf zaptel > "${ZAPCONF_FILE}" - echo "Generating '${ZAPATA_FILE}'" - mv "${ZAPATA_FILE}" "${ZAPATA_FILE}.bak" - genconf zapata > "${ZAPATA_FILE}" - run_ztcfg -fi - -if [ "$force_stop_ast" = 'yes' ] -then -# /etc/init.d/asterisk start 1>&2 - /etc/init.d/zaptel stop - /etc/init.d/zaptel start - /usr/sbin/amportal start 1>&2 -fi - -# if in verbose mode: verify that asterisk is running -if [ "$verify" != 'no' ] - then - say "Checking channels configured in Asterisk:" - sleep 1 # give it some time. This is enough on our simple test server - /usr/local/sbin/ast-cmd cmd "zap show channels" -fi