summaryrefslogtreecommitdiff
path: root/xpp/utils
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-09-14 22:29:36 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-09-14 22:29:36 +0000
commitc91b2cd29653da525d1a37cf680f4a75b2d3b208 (patch)
treef26185291a7ebb24902a2737d6e5b1fed75bb8c1 /xpp/utils
parent236601045ee0a95930414d8d5f822d9a61054aae (diff)
New xpp release (Xorcom rev 4648):
* New firmware protocol version: 2.8 . * New firmwares fix input ports offhook. * Cleanup INFO() messages during module loading. * USB: Receive queue with TASKLETS [r4600]. Controlled by rx_tasklet parameter to xpp_usb module (can be changed in runtime). * The pcm_tasklet parameter in xpp module is deprecated: - Does not actually do anything. - If set during module loading, shows an ERR() message. - Also appears in /proc/xpp/sync * FXS: Hardware DTMF detection by default, can be disabled by setting dtmf_detection=0 parameter to xpd_fxs. PCM is muted when DTMF key is pressed. * zapconf: - Can now generate users.conf compatible with asterisk-gui. - Optional command-line arguments denoting which files to generate. Possible values are 'zaptel', 'zapata' and 'users'. - Defaults to creating zaptel and zapata. git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@3019 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp/utils')
-rw-r--r--xpp/utils/Makefile2
-rwxr-xr-xxpp/utils/zapconf74
-rw-r--r--xpp/utils/zconf/Zaptel/Chans.pm1
3 files changed, 57 insertions, 20 deletions
diff --git a/xpp/utils/Makefile b/xpp/utils/Makefile
index fb32fff..9ae1124 100644
--- a/xpp/utils/Makefile
+++ b/xpp/utils/Makefile
@@ -31,7 +31,7 @@ PERL_MODS := $(shell cd zconf; echo $(PERL_MODS_PAT))
XPD_FIRMWARE = $(wildcard ../firmwares/*.hex)
XPD_INIT_DATA = $(XPD_FIRMWARE) init_fxo_modes
XPD_INIT = $(wildcard ../init_card_?_*) ../calibrate_slics xpp_fxloader
-XPD_INIT_PERL = ../init_card_6_26 ../init_card_7_26 ../init_card_9_26
+XPD_INIT_PERL = ../init_card_6_28 ../init_card_7_28 ../init_card_9_28
# Variables that should be defined above, but need sane defaults:
# FIXME: Are those values really sane?
diff --git a/xpp/utils/zapconf b/xpp/utils/zapconf
index 7cf1378..472c3af 100755
--- a/xpp/utils/zapconf
+++ b/xpp/utils/zapconf
@@ -41,16 +41,16 @@ my $fxs_default_start = 'ls';
my %default_zaptel_signalling = (
FXO => 'fxsks',
- FXS => "fxo$fxs_default_start",
- IN => "fxo$fxs_default_start",
- OUT => "fxo$fxs_default_start",
+ FXS => "fxo{fxs_default_start}",
+ IN => "fxo{fxs_default_start}",
+ OUT => "fxo{fxs_default_start}",
);
my %default_zapata_signalling = (
FXO => 'fxs_ks',
- FXS => "fxo_$fxs_default_start",
- IN => "fxo_$fxs_default_start",
- OUT => "fxo_$fxs_default_start",
+ FXS => "fxo_{fxs_default_start}",
+ IN => "fxo_{fxs_default_start}",
+ OUT => "fxo_{fxs_default_start}",
);
my $base_exten = 4000;
@@ -106,13 +106,15 @@ sub map_zaptel_defaults {
my $zapconf_file;
-my $zapata_file;
+my $zapatachannels_file;
my $users_file;
+my $zapataconf_file;
my %files = (
zaptel => { file => \$zapconf_file, func => \&gen_zaptelconf },
- zapata => { file => \$zapata_file, func => \&gen_zapataconf },
+ zapata => { file => \$zapatachannels_file, func => \&gen_zapatachannelsconf },
users => { file => \$users_file, func => \&gen_usersconf },
+ zapataconf => { file => \$zapataconf_file, func => \&gen_zapataconf },
);
my @default_files = ("zaptel", "zapata");
@@ -246,7 +248,7 @@ sub gen_zapata_digital($) {
my $sig = $span->signalling || die "missing signalling info for span #$num type $type";
grep($bri_sig_style eq $_, 'bri', 'bri_ptmp', 'pri') or die "unknown signalling style for BRI";
- if($bri_sig_style eq 'bri_ptmp') {
+ if($span->is_bri() and $bri_sig_style eq 'bri_ptmp') {
$sig .= '_ptmp';
}
$group .= "," . (10 + $num); # Invent unique group per span
@@ -306,7 +308,7 @@ sub gen_zapata_channel($) {
print "\n";
}
-sub gen_zapataconf($) {
+sub gen_zapatachannelsconf($) {
my $file = shift || die;
rename "$file", "$file.bak"
or $! == 2 # ENOENT (No dependency on Errno.pm)
@@ -344,14 +346,15 @@ sub gen_users_channel($) {
die "channel $num type $type is not an analog channel\n" if $chan->is_digital();
my $exten = $base_exten + $num;
my $sig = $default_zapata_signalling{$type};
+ my $full_name = "$type $num";
- return unless grep { $_ eq $type} ( 'FXS', 'IN', 'OUT' );
die "missing default_zapata_signalling for chan #$num type $type" unless $sig;
print << "EOF";
[$exten]
callwaiting = yes
context = numberplan-custom-1
-fullname = New User
+fullname = $full_name
+cid_number = $exten
hasagent = yes
hasdirectory = no
hasiax = yes
@@ -362,6 +365,8 @@ host = dynamic
mailbox = $exten
threewaycalling = yes
vmsecret = 1234
+secret = 1234
+signalling = $sig
zapchan = $num
registeriax = yes
registersip = yes
@@ -438,12 +443,32 @@ localextenlength = 4
HEAD
foreach my $span (@spans) {
+ next unless grep { $_ eq $span->type} ( 'FXS', 'IN', 'OUT' );
printf "; Span %d: %s %s\n", $span->num, $span->name, $span->description;
- if($span->is_digital()) {
- next;
- } else {
- foreach my $chan ($span->chans()) {
- gen_users_channel($chan);
+ foreach my $chan ($span->chans()) {
+ gen_users_channel($chan);
+ }
+ print "\n";
+ }
+ close F;
+ select $old;
+}
+
+sub gen_zapataconf($) {
+ my $file = shift || die;
+ open(F, ">>$file") || die "$0: Failed to open $file: $!\n";
+ my $old = select F;
+ foreach my $span (@spans) {
+ next unless $span->type eq 'FXO';
+ my $current_sig = "";
+ for my $chan ($span->chans()) {
+ my $chan_num = $chan->num;
+ if ($default_zapata_signalling{$chan->type} ne $current_sig) {
+ $current_sig = $default_zapata_signalling{$chan->type};
+ print "\nsignalling = $current_sig";
+ print "\nchannel => $chan_num";
+ } else {
+ print ",$chan_num";
}
}
print "\n";
@@ -464,9 +489,14 @@ sub set_defaults {
if -r $defaults;
}
map_zaptel_defaults(%source_defaults);
+ # Fixups
+ foreach my $val (values %default_zaptel_signalling, values %default_zapata_signalling) {
+ $val =~ s/{fxs_default_start}/$fxs_default_start/g;
+ }
$zapconf_file = $ENV{ZAPCONF_FILE} || "/etc/zaptel.conf";
- $zapata_file = $ENV{ZAPATA_FILE} || "/etc/asterisk/zapata-channels.conf";
+ $zapatachannels_file = $ENV{ZAPATA_FILE} || "/etc/asterisk/zapata-channels.conf";
$users_file = $ENV{USERS_FILE} || "/etc/asterisk/users.conf";
+ $zapataconf_file = $ENV{ZAPATACONF_FILE} || "/etc/asterisk/zapata.conf";
}
sub parse_args {
@@ -500,7 +530,7 @@ zapconf [FILES...]
=head1 DESCRIPTION
This script generate configuration files for Zaptel hardware.
-Currently it can generate three files: zaptel, zapata and users (see below).
+Currently it can generate three files: zaptel, zapata, users and zapataconf (see below).
Without arguments, it generates only zaptel and zapata.
=over 4
@@ -520,4 +550,10 @@ It's location may be overriden by the environment variable ZAPATA_FILE.
Configuration for asterisk(1) and AsteriskGUI.
It's location may be overriden by the environment variable USERS_FILE.
+=item zapataconf - /etc/asterisk/zapata.conf
+
+Configuration for asterisk(1) and AsteriskGUI.
+It's location may be overriden by the environment variable ZAPATACONF_FILE.
+
+
=back
diff --git a/xpp/utils/zconf/Zaptel/Chans.pm b/xpp/utils/zconf/Zaptel/Chans.pm
index f50d212..cd25bbb 100644
--- a/xpp/utils/zconf/Zaptel/Chans.pm
+++ b/xpp/utils/zconf/Zaptel/Chans.pm
@@ -61,6 +61,7 @@ sub new($$$$$$) {
$type = undef;
}
$self->type($type);
+ $self->span()->type($type) if $self->span()->type() eq 'UNKNOWN';
return $self;
}