[zaptel-commits] tzafrir: trunk r1640 -
/trunk/xpp/utils/genzaptelconf
zaptel-commits at lists.digium.com
zaptel-commits at lists.digium.com
Thu Nov 23 03:02:51 MST 2006
Author: tzafrir
Date: Thu Nov 23 04:02:50 2006
New Revision: 1640
URL: http://svn.digium.com/view/zaptel?view=rev&rev=1640
Log:
* Work around http://bugs.digium.com/view.php?id=7877: reset every value
we set (except signalling). Isn't zapata.conf fun to work with?
* Allow different signalling type for ZapBRI through ZAPBRI_SIGNALLING.
- Note that even "pri" ZAPBRI_SIGNALLING requires bristuffed zaptel.
* All in all a good reason to increase version number.
Modified:
trunk/xpp/utils/genzaptelconf
Modified: trunk/xpp/utils/genzaptelconf
URL: http://svn.digium.com/view/zaptel/trunk/xpp/utils/genzaptelconf?view=diff&rev=1640&r1=1639&r2=1640
==============================================================================
--- trunk/xpp/utils/genzaptelconf (original)
+++ trunk/xpp/utils/genzaptelconf Thu Nov 23 04:02:50 2006
@@ -34,7 +34,7 @@
# (redhat/centos)
# /etc/default/zaptel may override the following variables
-VERSION=0.5.7
+VERSION=0.5.8
rcsid='$Id$'
lc_country=us
base_exten=6000
@@ -80,6 +80,14 @@
# - The module that will be deleted from /etc/modules , if -d -M is used
ALL_MODULES="zaphfc qozap ztgsm wctdm wctdm24xxp wcfxo wcfxs pciradio tor2 torisa wct1xxp wct4xxp wcte11xp wanpipe wcusb xpp_usb"
+# What signalling to give to ZapBRI channels?
+# bri: bri_net; bri_cpe (Bristuffed Asterisk. No multi- support)
+# bri_ptmpi: bri_net_ptmp; bri_cpe_ptmp (Bristuffed Asterisk, multi- support)
+# pri: pri_net; pri_cpe (Recent Asterisk. Experimental)
+#ZAPBRI_SIGNALLING=bri
+#ZAPBRI_SIGNALLING=bri_ptmp
+ZAPBRI_SIGNALLING=pri
+
# read default configuration from /etc/default/zaptel
if [ -r $ZAPTEL_BOOT_DEBIAN ]; then . $ZAPTEL_BOOT_DEBIAN; fi
if [ -r $ZAPTEL_BOOT_FEDORA ]; then . $ZAPTEL_BOOT_FEDORA; fi
@@ -110,6 +118,16 @@
fxsdisable=no
span_te_timing_counter=1
+
+case "$ZAPBRI_SIGNALLING" in
+bri) ZAPBRI_NET=bri_net; ZAPBRI_CPE=bri_cpe ;;
+pri) ZAPBRI_NET=pri_net; ZAPBRI_CPE=pri_cpe ;;
+bri_ptmp) ZAPBRI_NET=bri_net_ptmp; ZAPBRI_CPE=bri_cpe_ptmp ;;
+*)
+ echo >&2 "Incorrect value for ZAPBRI_SIGNALLING ($ZAPBRI_SIGNALLING). Abortring"
+ exit 1
+ ;;
+esac
die() {
echo "$@" >&2
@@ -246,6 +264,7 @@
# $1: channel number
print_pattern() {
local astbank_type=''
+ local reset_values=""
OPTIND=1
while getopts 'a:' arg
do
@@ -303,10 +322,13 @@
vmbox=$cfg_vmbox
fi
echo "callerid=\"Channel $chan\" <$exten>" >> $zapata_file
+ reset_values="$reset_values callerid"
echo "mailbox=$exten" >> $zapata_file
+ reset_values="$reset_values mailbox"
if [ "$group_manual" != "yes" ]
then
echo "group=$group_phones" >> $zapata_file
+ reset_values="$reset_values group"
fi
if [ "$context_manual" != "yes" ]
then
@@ -317,11 +339,11 @@
else
echo "context=$context_phones" >> $zapata_file
fi
+ reset_values="$reset_values context"
fi
else # this is an FXO (trunk/phone: FXO signalling)
# we have may have set it. So reset it:
echo "callerid=asreceived" >> $zapata_file
- echo "mailbox=" >> $zapata_file
if [ "$group_manual" != "yes" ]
then
echo "group=$group_lines" >> $zapata_file
@@ -329,6 +351,7 @@
if [ "$context_manual" != "yes" ]
then
echo "context=$context_lines" >> $zapata_file
+ reset_values="$reset_values context"
fi
if [ "$lc_country" = 'uk' ]
then
@@ -337,12 +360,14 @@
*WCFXO*) echo "cidstart=history" >> $zapata_file;;
*) echo "cidstart=polarity" >> $zapata_file;;
esac
+ reset_values="$reset_values cidsignalling cidstart"
fi
echo ";;; line=\"$line\"" >> $zapata_file
# if kewlstart is not used, busydetect has to be employed:
if [ "$method" = 'ls' ]
- then echo 'busydetect=yes' >> $zapata_file
- else echo 'busydetect=no' >> $zapata_file
+ then
+ echo 'busydetect=yes' >> $zapata_file
+ reset_values="$reset_values busydetect"
fi
fi
@@ -350,11 +375,13 @@
then
if [ "$astbank_type" = 'input' ] || \
( [ "$fxs_immediate" = 'yes' ] && [ "$sig" = "fxo" ] )
- then echo 'immediate=yes' >> $zapata_file
- else echo 'immediate=no' >> $zapata_file
+ then
+ echo 'immediate=yes' >> $zapata_file
+ reset_values="$reset_values immediate"
fi
fi
echo "channel => $chan" >> $zapata_file
+ reset_zapata_entry $zapata_file $reset_values
echo "" >> $zapata_file
# Keep a note of what channels we have identified
@@ -535,8 +562,28 @@
fi
}
+# run after the channel's entry. Used to reset all the values
+reset_zapata_entry() {
+ conf_file="$1"; shift
+
+ for arg in "$@"; do
+ case "$arg" in
+ busydetect) echo "busydetect=no" >>$conf_file;;
+ callerid) echo "callerid=" >>$conf_file;;
+ cidstart) echo "cidstart=" >>$conf_file;;
+ cidsignalling) echo "cidsignalling=" >>$conf_file;;
+ context) echo "context=default" >>$conf_file;;
+ group) echo "group=" >>$conf_file;;
+ immediate) echo "immediate=no" >>$conf_file;;
+ mailbox) echo "mailbox=" >>$conf_file;;
+ esac
+ done
+}
+
+
genconf() {
local mode=$1
+ local reset_values=""
# reset FXO list (global)
#say "DEBUG: resetting channels lists"
rm -f $tmp_dir/fx{s,o}_*
@@ -704,9 +751,9 @@
echo 'euroisdn' >$tmp_dir/span_switchtype
if [ "`cat $tmp_dir/span_termtype`" = 'nt' 2>/dev/null ]
then
- echo 'bri_net' >$tmp_dir/span_signalling
+ echo $ZAPBRI_NET >$tmp_dir/span_signalling
else
- echo 'bri_cpe' >$tmp_dir/span_signalling
+ echo $ZAPBRI_CPE >$tmp_dir/span_signalling
fi
;;
*ztgsm*/*)
@@ -816,10 +863,12 @@
if [ "$span_termtype" = 'nt' ]
then
echo "callerid=\"Channels $span_begin - $span_end\" <$span_begin>" >> $zapata_file
+ reset_values="$reset_values callerid"
#echo "mailbox=$exten"
if [ "$group_manual" != "yes" ]
then
echo "group=$group_phones" >> $zapata_file
+ reset_values="$reset_values group"
fi
if [ "$context_manual" != "yes" ]
then
@@ -827,20 +876,24 @@
fi
else # we have may have set it. So reset it:
echo "callerid=asreceived"
+ reset_values="$reset_values callerid"
#echo "mailbox="
if [ "$group_manual" != "yes" ]
then
echo "group=$group_lines" >> $zapata_file
+ reset_values="$reset_values group"
fi
if [ "$context_manual" != "yes" ]
then
echo "context=$context_lines" >> $zapata_file
+ reset_values="$reset_values context"
fi
fi
fi
echo "switchtype = $span_switchtype" >> $zapata_file
echo "signalling = $span_signalling" >> $zapata_file
echo "channel => $bchans" >> $zapata_file
+ reset_zapata_entry $zapata_file $reset_values
;;
list)
echo BRI/PRI: chans: $bchans, control: $dchan
More information about the zaptel-commits
mailing list