#!/bin/bash

# Copyright (C) 2012 DECOIT GmbH <asterisk4ucs@decoit.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3 as
# published by the Free Software Foundation
#
# 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.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

set -e
set -u

eval "$(ucr shell)"

function create {
	module="$1"
	position="$2"
	shift 2
	udm $module create \
		--ignore_exists \
		--position "$position,$ldap_base" \
		--superordinate "$position,$ldap_base" \
		"$@"
}

# =============== Telefonbuch =================================================
create asterisk/phoneBook "cn=asterisk" \
	--set commonName="Testtelefonbuch"

# Kontakte
create asterisk/contact "cn=Testtelefonbuch,cn=asterisk" \
	--set firstname="Maurice" \
	--set lastname="Moss" \
	--set telephoneNumber="+441189998819991197253" \
	--set telephoneNumber="+44483759749579375948375" \
	--set mobileNumber="+441234567890" \
	--set faxNumber="+441234567890847329"
create asterisk/contact "cn=Testtelefonbuch,cn=asterisk" \
	--set organisation="DECOIT GmbH" \
	--set telephoneNumber="+494215960640"

# ========== Asterisk-Server ==================================================
# Server (Erstellt intern auch AGI-Script und Wartschlangenmusik)
create asterisk/server "cn=asterisk" \
	--set commonName="Testserver" \
	--set sshhost="localhost"

# Konferenzraum
create asterisk/conferenceRoom "cn=Testserver,cn=asterisk" \
	--set extension="50" \
	--set pin="1234" \
	--set adminPin="4321"

# Telefontyp
create asterisk/phoneType "cn=Testserver,cn=asterisk" \
	--set commonName="Grandstream 12D" \
	--set displaySize="ziemlich groß" \
	--set manufacturer="Grandstream" \
	--set type="Wählscheiben-Telefon"

# Telefongruppen
create asterisk/phoneGroup "cn=Testserver,cn=asterisk" \
	--set commonName="Softwareentwicklung" \
	--set id="1"
create asterisk/phoneGroup "cn=Testserver,cn=asterisk" \
	--set commonName="Systemmanagement" \
	--set id="2"

# Warteschleifen
create asterisk/waitingLoop "cn=Testserver,cn=asterisk" \
	--set extension="30"

# Mailboxen
create asterisk/mailbox "cn=Testserver,cn=asterisk" \
	--set id="05" \
	--set password="1234" \
	--set email="1"
create asterisk/mailbox "cn=Testserver,cn=asterisk" \
	--set id="20" \
	--set password="1234" \
	--set email="1"
create asterisk/mailbox "cn=Testserver,cn=asterisk" \
	--set id="21" \
	--set password="1234" \
	--set email="1"

# Telefone
create asterisk/sipPhone "cn=Testserver,cn=asterisk" \
	--set extension="05" \
	--set password="1234" \
	--set phonetype="cn=Grandstream 12D,cn=Testserver,cn=asterisk,$ldap_base" \
	--set waitingloops="ast4ucsExtensionExtension=30,cn=Testserver,cn=asterisk,$ldap_base" \
	--set callgroups="cn=Systemmanagement,cn=Testserver,cn=asterisk,$ldap_base" \
	--set pickupgroups="cn=Systemmanagement,cn=Testserver,cn=asterisk,$ldap_base" \
	--set pickupgroups="cn=Softwareentwicklung,cn=Testserver,cn=asterisk,$ldap_base"

create asterisk/sipPhone "cn=Testserver,cn=asterisk" \
	--set extension="20" \
	--set password="1234" \
	--set phonetype="cn=Grandstream 12D,cn=Testserver,cn=asterisk,$ldap_base" \
	--set waitingloops="ast4ucsExtensionExtension=30,cn=Testserver,cn=asterisk,$ldap_base" \
	--set callgroups="cn=Systemmanagement,cn=Testserver,cn=asterisk,$ldap_base" \
	--set pickupgroups="cn=Systemmanagement,cn=Testserver,cn=asterisk,$ldap_base" \
	--set pickupgroups="cn=Softwareentwicklung,cn=Testserver,cn=asterisk,$ldap_base"

create asterisk/sipPhone "cn=Testserver,cn=asterisk" \
	--set extension="21" \
	--set password="1234" \
	--set phonetype="cn=Grandstream 12D,cn=Testserver,cn=asterisk,$ldap_base" \
	--set waitingloops="ast4ucsExtensionExtension=30,cn=Testserver,cn=asterisk,$ldap_base" \
	--set callgroups="cn=Softwareentwicklung,cn=Testserver,cn=asterisk,$ldap_base" \
	--set pickupgroups="cn=Softwareentwicklung,cn=Testserver,cn=asterisk,$ldap_base" \
	--set pickupgroups="cn=Systemmanagement,cn=Testserver,cn=asterisk,$ldap_base"

# ====================== Benutzer =============================================

create users/user "cn=users" \
	--set lastname="Moss" \
	--set firstname="Maurice" \
	--set mailPrimaryAddress="moss@localhost" \
	--set username="mmoss" \
	--set password="mmoss" \
	--set overridePWLength="1"
udm users/user modify --dn "uid=mmoss,cn=users,$ldap_base" \
	--set mailbox="cn=mailbox 20,cn=Testserver,cn=asterisk,$ldap_base" \
	--set phones="ast4ucsExtensionExtension=20,cn=Testserver,cn=asterisk,$ldap_base"

create users/user "cn=users" \
	--set lastname="Trenneman" \
	--set firstname="Roy" \
	--set mailPrimaryAddress="trenneman@localhost" \
	--set username="rtrenneman" \
	--set password="rtrenneman" \
	--set overridePWLength="1"
udm users/user modify --dn "uid=rtrenneman,cn=users,$ldap_base" \
	--set mailbox="cn=mailbox 21,cn=Testserver,cn=asterisk,$ldap_base" \
	--set phones="ast4ucsExtensionExtension=21,cn=Testserver,cn=asterisk,$ldap_base"

