|
Beispielkonfigurationen - Tips & Tricks
Asterisk: ENUM Lookup sip iax2 msg mailto Dial Macro
;-------------------------------------------------------------------------------;
[macro-dialenum] ;
;-------------------------------------------------------------------------------;
; ;
; Beispiel: exten => ??,n,Macro(dialenum,04121999,+494121999) ;
; ARG1: 04121999 (Rufnummer wie gewaehlt) ;
; ARG2: +494121999 (Rufnummer in enum Format) ;
; ;
;-------------------------------------------------------------------------------;
;
exten => s,1,Macro(setcallerid-voip)
;
exten => s,n,Set(enumuri=${ENUMLOOKUP(${ARG2},sip,,1,e164.arpa)})
exten => s,n,GotoIf($["${enumuri}" != ""]?enumok)
exten => s,n,Set(enumuri=${ENUMLOOKUP(${ARG2},iax2,,1,e164.arpa)})
exten => s,n,GotoIf($["${enumuri}" != ""]?enumok)
exten => s,n,Set(enumuri=${ENUMLOOKUP(${ARG2},sip,,1,e164.org)})
exten => s,n,GotoIf($["${enumuri}" != ""]?enumok)
exten => s,n,Set(enumuri=${ENUMLOOKUP(${ARG2},iax2,,1,e164.org)})
exten => s,n,GotoIf($["${enumuri}" != ""]?enumok:enumno)
;
;; Dial mit ENUM:
;
exten => s,n(enumok),NoOp(DEBUG enumok)
exten => s,n,Set(CHANNEL(language)=de)
exten => s,n,Playback(/var/lib/asterisk/sounds/shlink/anruf_wurde_per_enum_an_einen_voip_teilnehmer_umgeleitet)
;
;; ENUM-Dial SIP e164.arpa:
;
exten => s,n(e164arpasipstart),NoOp(DEBUG arpasipstart)
exten => s,n,Set(counter=0)
exten => s,n,Set(sipcount=${ENUMLOOKUP(${ARG2},sip,c,,e164.arpa)})
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?e164arpasipnext:e164arpaiaxstart)
exten => s,n(e164arpasipnext),NoOp
exten => s,n,Set(counter=$[${counter}+1])
exten => s,n,Dial(SIP/${ENUMLOOKUP(${ARG2},sip,,${counter},e164.arpa)})
exten => s,n,NoOp(DEBUG DIALSTATUS = ${DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}" != "ANSWER"]?e164arpasipcheck)
exten => s,n,Macro(dial-result)
exten => s,n,Hangup
exten => s,n,MacroExit
exten => s,n(e164arpasipcheck),NoOp
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?e164arpasipnext:e164arpaiaxstart)
;
;; ENUM-Dial IAX2 e164.arpa:
;
exten => s,n(e164arpaiaxstart),NoOp(DEBUG e164arpaiaxstart)
exten => s,n,Set(counter=0)
exten => s,n,Set(sipcount=${ENUMLOOKUP(${ARG2},iax2,c,,e164.arpa)})
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?e164arpaiaxnext:e164orgsipstart)
exten => s,n(e164arpaiaxnext),NoOp
exten => s,n,Set(counter=$[${counter}+1])
exten => s,n,Dial(IAX2/${ENUMLOOKUP(${ARG2},iax2,,${counter},e164.arpa)})
exten => s,n,NoOp(DEBUG DIALSTATUS = ${DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}" != "ANSWER"]?e164arpaiaxcheck)
exten => s,n,Macro(dial-result)
exten => s,n,Hangup
exten => s,n,MacroExit
exten => s,n(e164arpaiaxcheck),NoOp
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?e164arpaiaxnext:e164orgsipstart)
;
;; ENUM-Dial SIP e164.org:
;
exten => s,n(e164orgsipstart),NoOp(DEBUG e164orgsipstart)
exten => s,n,Set(counter=0)
exten => s,n,Set(sipcount=${ENUMLOOKUP(${ARG2},sip,c,,e164.org)})
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?e164orgsipnext:e164orgiaxstart)
exten => s,n(e164orgsipnext),NoOp
exten => s,n,Set(counter=$[${counter}+1])
exten => s,n,Dial(SIP/${ENUMLOOKUP(${ARG2},sip,,${counter},e164.org)})
exten => s,n,NoOp(DEBUG DIALSTATUS = ${DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}" != "ANSWER"]?e164orgsipcheck)
exten => s,n,Macro(dial-result)
exten => s,n,Hangup
exten => s,n,MacroExit
exten => s,n(e164orgsipcheck),NoOp
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?e164orgsipnext:e164orgiaxstart)
;
;; ENUM-Dial IAX2 e164.org:
;
exten => s,n(e164orgiaxstart),NoOp(DEBUG e164orgiaxstart)
exten => s,n,Set(counter=0)
exten => s,n,Set(sipcount=${ENUMLOOKUP(${ARG2},iax2,c,,e164.org)})
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?e164orgiaxnext:e164orgsipstart)
exten => s,n(e164orgiaxnext),NoOp
exten => s,n,Set(counter=$[${counter}+1])
exten => s,n,Dial(IAX2/${ENUMLOOKUP(${ARG2},iax2,,${counter},e164.org)})
exten => s,n,NoOp(DEBUG DIALSTATUS = ${DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}" != "ANSWER"]?e164orgiaxcheck)
exten => s,n,Macro(dial-result)
exten => s,n,Hangup
exten => s,n,MacroExit
exten => s,n(e164orgiaxcheck),NoOp
exten => s,n,GotoIf($["${counter}"<"${sipcount}"]?e164orgiaxnext:enummsgstart)
;
;; ENUM-Msg (email:mailto):
;
exten => s,n(enummsgstart),NoOp(DEBUG enummsgstart)
exten => s,n,Set(enumuri=${ENUMLOOKUP(${ARG2},msg,,1,e164.arpa)})
exten => s,n,GotoIf($["${enumuri}" != ""]?enummsgok)
exten => s,n,Set(enumuri=${ENUMLOOKUP(${ARG2},mailto,,1,e164.arpa)})
exten => s,n,GotoIf($["${enumuri}" != ""]?enummsgok)
exten => s,n,Set(enumuri=${ENUMLOOKUP(${ARG2},msg,,1,e164.org)})
exten => s,n,GotoIf($["${enumuri}" != ""]?enummsgok)
exten => s,n,Set(enumuri=${ENUMLOOKUP(${ARG2},mailto,,1,e164.org)})
exten => s,n,GotoIf($["${enumuri}" != ""]?enummsgok:enumno)
exten => s,n(enummsgok),NoOp
exten => s,n,system(/path/to/enummailto.sh ${enumuri} ${ARG1} \"${CALLERID(num)}\")
;
;; Dial ohne ENUM:
;
exten => s,n(enumno),NoOp(DEBUG enumno)
exten => s,n,MacroExit
;
;-------------------------------------------------------------------------------;
Script enummailto.sh:
#!/bin/sh
ZEIT=`date +%d.%m.%Y\ %H:%M`
echo "From: ENUM Message
To: ${1}
Reply-To: NoReply
Subject: ENUM Message Anruf von <${3}> an ${2}
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Sie wurden telefonisch nicht ueber Ihre hinterlegten ENUM Eintraege erreicht:
Uhrzeit: ${ZEIT}
Angerufen: ${2}
Anrufer: <${3}>
Diese Benachrichtigung erfolgte entsprechend Ihres ENUM email:mailto Eintrages.
" | /var/qmail/bin/sendmail -t -fcallinfo@my.host.name
Linksys: WRT54GS SNMP Konfiguration (snmpd.conf mit wlan-rate)
Bei gestartetem SNMPd auf dem Linksys WRT54GS WLan-Router ist der SNMP Zugriff
(lesen) per default allgemein möglich. Das möchte man natürlich nicht und sollte
daher den SNMP Zugriff auf den Router auf bestimmte IP-Adressen begrenzen.
Ausserdem möchte man ggf. per SNMP die Rate des Wireless Interfaces auslesen.
Hierzu wird die snmpd.conf zunächst um die Konfiguration für die Zugriffsbeschränkung
erweitert; ausserdem wird die snmpd.conf um den Eintrag 'exec wlrate' erweitert. Dieses
benötigt ein kleines Script, welches in der NVRam Variable 'rc_startup' hinterlegt wird.
Einfach die unten stehenden Befehle um das eigene IP-Netz korrigieren und dann direkt
auf dem Router (ssh) so eingeben.
nvram set snmpd_conf="com2sec paranoid 192.168.9.8/29 public
group metooro v1 paranoid
group metooro v2c paranoid
group metooro usm paranoid
view all included .1
access metooro \"\" any noauth exact all none none
informsink 192.168.9.9 public
exec wlrate /tmp/snmp.wlrate
"
nvram set rc_startup="/bin/echo \"#!/bin/sh
/usr/sbin/wl rate | /usr/bin/cut -b 9-10
\" > /tmp/snmp.wlrate ; /bin/chmod 755 /tmp/snmp.wlrate
"
nvram commit
Linux: Debian APT Benutzung
| |
|
|
| Cache aktualisieren: |
|
apt-get update |
| Pakete aktualisieren (alle): |
|
apt-get upgrade |
| Paket aus Default-Distribution suchen: |
|
apt-cache search meinprogramm |
| Paket aus Default-Distribution installieren: |
|
apt-get install meinprogramm |
| Paket aus Testing-Distribution (testing) installieren: |
|
apt-get install -t testing perl |
| Bei LANG oder MMap Problem apt-get so aufrufen: |
|
LANG=C ; LC_ALL=C ; apt-get update |
Linux: Debian APT Konfiguration
Zur Standard-Konfiguration für die Debian Lenny Distribution werden
die Paketserien 'shlink' (für SHLINK DEB Pakete) hinzugefügt (nur als fiktives Beispiel):
/etc/apt/sources.list:
deb http://ftp.freenet.de/debian/ lenny main non-free contrib
deb-src http://ftp.freenet.de/debian/ lenny main non-free contrib
deb http://security.debian.org/ lenny/updates main non-free contrib
deb-src http://security.debian.org/ lenny/updates main non-free contrib
deb http://ftp.shlink.de/shlink/ lenny shlink
Sicherheitshalber sollten fuer APT einige Default-Einstellungen
geändert werden. Einmal wird festgelegt, dass 'lenny' die
Standard-Distribution ist. Zum anderen wird ein 'Cache-Limit'
definiert. Letzteres verhindert ein MMap-Problem beim mergen
von mehreren Distributionen/Paketlisten.
/etc/apt/apt.conf.d/70debconf:
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt || true";};
// Hier Hinzufügen:
APT::Default-Release "lenny";
APT::Cache-Limit 16777216;
Linux: DHCP3 Server Konfiguration
Einrichten des dhcp3 Servers mit: apt-get install dhcp3-server
Start/Stop per /etc/init.d/dhcp3-server start | stop
Konfigurationsdatei: /etc/dhcp3/dhcpd.conf
##
## /etc/dhcp3/dhcpd.conf:
##
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local6;
#
## Alle am dhcp3-server-rechner angeschlossenen Netze müssen
## eingetragen werden, aber nur im internen Netz dhcp machen.
## Extranet/Internet:
#
subnet 212.60.99.4 netmask 255.255.255.252 {
}
#
## Genereller Eintrag, dynamische IP-Zuweisung im Intranet:
## Intranet:
#
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.200 192.168.1.215;
range dynamic-bootp 192.168.1.216 192.168.1.231;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name "kunde.de";
option domain-name-servers 212.60.1.1, 212.60.2.1;
option interface-mtu 1500;
option ip-forwarding false;
option log-servers 212.60.99.99;
option lpr-servers 192.168.1.2;
option nntp-server 212.60.1.145;
option ntp-servers 212.60.1.2;
option pop-server 192.168.1.2;
option smtp-server 192.168.1.2;
option tftp-server-name 192.168.1.2;
## option wpad-url code 252 = text;
## option wpad-url "http://www.shlink.de/proxy.pac\000";
}
#
## Feste IP-Adresszuweisung für einen Rechner:
#
host fixerhost {
hardware ethernet 00:50:DA:3B:9B:6A;
fixed-address fixerhost.kunde.de;
}
#
## Alle Optionen per 'man dhcp-options'
## oder (fuer cisco usw.)
## http://www.iana.org/assignments/bootp-dhcp-parameters
##
## Die zusätzlichen DHCP-Infos (wie SMTP-Server, NTP-Server,
## NNTP-Server, usw.) werden defaultmässig i.a.R. nicht von
## Clients übernommen. Man kann das (unter Linux) durch ent-
## sprechende Script-Anpassungen machen. Die Variablen sind
## jeweils (Debian) new_smtp_server, new_ntp_server, usw.
#
Linux: Fetchmail Konfiguration
/var/qmail/bin/qmail-fetchmail:
#!/bin/sh
fetchmail -v -p POP3 -Q "kunde.de-" -u fetchmail@kunde.de mail.kunde.de
exit 0
/root/.fetchmailrc:
# so gehts mit multidrop-mailbox:
#
poll mail.kunde.de localdomains kunde.de:
user fetchmail@kunde.de with pass geheim to * here
Linux: OpenVPN Konfiguration
/etc/openvpn/zentrale.conf:
port 1194
proto udp
dev tun
tls-server
ca /etc/openvpn/shlink-ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 192.168.48.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
ccd-exclusive
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
Danach Permissions korrekt setzen:
chmod 444 /etc/openvpn/shlink-ca.crt
chmod 400 /etc/openvpn/zentrale.key
chmod 444 /etc/openvpn/zentrale.crt
/etc/openvpn/vpnclient1.conf:
client
dev tun
proto udp
remote zentrale.shlink.com 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
tls-client
ca /etc/openvpn/shlink-ca.crt
cert /etc/openvpn/vpnclient1.crt
key /etc/openvpn/vpnclient1.key
comp-lzo
verb 3
up /etc/openvpn/zentrale.up
Danach Permissions korrekt setzen:
chmod 444 /etc/openvpn/shlink-ca.crt
chmod 400 /etc/openvpn/vpnclient1.key
chmod 444 /etc/openvpn/vpnclient1.crt
/etc/openvpn/zentrale.up:
#!/bin/bash
route add -net 192.168.0.0 netmask 255.255.255.0 tun0
Danach Permissions korrekt setzen:
chmod 700 /etc/openvpn/zentrale.up
Linux: PPPoE MTU Konfiguration
man pppoe:
pppd pty 'pppoe [pppoe_options]' [pppd_options]
-m MSS Causes pppoe to clamp the TCP maximum segment size
at the specified value. Because of PPPoE overhead,
the maximum segment size for PPPoE is smaller than
for normal Ethernet encapsulation. This could
cause problems for machines on a LAN behind a gate
way using PPPoE. If you have a LAN behind a gate
way, and the gateway connects to the Internet using
PPPoE, you are strongly recommended to use a -m
1412 option. This avoids having to set the MTU on
all the hosts on the LAN.
MTU-Size bei @shlink43.de ist derzeit 1456:
/etc/peers/MeinProvider (Auszüge):
pty "/usr/sbin/pppoe -I eth -T 300 -m 1416"
mtu 1456
mru 1456
mss 1416 # mss = mtu(1456)-40=1416
MTU-Size bei @cx-dsl ist derzeit 1492:
/etc/peers/MeinProvider (Auszüge):
pty "/usr/sbin/pppoe -I eth -T 300 -m 1452"
mtu 1492
mru 1492
mss 1452 # mss = mtu(1492)-40=1452
Das sind die Werte für T-DSL und damit funktionieren auch alle
Clients problemlos (egal welche MTU dort eingestellt ist).
Linux: Audio CDRom in MP3 wandeln
1.) Audio CD einlesen und Musikstücke als WAV-Dateien abspeichern:
mkdir /tmp/cd2mp3
cd /tmp/cd2mp3
cdparanoia -w -B -T -d/dev/cdrom
2a.) WAV-Dateien in MP3-Dateien wandeln:
bladeenc infile.wav outfile.mp3
2b.) FLAC-Dateien in MP3-Dateien wandeln:
twolame infile.flac outfile.mp3
3.) Und abspielen:
xmms outfile.mp3
Linux: MP3 auf Audio CDRom brennen
Die einfachste Methode ist die Verwendung des Frontends 'gnomebaker'. Alternativ
kann eine Audio-CD auch mit den entsprechenden Tools direkt erstellt werden:
1.) Debian Paket cdrecord installieren mit
apt-get install cdrecord
2.) Directory 'tempcddir' anlegen mit
mkdir tempcddir
3.) In das Directory 'tempcddir' die MP3 Dateien kopieren
cp *.mp3 ./tempcddir/
4.) Das Directory 'tempcddir' in ein ISO-Image schreiben
mkisofs -r -o cdimage tempcddir/
5.) Das ISO-Image auf eine CDRom schreiben mit
cdrecord -v -eject dev=/dev/cdrom -data cdimage
NetGear: GSM7212 Gigabit Ethernet Switch Konfiguration (Beispiel)
!
!! Beispielkonfiguration: NetGear GSM7212 Gigabit Ethernet Switch
!!
!! Konfiguriert sind 2 VLan's, mit VLan-Id 2 und Vlan-Id 3
!! Trunkport = Interface 0/1
!! VLan-Id 2 = Interface 0/2
!! VLan-Id 3 = Interface 0/3
!!
!! Konfiguration ohne Gewähr, Umsetzung auf eigene Verantwortung
!
!
set prompt "gsm7212"
network protocol none
network parameters 192.168.1.1 255.255.255.0 192.168.1.254
no network javamode
ip http secure-server
ip ssh
!
!
vlan database
vlan 2
vlan name 2 test2lan
vlan 3
vlan name 3 test3lan
exit
!
!
configure
sntp client mode unicast
sntp server 82.208.50.189
no logging buffered
logging console
logging host 192.168.1.2 514 info
logging syslog
logging cli-command
snmptrap shlinknoc 192.168.1.3
users name beispieluser
lineconfig
exit
!
!
spanning-tree forceversion 802.1s
snmp-server sysname "gsm7212"
snmp-server location "Test-Labor"
snmp-server contact "admin@testlabor.xyz"
snmp-server community ipaddr 192.168.1.0 public
snmp-server community ipmask 255.255.255.224 public
!
!
interface 0/1
vlan tagging 2
vlan tagging 3
vlan participation include 2
vlan participation include 3
!
interface 0/2
no spanning-tree port mode
vlan pvid 2
vlan ingressfilter
vlan participation include 2
exit
!
interface 0/3
no spanning-tree port mode
vlan pvid 3
vlan ingressfilter
vlan participation include 3
exit
!
interface 0/4
no spanning-tree port mode
shutdown
exit
!
interface 0/5
no spanning-tree port mode
shutdown
exit
!
interface 0/6
no spanning-tree port mode
shutdown
exit
!
interface 0/7
no spanning-tree port mode
shutdown
exit
!
interface 0/8
no spanning-tree port mode
shutdown
exit
!
interface 0/9
no spanning-tree port mode
shutdown
exit
!
interface 0/10
no spanning-tree port mode
shutdown
exit
!
interface 0/11
no spanning-tree port mode
shutdown
exit
!
interface 0/12
no spanning-tree port mode
shutdown
exit
|