From e742d6280ad1a9fa29d49d13e87b913955cbbcca Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Tue, 24 Apr 2012 15:29:31 +0200 Subject: [PATCH] Auto create callback domain and LL::NG config --- createlinks | 1 + ipasserelle-telephony.spec | 10 +++- .../actions/ipasserelle-tel-init-domains | 53 +++++++++++++++++++ .../lib/lemonldap-ng/conf/lmConf/080callback | 30 +++++++++++ 4 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 root/etc/e-smith/events/actions/ipasserelle-tel-init-domains create mode 100644 root/etc/e-smith/templates/var/lib/lemonldap-ng/conf/lmConf/080callback diff --git a/createlinks b/createlinks index 2cda3ba..8e4c316 100644 --- a/createlinks +++ b/createlinks @@ -4,5 +4,6 @@ use esmith::Build::CreateLinks qw(:all); foreach my $event (qw/bootstrap-console-save webapps-update ipasserelle-update/){ templates2events("/etc/lemonldap-ng/lemonldap-ng-fpbx.ini", "$event"); + event_link("ipasserelle-tel-init-domains", "$event", "25"); } diff --git a/ipasserelle-telephony.spec b/ipasserelle-telephony.spec index 8204478..3057281 100644 --- a/ipasserelle-telephony.spec +++ b/ipasserelle-telephony.spec @@ -1,5 +1,5 @@ -%define version 0.2.0 -%define release 1 +%define version 0.2.1 +%define release 1.beta1 %define name ipasserelle-telephony @@ -20,12 +20,18 @@ Provides: smeserver-ejabberd Requires: ipasserelle-base Requires: smeserver-freepbx >= 0.1-32 +Requires: ipasserelle-portal Requires: ipasserelle-userpanel +Requires: smeserver-callback + %description Meta package to configure Toip services on your iPasserelle. +* Tue Apr 24 2012 Daniel Berteaud 0.2.1 +- Auto create callback domain and LL::NG config + * Thu Oct 20 2011 Daniel Berteaud 0.2.0 - initial release diff --git a/root/etc/e-smith/events/actions/ipasserelle-tel-init-domains b/root/etc/e-smith/events/actions/ipasserelle-tel-init-domains new file mode 100644 index 0000000..8de3d78 --- /dev/null +++ b/root/etc/e-smith/events/actions/ipasserelle-tel-init-domains @@ -0,0 +1,53 @@ +#!/usr/bin/perl -w +#---------------------------------------------------------------------- +# copyright (C) 2010-2011 Firewall-Services +# daniel@firewall-services.com +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Technical support for this program is available from Mitel Networks +# Please visit our web site www.mitel.com/sme/ for details. +#---------------------------------------------------------------------- + +use strict; +use warnings; +use esmith::DomainsDB; +use esmith::ConfigDB; + +my $d = esmith::DomainsDB->open or die "Couldn't open DomainsDB\n"; +my $c = esmith::ConfigDB->open_ro() or die "Couldn't open ConfigDB\n"; + +my $domain = $c->get('DomainName')->value; +my $vhost; + +$vhost = $d->get("callback.$domain"); + +if (!$vhost){ + $d->new_record("callback.$domain",{ + type => 'domain', + Content => 'Primary', + Description => "Callback", + Nameservers => 'internet', + TemplatePath => 'WebAppVirtualHost', + DocumentRoot => '/usr/share/callback', + Removable => 'no', + LemonLDAP => 'enabled' + }); + + unless ( system("/sbin/e-smith/signal-event", "domain-create", "callback.$domain") == 0 ){ + die "Failed to create domain callback.$domain\n"; + } +} + diff --git a/root/etc/e-smith/templates/var/lib/lemonldap-ng/conf/lmConf/080callback b/root/etc/e-smith/templates/var/lib/lemonldap-ng/conf/lmConf/080callback new file mode 100644 index 0000000..deb026b --- /dev/null +++ b/root/etc/e-smith/templates/var/lib/lemonldap-ng/conf/lmConf/080callback @@ -0,0 +1,30 @@ +{ + +$conf->{'exportedHeaders'}->{"callback.$domain"} = { + 'Auth-User' => '$uid', + 'User-Telephone' => '$telephone', + 'User-Extension' => '$extension' +} unless ($conf->{'exportedHeaders'}->{"callback.$domain"}); + + +$conf->{'locationRules'}->{"callback.$domain"} = { + 'default' => '$groups =~ /\\badmins|equipe\\b/', +} unless ($conf->{'locationRules'}->{"callback.$domain"}); + + +$conf->{'applicationList'}->{'010apps'}->{'callback'} = { + 'options' => { + 'logo' => 'network.png', + 'name' => 'Callback', + 'description' => 'Mise en relation téléphonique', + 'uri' => "https://callback.$domain", + 'display' => 'auto' + }, + 'type' => 'application' +} unless ($conf->{'applicationList'}->{'010apps'}->{'callback'}); + + +$OUT = ''; + +} +