Index: ipk/source.sh4/infos_fritzcall/CONTROL/control
===================================================================
--- ipk/source.sh4/infos_fritzcall/CONTROL/control	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/CONTROL/control	(revision 12232)
@@ -0,0 +1,11 @@
+Package: enigma2-plugin-infos-fritzcall
+Version: 1.2
+Description: Callmonitor-Plugin Fritzcall
+Section: infos
+Priority: optional
+Maintainer: AAF Forum
+Architecture: sh4
+OE: Callmonitor-Plugin Fritzcall
+Homepage: http://www.aaf-digital.info
+Depends:
+Source: http://www.aaf-digital.info
Index: ipk/source.sh4/infos_fritzcall/CONTROL/postinst
===================================================================
--- ipk/source.sh4/infos_fritzcall/CONTROL/postinst	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/CONTROL/postinst	(revision 12232)
@@ -0,0 +1,7 @@
+#!/bin/sh
+TMP=/tmp/.infos
+echo "successfully installed"
+echo "syncing disk"
+echo "please reboot your box so that the extension will be mounted..."
+sync
+exit 0
Index: ipk/source.sh4/infos_fritzcall/CONTROL/postrm
===================================================================
--- ipk/source.sh4/infos_fritzcall/CONTROL/postrm	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/CONTROL/postrm	(revision 12232)
@@ -0,0 +1,9 @@
+#!/bin/sh
+TMP=/tmp/.infos
+
+rm -rf /usr/lib/enigma2/python/Plugins/Extensions/FritzCall
+
+echo "successfully removed"
+echo "syncing disk"
+sync
+exit 0
Index: ipk/source.sh4/infos_fritzcall/CONTROL/preinst
===================================================================
--- ipk/source.sh4/infos_fritzcall/CONTROL/preinst	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/CONTROL/preinst	(revision 12232)
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+TMP=/tmp/.infos
+echo "syncing disk"
+sync
+
+model=`cat /etc/model`
+echo""
+echo "Checking your Boxtype...."
+echo "Some Plugins will not work correctly on your $model!"
+echo ""
+if [ "$model" = "" ]; then
+	echo "Sorry! This Plugin is not available for your $model because it will not work correctly!!!"
+	echo "Aborting installation..."
+	exit 1
+else
+	echo "Boxtype: $model OK"
+fi
+
+if [ `df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1 | wc -l` -eq 1 ]; then
+	SPACE=`df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1`
+	FREE=`expr $SPACE - 100`
+	SIZE=800
+	echo "checking freespace"
+	echo "package size $SIZE kb"
+	echo "freespace size $FREE kb"
+	if  [ "$FREE" -lt "$SIZE" ]; then
+		echo "sorry no freespace left on device"
+		exit 1
+	else
+		echo ok
+	fi
+fi
+
+buildgroup=`cat /etc/.buildgroup`
+echo "checking OS"	 
+if  [ `cat /etc/motd | grep $buildgroup | grep M | grep rev | wc -l` -eq 0 ]; then 	 	 
+	echo --------------------------- 	 	 
+	echo DONT USE this IPK Package!! 	 	 
+	echo --- 	 	 
+	echo Only for $buildgroup Image!! 	 	 
+	echo --------------------------- 	 	 
+	exit 1 	 	 
+fi
+echo "installing Callmonitor-Plugin Fritzcall .."
+sync
+exit 0
Index: ipk/source.sh4/infos_fritzcall/CONTROL/prerm
===================================================================
--- ipk/source.sh4/infos_fritzcall/CONTROL/prerm	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/CONTROL/prerm	(revision 12232)
@@ -0,0 +1,6 @@
+#!/bin/sh
+TMP=/tmp/.infos
+echo "syncing disk"
+sync
+echo "removing Callmonitor-Plugin Fritzcall from Root"
+exit 0
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/FritzLDIF.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/FritzLDIF.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/FritzLDIF.py	(revision 12232)
@@ -0,0 +1,199 @@
+# -*- coding: utf-8 -*-
+'''
+$Author: michael $
+$Revision: 505 $
+$Date: 2009-12-05 18:53:32 +0100 (Sa, 05 Dez 2009) $
+$Id: FritzLDIF.py 505 2009-12-05 17:53:32Z michael $
+'''
+#
+# needs python-ldap for ldif
+#
+
+import ldif, re
+try:
+	from . import _, debug, normalizePhoneNumber #@UnresolvedImport # pylint: disable-msg=F0401
+except ValueError:
+	def _(string): # pylint: disable-msg=C0103
+		return string
+	
+	def debug(text):
+		print text
+	
+	def normalizePhoneNumber(intNo):
+		found = re.match('^\+49(.*)', intNo)
+		if found:
+			intNo = '0' + found.group(1)
+		found = re.match('^\+(.*)', intNo)
+		if found:
+			intNo = '00' + found.group(1)
+		intNo = intNo.replace('(', '').replace(')', '').replace(' ', '').replace('/', '').replace('-', '')
+		found = re.match('^49(.*)', intNo) # this is most probably an error
+		if found:
+			intNo = '0' + found.group(1)
+		found = re.match('.*?([0-9]+)', intNo)
+		if found:
+			return found.group(1)
+		else:
+			return '0'
+
+def out(number, name):
+	print number + '#' + name
+
+class FindNumber(ldif.LDIFParser):
+	def __init__(self, number, inp, outFun):
+		ldif.LDIFParser.__init__(self, inp)
+		self.outFun = outFun
+		self.number = number
+		try:
+			self.parse()
+		except ValueError:
+			# this is to exit the parse loop
+			pass
+
+	def handle(self, dn, entry):
+		# debug("[FritzCallPhonebook] LDIF handle: " + dn)
+		found = re.match('.*cn=(.*),', str(dn))
+		if found:
+			name = found.group(1)
+		else:
+			return
+	
+		address = ""
+		addressB = ""
+		if entry.has_key('telephoneNumber') or (entry.has_key('homePhone') and self.number == normalizePhoneNumber(entry['homePhone'][0])) or (entry.has_key('mobile') and self.number == normalizePhoneNumber(entry['mobile'][0])):
+			# debug("[FritzCallPhonebook] LDIF get address")
+			if entry.has_key('telephoneNumber'):
+				no = normalizePhoneNumber(entry['telephoneNumber'][0])
+			else:
+				no = 0
+			if self.number == no or (entry.has_key('homePhone') and self.number == normalizePhoneNumber(entry['homePhone'][0])) or (entry.has_key('mobile') and self.number == normalizePhoneNumber(entry['mobile'][0])):
+				nameB = (name + ' (' + _('business') + ')') if name else ""
+				if entry.has_key('company'):
+					nameB = (nameB + ', ' + entry['company'][0]) if nameB else entry['company'][0]
+				if entry.has_key('l'):
+					addressB = entry['l'][0]
+					if entry.has_key('postalCode'):
+						addressB = entry['postalCode'][0] + ' ' + addressB
+					if entry.has_key('c'):
+						addressB = addressB + ', ' + entry['c'][0]
+					if entry.has_key('street'):
+						addressB = entry['street'][0] + ', ' + addressB
+					# debug("[FritzCallPhonebook] LDIF address: " + addressB)
+					if self.number == no:
+						result = nameB + ', ' + addressB.replace('\n', ', ').replace('\r', '').replace('#', '')
+						debug("[FritzCallPhonebook] LDIF result: " + result)
+						self.outFun(no, result)
+						self._input_file.close()
+						return
+				else:
+					if self.number == no:
+						result = nameB.replace('\n', ', ').replace('\r', '').replace('#', '')
+						debug("[FritzCallPhonebook] LDIF result: " + result)
+						self.outFun(no, result)
+						self._input_file.close()
+						return
+		for i in ['homePhone', 'mobile']:
+			if entry.has_key(i):
+				no = normalizePhoneNumber(entry[i][0])
+				if self.number == no:
+					if i == 'mobile':
+						name = name + ' (' + _('mobile') + ')'
+					else:
+						name = name + ' (' + _('home') + ')'
+					if entry.has_key('mozillaHomeLocalityName'):
+						address = entry['mozillaHomeLocalityName'][0]
+						if entry.has_key('mozillaHomePostalCode'):
+							address = entry['mozillaHomePostalCode'][0] + ' ' + address
+						if entry.has_key('mozillaHomeCountryName'):
+							address = address + ', ' + entry['mozillaHomeCountryName'][0]
+							debug("[FritzCallPhonebook] LDIF home address: " + addressB)
+						result = name + ', ' + address.replace('\n', ', ').replace('\r', '').replace('#', '')
+						debug("[FritzCallPhonebook] LDIF result: " + result)
+						self.outFun(no, result)
+						self._input_file.close()
+						return
+					else:
+						if addressB:
+							name = name + ', ' + addressB.replace('\n', ', ').replace('\r', '').replace('#', '')
+						debug("[FritzCallPhonebook] LDIF result: " + name)
+						self.outFun(no, name)
+						self._input_file.close()
+						return
+
+class ReadNumbers(ldif.LDIFParser):
+	def __init__(self, inPut, outFun):
+		ldif.LDIFParser.__init__(self, inPut)
+		self.outFun = outFun
+		try:
+			self.parse()
+		except ValueError:
+			#
+			# this is to exit the parse loop:
+			# we close the input file as soon as we have a result...
+			#
+			pass
+
+	def handle(self, dn, entry):
+		# debug("[FritzCallPhonebook] LDIF handle: " + dn)
+		found = re.match('.*cn=(.*),', str(dn))
+		if found:
+			name = found.group(1)
+		else:
+			return
+	
+		address = ""
+		addressB = ""
+		if entry.has_key('telephoneNumber') or entry.has_key('homePhone') or entry.has_key('mobile'):
+			# debug("[FritzCallPhonebook] LDIF get address")
+			nameB = (name + ' (' + _('business') + ')') if name else ""
+			if entry.has_key('company'):
+				nameB = (nameB + ', ' + entry['company'][0]) if nameB else entry['company'][0]
+			if entry.has_key('l'):
+				addressB = entry['l'][0]
+				if entry.has_key('postalCode'):
+					addressB = entry['postalCode'][0] + ' ' + addressB
+				if entry.has_key('c'):
+					addressB = addressB + ', ' + entry['c'][0]
+				if entry.has_key('street'):
+					addressB = entry['street'][0] + ', ' + addressB
+				# debug("[FritzCallPhonebook] LDIF address: " + addressB)
+				if entry.has_key('telephoneNumber'):
+					no = normalizePhoneNumber(entry['telephoneNumber'][0])
+					result = nameB + ', ' + addressB.replace('\n', ', ').replace('\r', '').replace('#', '')
+					self.outFun(no, result)
+			else:
+				if entry.has_key('telephoneNumber'):
+					no = normalizePhoneNumber(entry['telephoneNumber'][0])
+					result = nameB.replace('\n', ', ').replace('\r', '').replace('#', '')
+					self.outFun(no, result)
+		for i in ['homePhone', 'mobile']:
+			if entry.has_key(i):
+				no = normalizePhoneNumber(entry[i][0])
+				if i == 'mobile':
+					nameHM = name + ' (' + _('mobile') + ')'
+				else:
+					nameHM = name + ' (' + _('home') + ')'
+				if entry.has_key('mozillaHomeLocalityName'):
+					address = entry['mozillaHomeLocalityName'][0]
+					if entry.has_key('mozillaHomePostalCode'):
+						address = entry['mozillaHomePostalCode'][0] + ' ' + address
+					if entry.has_key('mozillaHomeCountryName'):
+						address = address + ', ' + entry['mozillaHomeCountryName'][0]
+					result = nameHM + ', ' + address.replace('\n', ', ').replace('\r', '').replace('#', '')
+					self.outFun(no, result)
+				else:
+					if addressB:
+						nameHM = nameHM + ', ' + addressB.replace('\n', ', ').replace('\r', '').replace('#', '')
+					self.outFun(no, nameHM)
+
+def lookedUp(number, name):
+	print number + ' ' + name
+
+if __name__ == '__main__':
+	import os, sys
+	cwd = os.path.dirname(sys.argv[0])
+	if (len(sys.argv) == 1):
+		ReadNumbers(open("Kontakte.ldif"), out)
+	elif (len(sys.argv) == 2):
+		# nrzuname.py Nummer
+		FindNumber(sys.argv[1], open("Kontakte.ldif"), lookedUp)
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/FritzOutlookCSV.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/FritzOutlookCSV.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/FritzOutlookCSV.py	(revision 12232)
@@ -0,0 +1,231 @@
+# -*- coding: utf-8 -*-
+'''
+$Author: michael $
+$Revision: 505 $
+$Date: 2009-12-05 18:53:32 +0100 (Sa, 05 Dez 2009) $
+$Id: FritzOutlookCSV.py 505 2009-12-05 17:53:32Z michael $
+'''
+#
+# needs python-textutils for csv
+#
+try:
+	from . import _, debug, normalizePhoneNumber #@UnresolvedImport # pylint: disable-msg=W0613,F0401
+except ValueError:
+	def _(string): # pylint: disable-msg=C0103
+		return string
+	
+	def debug(text):
+		print text
+	
+	import re
+	def normalizePhoneNumber(intNo):
+		found = re.match('^\+49(.*)', intNo)
+		if found:
+			intNo = '0' + found.group(1)
+		found = re.match('^\+(.*)', intNo)
+		if found:
+			intNo = '00' + found.group(1)
+		intNo = intNo.replace('(', '').replace(')', '').replace(' ', '').replace('/', '').replace('-', '')
+		found = re.match('^49(.*)', intNo) # this is most probably an error
+		if found:
+			intNo = '0' + found.group(1)
+		found = re.match('.*?([0-9]+)', intNo)
+		if found:
+			return found.group(1)
+		else:
+			return '0'
+
+def out(number, name):
+	print number + '#' + name
+
+import csv
+#
+# 31: Telefon geschäftlich
+# 37: Telefon privat
+# 40: Mobiltelefon
+# 1: Vorname
+# 3: Nachname
+# 5: Firma
+# 8: Straße geschäftlich
+# 11: Ort geschäftlich
+# 13: Postleitzahl geschäftlich
+# 14: Land/Region geschäftlich
+# 15: Straße privat
+# 18: Ort privat
+# 20: Postleitzahl privat
+# 21: Land/Region privat
+#
+
+def findNumber(number, filename):
+	fileD = open(filename)
+	if not fileD:
+		return
+	addrs = csv.reader(fileD, delimiter=',', quotechar='"')
+	addrs.next() # skip header
+	for row in addrs:
+		row = map(lambda w: w.decode('cp1252').encode('utf-8'), row)
+		name = u""
+		nameB = u""
+		address = u""
+		addressB = u""
+		try: # this is just to catch wrong lines
+			if row[31] or (row[37] and number == normalizePhoneNumber(row[37])) or (row[40] and number == normalizePhoneNumber(row[40])): # Telefon geschäftlich
+				no = normalizePhoneNumber(row[31])
+				# debug("[FritzOutlookCSV] findNumber compare (business) %s with %s for %s" %(no,number,name))
+				if no == number or (row[37] and number == normalizePhoneNumber(row[37])) or (row[40] and number == normalizePhoneNumber(row[40])):
+					if row[3]:
+						name = row[3] # Nachname
+					if row[1]:
+						if name:
+							name = row[1] + ' ' + name # Vorname
+						else:
+							name = row[1]
+					if row[5]: # Firma
+						if name:
+							nameB = name
+							addressB = row[5]
+						else:
+							nameB = row[5]
+					else:
+						nameB = name
+					if not nameB:
+						continue
+					nameB = (nameB + ' (' + _('work') + ')')
+					if row[11]: # Ort geschäftlich
+						addressB = row[11]
+						if row[13]:
+							addressB =  row[13] + ' ' + addressB# Postleitzahl geschäftlich
+						if row[14]:
+							addressB = addressB + ', ' + row[14] # Land/Region geschäftlich
+						if row[8]:
+							addressB = row[8] + ', ' + addressB# Stra￟e gesch￤ftlich
+						nameB = (nameB + ', ' + addressB).replace('\n', ', ').replace('\r', '').replace('#', '')
+	
+					if no == number:
+						debug("[FritzCallPhonebook] findNumber result: " + no + ' ' + nameB)
+						fileD.close()
+						return nameB
+			for i in [37, 40]:
+				if row[i]:
+					number = normalizePhoneNumber(row[i])
+					# debug("[FritzOutlookCSV] findNumber compare (home,mobile) %s with %s for %s" %(number,number,name))
+					if number == number:
+						if row[3]:
+							name = row[3] # Nachname
+						if row[1]:
+							if name:
+								name = row[1] + ' ' + name # Vorname
+							else:
+								name = row[1]
+						if i == 40: # Mobiltelefon
+							nameHM = name + ' (' + _('mobile') + ')'
+						else:
+							nameHM = name + ' (' + _('home') + ')'
+						if row[18]: # Ort privat
+							address = row[18]
+							if row[20]:
+								address = row[20] + ' ' + address # Postleitzahl privat
+							if row[21]:
+								address = address + ', ' + row[21] # Land/Region privat
+							if row[15]:
+								address = row[15] + ', ' + address # Straße privat
+						if not address:
+							address = addressB
+						if address:
+							nameHM = nameHM + ', ' + address
+						nameHM = nameHM.replace('\n', ', ').replace('\r', '').replace('#', '')
+						fileD.close()
+						debug("[FritzCallPhonebook] findNumber result: " + number + ' ' + nameHM)
+						return nameHM
+		except IndexError:
+			continue
+	fileD.close()
+	return ""
+	
+def readNumbers(filename, outFun):
+	fileD = open(filename, "rb")
+	if not fileD:
+		return
+	addrs = csv.reader(fileD, delimiter=',', quotechar='"')
+	addrs.next() # skip header
+	for row in addrs:
+		row = map(lambda w: w.decode('cp1252'), row)
+		name = u""
+		nameB = u""
+		address = u""
+		addressB = u""
+		try:
+			if row[31] or row[37] or row[40]:
+				if row[3]:
+					name = row[3] # Nachname
+				if row[1]:
+					if name:
+						name = row[1] + ' ' + name # Vorname
+					else:
+						name = row[1]
+				if row[5]: # Firma
+					if name:
+						nameB = name
+						addressB = row[5]
+					else:
+						nameB = row[5]
+				else:
+					nameB = name
+				if not nameB:
+					continue
+				nameB = (nameB + ' (' + _('work') + ')')
+				if row[11]: # Ort gesch￤ftlich
+					addressB = row[11]
+					if row[13]:
+						addressB =  row[13] + ' ' + addressB# Postleitzahl gesch￤ftlich
+					if row[14]:
+						addressB = addressB + ', ' + row[14] # Land/Region gesch￤ftlich
+					if row[8]:
+						addressB = row[8] + ', ' + addressB# Stra?e gesch?ftlich
+					nameB = (nameB + ', ' + addressB).replace('\n', ', ').replace('\r', '').replace('#', '')
+				if row[31]:
+					number = normalizePhoneNumber(row[31])
+					outFun(number, nameB)
+
+			for i in [37, 40]:
+				if row[i]:
+					number = normalizePhoneNumber(row[i])
+					nameHM = nameB
+					if row[3]:
+						nameHM = row[3] # Nachname
+					if row[1]:
+						if nameHM:
+							nameHM = row[1] + ' ' + nameHM # Vorname
+						else:
+							nameHM = row[1]
+					if i == 40: # Mobiltelefon
+						nameHM = nameHM + ' (' + _('mobile') + ')'
+					else:
+						nameHM = nameHM + ' (' + _('home') + ')'
+					if row[18]: # Ort privat
+						address = row[18]
+						if row[20]:
+							address = row[20] + ' ' + address # Postleitzahl privat
+						if row[21]:
+							address = address + ', ' + row[21] # Land/Region privat
+						if row[15]:
+							address = row[15] + ', ' + address # Stra￟e privat
+					if not address:
+						address = addressB
+					if address:
+						nameHM = nameHM + ', ' + address
+					nameHM = nameHM.replace('\n', ', ').replace('\r', '').replace('#', '')
+					outFun(number, nameHM)
+
+		except IndexError:
+			continue
+	fileD.close()
+
+if __name__ == '__main__':
+	import os, sys
+	cwd = os.path.dirname(sys.argv[0])
+	if (len(sys.argv) == 1):
+		readNumbers("Kontakte.csv", out)
+	elif (len(sys.argv) == 2):
+		# nrzuname.py Nummer
+		findNumber(sys.argv[1], "Kontakte.csv")
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/TagStrip.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/TagStrip.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/TagStrip.py	(revision 12232)
@@ -0,0 +1,71 @@
+# -*- coding: utf-8 -*-
+from re import sub
+
+# Entities to be converted
+entities = (
+	# ISO-8895-1 (most common)
+	("&#228;", u"ä"),
+	("&auml;", u"ä"),
+	("&#252;", u"ü"),
+	("&uuml;", u"ü"),
+	("&#246;", u"ö"),
+	("&ouml;", u"ö"),
+	("&#196;", u"Ä"),
+	("&Auml;", u"Ä"),
+	("&#220;", u"Ü"),
+	("&Uuml;", u"Ü"),
+	("&#214;", u"Ö"),
+	("&Ouml;", u"Ö"),
+	("&#223;", u"ß"),
+	("&szlig;", u"ß"),
+
+	# Rarely used entities
+	("&#8230;", u"..."),
+	("&#8211;", u"-"),
+	("&#160;", u" "),
+	("&#34;", u"\""),
+	("&#38;", u"&"),
+	("&#39;", u"'"),
+	("&#60;", u"<"),
+	("&#62;", u">"),
+
+	# Common entities
+	("&lt;", u"<"),
+	("&gt;", u">"),
+	("&nbsp;", u" "),
+	("&amp;", u"&"),
+	("&quot;", u"\""),
+	("&apos;", u"'"),
+)
+
+def strip_readable(html):
+	# Newlines are rendered as whitespace in html
+	html = html.replace('\n', ' ')
+
+	# Multiple whitespaces are rendered as a single one
+	html = sub('\s\s+', ' ', html)
+
+	# Replace <br> by newlines
+	html = sub('<br(\s+/)?>', '\n', html)
+
+	# Replace <p>, <ul>, <ol> and end of these tags by newline
+	html = sub('</?(p|ul|ol)(\s+.*?)?>', '\n', html)
+
+	# Replace <li> by - and </li> by newline
+	html = sub('<li(\s+.*?)?>', '-', html)
+	html = html.replace('</li>', '\n')
+
+	# And 'normal' stripping
+	return strip(html)
+
+def strip(html):
+	# Strip enclosed tags
+	html = sub('<(.*?)>', '', html)
+
+	# Convert html entities
+	for escaped, unescaped in entities:
+		html = html.replace(escaped, unescaped)
+
+	# Return result with leading/trailing whitespaces removed
+	return html.strip()
+
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/__init__.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/__init__.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/__init__.py	(revision 12232)
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+'''
+general functions for FritzCall plugin
+'''
+from Components.config import config #@UnresolvedImport
+from Components.Language import language
+from Tools.Directories import resolveFilename, SCOPE_LANGUAGE, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE #@UnresolvedImport
+import gettext, os
+from enigma import eBackgroundFileEraser
+
+lang = language.getLanguage()
+os.environ["LANGUAGE"] = lang[:2]
+gettext.bindtextdomain("enigma2", resolveFilename(SCOPE_LANGUAGE))
+gettext.textdomain("enigma2")
+gettext.bindtextdomain("FritzCall", "%s%s" % (resolveFilename(SCOPE_PLUGINS), "Extensions/FritzCall/locale/"))
+
+def _(txt): # pylint: disable-msg=C0103
+	td = gettext.dgettext("FritzCall", txt)
+	if td == txt:
+		td = gettext.gettext(txt)
+	return td
+
+def initDebug():
+	try:
+		# os.remove("/tmp/FritzDebug.log")
+		eBackgroundFileEraser.getInstance().erase("/tmp/FritzDebug.log")
+	except OSError:
+		pass
+
+from time import localtime
+def debug(message):
+	if config.plugins.FritzCall.debug.value:
+		try:
+			# ltim = localtime()
+			# headerstr = u"%04d%02d%02d %02d:%02d " %(ltim[0],ltim[1],ltim[2],ltim[3],ltim[4])
+			deb = open("/tmp/FritzDebug.log", "aw")
+			# deb.write(headerstr + message.decode('utf-8') + u"\n")
+			deb.write(message + "\n")
+			deb.close()
+		except Exception, e:
+			debug("%s (retried debug: %s)" % (repr(message), str(e)))
+		
+
+import re
+def normalizePhoneNumber(intNo):
+	
+	found = re.match('^\+' + config.plugins.FritzCall.country.value.replace('00','') + '(.*)', intNo)
+	if found:
+		intNo = '0' + found.group(1)
+	found = re.match('^\+(.*)', intNo)
+	if found:
+		intNo = '00' + found.group(1)
+	intNo = intNo.replace('(', '').replace(')', '').replace(' ', '').replace('/', '').replace('-', '')
+	found = re.match('^49(.*)', intNo) # this is most probably an error
+	if found:
+		intNo = '0' + found.group(1)
+	found = re.match('.*?([0-9]+)', intNo)
+	if found:
+		return found.group(1)
+	else:
+		return '0'
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/avon.dat
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/avon.dat	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/avon.dat	(revision 12232)
@@ -0,0 +1,9924 @@
+# Sie können Änderungen an dieser Datei selbst 
+# vornehmen. Alle Einträge sind von der Form:
+#
+# +{Ländercode}-{Ortsvorwahl ohne führende 0}:Ortsname
+#
+# bzw. für die Ländereinträge selbst:
+#
+# +{Ländercode}:Landesname
+#
+#
+# Leere Zeilen und Kommentarzeilen wie diese 
+# werden ignoriert. Es wird jeweils die
+# längste passende Vorwahl für eine Nummer
+# gesucht.
+
++49:[DE]Deutschland
+
+# länderspezifische ortsunabhängige Sondernummern
+#################################################
+
++49*110:Notruf
++49*112:Notruf
++49*118:Auskünfte
+
+
+# länderspezifische Sondernummern
+#################################
+
++49/1141:Weckdienst
++49/1191:Zeitansage
++49/130:Gebührenfrei
++49/137:Televotumdienst
++49/138:Teledialog
++49/164:Cityruf (Ton)
++49/165:Funkruf Quix
++49/166:Funkruf Telmi
++49/168:Scall/Cityruf
++49/169:Cityruf
++49/169-1:Cityruf (Text)
++49/169-51:Cityruf Service
++49/180:Service
++49/180-1:Service (Ortstarif)
++49/180-2:Service (6 Ct/Anruf)
++49/180-3:Service (9 Ct/Min)
++49/180-4:Service (24 Ct/Anruf)
++49/180-5:Service (12 Ct/Min)
++49/181:VPN-Netze
++49/190:PremiumRate (Preis lt. Ansage)
++49/190-1:PremiumRate (0,618 /Min)
++49/190-2:PremiumRate (0,618 /Min)
++49/190-3:PremiumRate (0,618 /Min)
++49/190-4:PremiumRate (0,433 /Min)
++49/190-5:PremiumRate (0,618 /Min)
++49/190-6:PremiumRate (0,433 /Min)
++49/190-7:PremiumRate (1,237 /Min)
++49/190-8:PremiumRate (1,855 /Min)
++49/190-9:PremiumRate (1,237 /Min)
++49/191:Online-Knoten
++49/192:Online-Knoten
++49/193:Online-Knoten
++49/194:Online-Knoten
++49/800:Gebührenfrei
++49/900:PremiumRate
++800:Gebührenfrei
+
+# Vorwahlen Inland
+##################
+
++49-700:Persönliche Rufnummer
++49-150:QUAM
++49-151:D1-Netz
++49-152:D2-Netz
++49-156:MobilCom
++49-157:e-Plus Netz
++49-159:o2-Netz
++49-160:D1-Netz
++49-161:C-Netz
++49-162:D2-Netz
++49-163:e-Plus Netz
++49-170:D1-Netz
++49-171:D1-Netz
++49-172:D2-Netz
++49-173:D2-Netz
++49-174:D2-Netz
++49-175:D1-Netz
++49-176:o2-Netz
++49-177:e-Plus Netz
++49-178:e-Plus Netz
++49-179:o2-Netz
+
++49-201:Essen
++49-202:Wuppertal
++49-203:Duisburg
++49-2041:Bottrop
++49-2043:Gladbeck Westf
++49-2045:Bottrop-Kirchhellen
++49-2051:Velbert
++49-2052:Velbert-Langenberg
++49-2053:Velbert-Neviges
++49-2054:Essen-Kettwig
++49-2056:Heiligenhaus
++49-2058:Wülfrath
++49-2064:Dinslaken
++49-2065:Duisburg-Rheinhausen
++49-2066:Duisburg-Homberg
++49-208:Oberhausen Rheinl
++49-209:Gelsenkirchen
++49-2102:Ratingen
++49-2103:Hilden
++49-2104:Mettmann
++49-211:Düsseldorf
++49-212:Solingen
++49-212-0:Solingen
++49-212-1:Solingen
++49-212-2:Solingen
++49-212-3:Solingen
++49-212-4:Solingen
++49-212-5:Solingen
++49-212-6:Solingen
++49-212-7:Solingen
++49-212-8:Solingen
++49-212-9:Haan Rheinl
++49-2131:Neuss
++49-2132:Meerbusch-Büderich
++49-2133:Dormagen
++49-2137:Neuss-Norf
++49-214:Leverkusen
++49-2150:Meerbusch-Lank
++49-2151:Krefeld
++49-2152:Kempen
++49-2153:Nettetal-Lobberich
++49-2154:Willich
++49-2156:Willich-Anrath
++49-2157:Nettetal-Kaldenkirchen
++49-2158:Grefrath b Krefeld
++49-2159:Meerbusch-Osterath
++49-2161:Mönchengladbach
++49-2162:Viersen
++49-2163:Schwalmtal Niederrhein
++49-2164:Jüchen-Otzenrath
++49-2165:Jüchen
++49-2166:Mönchengladbach-Rheydt
++49-2171:Leverkusen-Opladen
++49-2173:Langenfeld Rheinl
++49-2174:Burscheid Rheinl
++49-2175:Leichlingen
++49-2181:Grevenbroich
++49-2182:Grevenbroich-Kapellen
++49-2183:Rommerskirchen
++49-2191:Remscheid
++49-2192:Hückeswagen
++49-2193:Dabringhausen
++49-2195:Radevormwald
++49-2196:Wermelskirchen
++49-2202:Bergisch Gladbach
++49-2203:Köln-Porz
++49-2204:Bensberg
++49-2205:Rösrath
++49-2206:Overath
++49-2207:Kürten-Dürscheid
++49-2208:Niederkassel
++49-221:Köln
++49-2222:Bornheim Rheinl
++49-2223:Königswinter
++49-2224:Bad Honnef
++49-2225:Meckenheim Rheinl
++49-2226:Rheinbach
++49-2227:Bornheim-Merten
++49-2228:Remagen-Rolandseck
++49-2232:Brühl Rheinl
++49-2233:Hürth Rheinl
++49-2234:Frechen
++49-2235:Erftstadt
++49-2236:Wesseling Rheinl
++49-2237:Kerpen Rheinl
++49-2238:Pulheim
++49-2241:Siegburg
++49-2242:Hennef Sieg
++49-2243:Eitorf
++49-2244:Königswinter-Oberpleis
++49-2245:Much
++49-2246:Lohmar
++49-2247:Neunkirchen-Seelscheid
++49-2248:Hennef-Uckerath
++49-2251:Euskirchen
++49-2252:Zülpich
++49-2253:Bad Münstereifel
++49-2254:Weilerswist
++49-2255:Euskirchen-Flamersheim
++49-2256:Mechernich-Satzvey
++49-2257:Reckerscheid
++49-2261:Gummersbach
++49-2262:Wiehl
++49-2263:Engelskirchen
++49-2264:Marienheide
++49-2265:Reichshof-Eckenhagen
++49-2266:Lindlar
++49-2267:Wipperfürth
++49-2268:Kürten
++49-2269:Kierspe-Rönsahl
++49-2271:Bergheim Erft
++49-2272:Bedburg Erft
++49-2273:Kerpen-Horrem
++49-2274:Elsdorf Rheinl
++49-2275:Kerpen-Buir
++49-228:Bonn
++49-2291:Waldbröl
++49-2292:Windeck Sieg
++49-2293:Nümbrecht
++49-2294:Morsbach Sieg
++49-2295:Ruppichteroth
++49-2296:Reichshof-Brüchermühle
++49-2297:Wildbergerhütte
++49-2301:Holzwickede
++49-2302:Witten
++49-2303:Unna
++49-2304:Schwerte
++49-2305:Castrop-Rauxel
++49-2306:Lünen
++49-2307:Kamen
++49-2308:Unna-Hemmerde
++49-2309:Waltrop
++49-231:Dortmund
++49-2323:Herne
++49-2324:Hattingen Ruhr
++49-2325:Wanne-Eickel
++49-2327:Bochum-Wattenscheid
++49-2330:Herdecke
++49-2331:Hagen
++49-2332:Gevelsberg
++49-2333:Ennepetal
++49-2334:Hagen-Hohenlimburg
++49-2335:Wetter Ruhr
++49-2336:Schwelm
++49-2337:Hagen-Dahl
++49-2338:Breckerfeld
++49-2339:Sprockhövel
++49-234:Bochum
++49-2351:Lüdenscheid
++49-2352:Altena Westf
++49-2353:Halver
++49-2354:Meinerzhagen
++49-2355:Schalksmühle
++49-2357:Herscheid Westf
++49-2358:Meinerzhagen-Valbert
++49-2359:Kierspe
++49-2360:Haltern-Lippramsdorf
++49-2361:Recklinghausen
++49-2362:Dorsten
++49-2363:Datteln
++49-2364:Haltern Westf
++49-2365:Marl
++49-2366:Herten Westf
++49-2367:Henrichenburg
++49-2368:Oer-Erkenschwick
++49-2369:Dorsten-Wulfen
++49-2371:Iserlohn
++49-2372:Hemer
++49-2373:Menden Sauerl
++49-2374:Iserlohn-Letmathe
++49-2375:Balve
++49-2377:Wickede Ruhr
++49-2378:Fröndenberg-Langschede
++49-2379:Menden-Asbeck
++49-2381:Hamm Westf
++49-2382:Ahlen Westf
++49-2383:Bönen
++49-2384:Welver
++49-2385:Hamm-Rhynern
++49-2387:Drensteinfurt-Walstedde
++49-2388:Hamm-Uentrop
++49-2389:Werne
++49-2391:Plettenberg
++49-2392:Werdohl
++49-2393:Sundern-Allendorf
++49-2394:Neuenrade-Affeln
++49-2395:Finnentrop-Rönkhausen
++49-2401:Baesweiler
++49-2402:Stolberg Rheinl
++49-2403:Eschweiler Rheinl
++49-2404:Alsdorf Rheinl
++49-2405:Würselen
++49-2406:Herzogenrath
++49-2407:Herzogenrath-Kohlscheid
++49-2408:Aachen-Kornelimünster
++49-2409:Stolberg-Gressenich
++49-241:Aachen
++49-2421:Düren
++49-2422:Kreuzau
++49-2423:Langerwehe
++49-2424:Vettweiß
++49-2425:Nideggen-Embken
++49-2426:Nörvenich
++49-2427:Nideggen
++49-2428:Niederzier
++49-2429:Hürtgenwald
++49-2431:Erkelenz
++49-2432:Wassenberg
++49-2433:Hückelhoven
++49-2434:Wegberg
++49-2435:Erkelenz-Lövenich
++49-2436:Wegberg-Rödgen
++49-2440:Nettersheim-Tondorf
++49-2441:Kall
++49-2443:Mechernich
++49-2444:Schleiden-Gemünd
++49-2445:Schleiden Eifel
++49-2446:Heimbach Eifel
++49-2447:Dahlem b Kall
++49-2448:Hellenthal-Rescheid
++49-2449:Blankenheim Ahr
++49-2451:Geilenkirchen
++49-2452:Heinsberg Rheinl
++49-2453:Heinsberg-Randerath
++49-2454:Gangelt
++49-2455:Waldfeucht
++49-2456:Selfkant
++49-2461:Jülich
++49-2462:Linnich
++49-2463:Titz
++49-2464:Aldenhoven b Jülich
++49-2465:Inden
++49-2471:Roetgen Eifel
++49-2472:Monschau
++49-2473:Simmerath
++49-2474:Nideggen-Schmidt
++49-2482:Hellenthal
++49-2484:Mechernich-Eiserfey
++49-2485:Schleiden-Dreiborn
++49-2486:Nettersheim
++49-2501:Münster-Hiltrup
++49-2502:Nottuln
++49-2504:Telgte
++49-2505:Altenberge Westf
++49-2506:Münster-Wolbeck
++49-2507:Havixbeck
++49-2508:Drensteinfurt
++49-2509:Nottuln-Appelhülsen
++49-251:Münster
++49-2520:Wadersloh-Diestedde
++49-2521:Beckum
++49-2522:Oelde
++49-2523:Wadersloh
++49-2524:Ennigerloh
++49-2525:Beckum-Neubeckum
++49-2526:Sendenhorst
++49-2527:Lippetal-Lippborg
++49-2528:Ennigerloh-Enniger
++49-2529:Oelde-Stromberg
++49-2532:Ostbevern
++49-2533:Münster-Nienberge
++49-2534:Münster-Roxel
++49-2535:Sendenhorst-Albersloh
++49-2536:Münster-Albachten
++49-2538:Drensteinfurt-Rinkerode
++49-2541:Coesfeld
++49-2542:Gescher
++49-2543:Billerbeck Westf
++49-2545:Rosendahl-Darfeld
++49-2546:Coesfeld-Lette
++49-2547:Rosendahl-Osterwick
++49-2548:Dülmen-Rorup
++49-2551:Steinfurt-Burgsteinfurt
++49-2552:Steinfurt-Borghorst
++49-2553:Ochtrup
++49-2554:Laer Kr Steinfurt
++49-2555:Schöppingen
++49-2556:Metelen
++49-2557:Wettringen Kr Steinfurt
++49-2558:Horstmar
++49-2561:Ahaus
++49-2562:Gronau Westf
++49-2563:Stadtlohn
++49-2564:Vreden
++49-2565:Gronau-Epe
++49-2566:Legden
++49-2567:Ahaus-Alstätte
++49-2568:Heek
++49-2571:Greven Westf
++49-2572:Emsdetten
++49-2573:Nordwalde
++49-2574:Saerbeck
++49-2575:Greven-Reckenfeld
++49-2581:Warendorf
++49-2582:Everswinkel
++49-2583:Sassenberg
++49-2584:Warendorf-Milte
++49-2585:Warendorf-Hoetmar
++49-2586:Beelen
++49-2587:Ennigerloh-Westkirchen
++49-2588:Harsewinkel-Greffen
++49-2590:Dülmen-Buldern
++49-2591:Lüdinghausen
++49-2592:Selm
++49-2593:Ascheberg Westf
++49-2594:Dülmen
++49-2595:Olfen
++49-2596:Nordkirchen
++49-2597:Senden Westf
++49-2598:Senden-Ottmarsbocholt
++49-2599:Ascheberg-Herbern
++49-2601:Nauort
++49-2602:Montabaur
++49-2603:Bad Ems
++49-2604:Nassau Lahn
++49-2605:Löf
++49-2606:Winningen
++49-2607:Kobern-Gondorf
++49-2608:Welschneudorf
++49-261:Koblenz
++49-2620:Neuhäusel Westerw
++49-2621:Lahnstein
++49-2622:Bendorf Rhein
++49-2623:Ransbach-Baumbach
++49-2624:Höhr-Grenzhausen
++49-2625:Ochtendung
++49-2626:Selters Westerw
++49-2627:Braubach
++49-2628:Rhens
++49-2630:Mülheim-Kärlich
++49-2631:Neuwied
++49-2632:Andernach
++49-2633:Brohl-Lützing
++49-2634:Rengsdorf
++49-2635:Rheinbrohl
++49-2636:Burgbrohl
++49-2637:Weißenthurm
++49-2638:Waldbreitbach
++49-2639:Anhausen Kr Neuwied
++49-2641:Bad Neuenahr-Ahrweiler
++49-2642:Remagen
++49-2643:Altenahr
++49-2644:Linz a Rhein
++49-2645:Vettelschoß
++49-2646:Königsfeld Eifel
++49-2647:Kesseling
++49-2651:Mayen
++49-2652:Mendig
++49-2653:Kaisersesch
++49-2654:Polch
++49-2655:Weibern
++49-2656:Virneburg
++49-2657:Uersfeld
++49-2661:Bad Marienberg Westerw
++49-2662:Hachenburg
++49-2663:Westerburg Westerw
++49-2664:Rennerod
++49-2666:Freilingen Westerw
++49-2667:Stein-Neukirch
++49-2671:Cochem
++49-2672:Treis-Karden
++49-2673:Ellenz-Poltersdorf
++49-2674:Bad Bertrich
++49-2675:Ediger-Eller
++49-2676:Ulmen
++49-2677:Lutzerath
++49-2678:Büchel b Cochem
++49-2680:Mündersbach
++49-2681:Altenkirchen Westerw
++49-2682:Hamm Sieg
++49-2683:Asbach Westerw
++49-2684:Puderbach Westerw
++49-2685:Flammersfeld
++49-2686:Weyerbusch
++49-2687:Horhausen Westerw
++49-2688:Kroppach
++49-2689:Dierdorf
++49-2691:Adenau
++49-2692:Kelberg
++49-2693:Antweiler
++49-2694:Wershofen
++49-2695:Insul
++49-2696:Nohn Eifel
++49-2697:Blankenheim-Ahrhütte
++49-271:Siegen
++49-2721:Lennestadt
++49-2722:Attendorn
++49-2723:Kirchhundem
++49-2724:Finnentrop-Serkenrode
++49-2725:Lennestadt-Oedingen
++49-2732:Kreuztal
++49-2733:Hilchenbach
++49-2734:Freudenberg Westf
++49-2735:Neunkirchen Siegerl
++49-2736:Burbach Siegerl
++49-2737:Netphen-Deuz
++49-2738:Netphen
++49-2739:Wilnsdorf
++49-2741:Betzdorf
++49-2742:Wissen
++49-2743:Daaden
++49-2744:Herdorf
++49-2745:Brachbach Sieg
++49-2747:Molzhain
++49-2750:Diedenshausen
++49-2751:Bad Berleburg
++49-2752:Bad Laasphe
++49-2753:Erndtebrück
++49-2754:Bad Laasphe-Feudingen
++49-2755:Bad Berleburg-Schwarzenau
++49-2758:Bad Berleburg-Girkhausen
++49-2759:Bad Berleburg-Aue
++49-2761:Olpe Biggesee
++49-2762:Wenden Biggetal
++49-2763:Drolshagen-Bleche
++49-2764:Welschen Ennest
++49-2770:Eschenburg
++49-2771:Dillenburg
++49-2772:Herborn Hess
++49-2773:Haiger
++49-2774:Dietzhölztal
++49-2775:Driedorf
++49-2776:Bad Endbach-Hartenrod
++49-2777:Breitscheid Hess
++49-2778:Siegbach
++49-2779:Greifenstein-Beilstein
++49-2801:Xanten
++49-2802:Alpen
++49-2803:Wesel-Büderich
++49-2804:Xanten-Marienbaum
++49-281:Wesel
++49-2821:Kleve Niederrhein
++49-2822:Emmerich
++49-2823:Goch
++49-2824:Kalkar
++49-2825:Uedem
++49-2826:Kranenburg Niederrhein
++49-2827:Goch-Hassum
++49-2828:Emmerich-Elten
++49-2831:Geldern
++49-2832:Kevelaer
++49-2833:Kerken
++49-2834:Straelen
++49-2835:Issum
++49-2836:Wachtendonk
++49-2837:Weeze
++49-2838:Sonsbeck
++49-2839:Straelen-Herongen
++49-2841:Moers
++49-2842:Kamp-Lintfort
++49-2843:Rheinberg
++49-2844:Rheinberg-Orsoy
++49-2845:Neukirchen-Vluyn
++49-2850:Rees-Haldern
++49-2851:Rees
++49-2852:Hamminkeln
++49-2853:Schermbeck
++49-2855:Voerde Niederrhein
++49-2856:Hamminkeln-Brünen
++49-2857:Rees-Mehr
++49-2858:Hünxe
++49-2859:Wesel-Bislich
++49-2861:Borken Westf
++49-2862:Südlohn
++49-2863:Velen
++49-2864:Reken
++49-2865:Raesfeld
++49-2866:Dorsten-Rhade
++49-2867:Heiden Kr Borken
++49-2871:Bocholt
++49-2872:Rhede Westf
++49-2873:Isselburg-Werth
++49-2874:Isselburg
++49-2902:Warstein
++49-2903:Meschede-Freienohl
++49-2904:Bestwig
++49-2905:Bestwig-Ramsbeck
++49-291:Meschede
++49-2921:Soest
++49-2922:Werl
++49-2923:Lippetal-Herzfeld
++49-2924:Möhnesee
++49-2925:Warstein-Allagen
++49-2927:Bad Sassendorf
++49-2928:Soest-Ostönnen
++49-2931:Arnsberg
++49-2932:Neheim-Hüsten
++49-2933:Sundern Sauerl
++49-2934:Sundern-Altenhellefeld
++49-2935:Sundern-Hachen
++49-2937:Arnsberg-Oeventrop
++49-2938:Ense
++49-2941:Lippstadt
++49-2942:Geseke
++49-2943:Erwitte
++49-2944:Rietberg-Mastholte
++49-2945:Lippstadt-Benninghausen
++49-2947:Anröchte
++49-2948:Lippstadt-Rebbeke
++49-2951:Büren
++49-2952:Rüthen
++49-2953:Wünnenberg
++49-2954:Rüthen-Oestereiden
++49-2955:Büren-Wewelsburg
++49-2957:Wünnenberg-Haaren
++49-2958:Büren-Harth
++49-2961:Brilon
++49-2962:Olsberg
++49-2963:Brilon-Messinghausen
++49-2964:Brilon-Alme
++49-2971:Schmallenberg-Dorlar
++49-2972:Schmallenberg
++49-2973:Eslohe Sauerl
++49-2974:Schmallenberg-Fredeburg
++49-2975:Schmallenberg-Oberkirchen
++49-2977:Schmallenberg-Bödefeld
++49-2981:Winterberg Westf
++49-2982:Medebach
++49-2983:Winterberg-Siedlinghausen
++49-2984:Hallenberg
++49-2985:Winterberg-Niedersfeld
++49-2991:Marsberg-Bredelar
++49-2992:Marsberg
++49-2993:Marsberg-Canstein
++49-2994:Marsberg-Westheim
++49-30:Berlin
++49-31:Abfrage Netzübergangknoten
++49-3301:Oranienburg
++49-3302:Hennigsdorf
++49-3303:Birkenwerder
++49-3304:Velten
++49-33051:Nassenheide
++49-33052:Leegebruch
++49-33053:Zehlendorf
++49-33054:Liebenwalde
++49-33055:Kremmen
++49-33056:Mühlenbeck
++49-3306:Gransee
++49-3307:Zehdenick
++49-33080:Marienthal
++49-33081:Neuglobsow
++49-33082:Menz
++49-33083:Schulzendorf
++49-33084:Gutengermendorf
++49-33085:Seilershof
++49-33086:Grieben
++49-33087:Bredereiche
++49-33088:Falkenthal
++49-33089:Himmelpfort
++49-33093:Fürstenberg
++49-33094:Löwenberg
++49-331:Potsdam
++49-33200:Bergholz-Rehbrücke
++49-33201:Groß Glienicke
++49-33202:Töplitz
++49-33203:Kleinmachnow
++49-33204:Beelitz(Mark)
++49-33205:Michendorf
++49-33206:Fichtenwalde
++49-33207:Groß Kreutz
++49-33208:Fahrland
++49-33209:Caputh
++49-3321:Nauen
++49-3322:Falkensee
++49-33230:Börnicke
++49-33231:Pausin
++49-33232:Brieselang
++49-33233:Ketzin
++49-33234:Wustermark
++49-33235:Friesack
++49-33237:Paulinenaue
++49-33238:Senzke
++49-33239:Groß Behnitz
++49-3327:Werder(Havel)
++49-3328:Teltow
++49-3329:Stahnsdorf
++49-3331:Angermünde
++49-3332:Schwedt
++49-33331:Casekow
++49-33332:Gartz
++49-33333:Tantow
++49-33334:Greiffenberg
++49-33335:Pinnow
++49-33336:Passow
++49-33337:Altkünkendorf
++49-33338:Stolpe
++49-3334:Eberswalde-Finow
++49-3335:Finowfurt
++49-33361:Joachimsthal
++49-33362:Liepe
++49-33363:Altenhof
++49-33364:Groß Ziethen
++49-33365:Lüdersdorf
++49-33366:Chorin
++49-33367:Friedrichswalde
++49-33368:Hohensaaten
++49-33369:Oderberg
++49-3337:Biesenthal
++49-3338:Bernau
++49-33393:Groß Schönebeck
++49-33394:Blumberg
++49-33395:Zerpenschleuse
++49-33396:Klosterfelde
++49-33397:Wandlitz
++49-33398:Werneuchen
++49-3341:Strausberg
++49-3342:Neuenhagen
++49-33432:Müncheberg
++49-33433:Buckow
++49-33434:Herzfelde
++49-33435:Rehfelde
++49-33436:Prötzel
++49-33437:Reichenberg
++49-33438:Altlandsberg
++49-33439:Fredersdorf
++49-3344:Bad Freienwalde
++49-33451:Heckelberg
++49-33452:Neulewin
++49-33454:Wölsickendorf
++49-33456:Wriezen
++49-33457:Altreetz
++49-33458:Falkenberg(Mark)
++49-3346:Seelow
++49-33470:Lietzen
++49-33472:Golzow
++49-33473:Zechin
++49-33474:Neutrebbin
++49-33475:Letschin
++49-33476:Neuhardenberg
++49-33477:Trebnitz
++49-33478:Groß Neuendorf
++49-33479:Kietz
++49-335:Frankfurt(Oder)
++49-33601:Podelzig
++49-33602:Alt Zeschdorf
++49-33603:Falkenhagen
++49-33604:Lebus
++49-33605:Booßen
++49-33606:Müllrose
++49-33607:Briesen(Mark)
++49-33608:Jacobsdorf
++49-33609:Brieskow-Finkenheerd
++49-3361:Fürstenwalde(Spree)
++49-3362:Erkner
++49-33631:Bad Saarow-Pieskow
++49-33632:Hangelsberg
++49-33633:Spreenhagen
++49-33634:Berkenbrück
++49-33635:Arensdorf
++49-33636:Steinhöfel
++49-33637:Beerfelde
++49-33638:Rüdersdorf
++49-3364:Eisenhüttenstadt
++49-33652:Neuzelle
++49-33653:Ziltendorf
++49-33654:Fünfeichen
++49-33655:Grunow
++49-33656:Bahro
++49-33657:Steinsdorf
++49-3366:Beeskow
++49-33671:Lieberose
++49-33672:Pfaffendorf
++49-33673:Weichensdorf
++49-33674:Trebatsch
++49-33675:Tauche
++49-33676:Friedland
++49-33677:Glienicke
++49-33678:Storkow(Mark)
++49-33679:Wendisch Rietz
++49-33701:Großbeeren
++49-33702:Wünsdorf
++49-33703:Sperenberg
++49-33704:Baruth(Mark)
++49-33708:Rangsdorf
++49-3371:Luckenwalde
++49-3372:Jüterbog
++49-33731:Trebbin
++49-33732:Hennickendorf
++49-33733:Stülpe
++49-33734:Felgentreu
++49-33741:Niedergörsdorf
++49-33742:Oehna
++49-33743:Blönsdorf
++49-33744:Hohenseefeld
++49-33745:Petkus
++49-33746:Werbig
++49-33747:Marzahna
++49-33748:Treuenbrietzen
++49-3375:Königs Wusterhausen
++49-33760:Münchehofe
++49-33762:Zeuthen
++49-33763:Bestensee
++49-33764:Mittenwalde(Mark)
++49-33765:Märkisch-Buchholz
++49-33766:Teupitz
++49-33767:Friedersdorf
++49-33768:Prieros
++49-33769:Töpchin
++49-3377:Zossen
++49-3378:Ludwigsfelde
++49-3379:Mahlow
++49-3381:Brandenburg
++49-3382:Lehnin
++49-33830:Ziesar
++49-33831:Weseram
++49-33832:Rogäsen
++49-33833:Wollin
++49-33834:Pritzerbe
++49-33835:Golzow
++49-33836:Butzow
++49-33837:Brielow
++49-33838:Päwesin
++49-33839:Wusterwitz
++49-33841:Belzig
++49-33843:Niemegk
++49-33844:Brück
++49-33845:Borkheide
++49-33846:Dippmannsdorf
++49-33847:Görzke
++49-33848:Raben
++49-33849:Wiesenburg(Mark)
++49-3385:Rathenow
++49-3386:Premnitz
++49-33870:Zollchow
++49-33872:Hohennauen
++49-33873:Großwudicke
++49-33874:Stechow
++49-33875:Rhinow
++49-33876:Buschow
++49-33877:Nitzahn
++49-33878:Nennhausen
++49-3391:Neuruppin
++49-33920:Walsleben
++49-33921:Zechlinerhütte
++49-33922:Karwesee
++49-33923:Flecken Zechlin
++49-33924:Rägelin
++49-33925:Wustrau
++49-33926:Herzberg
++49-33927:Linum
++49-33928:Wildberg
++49-33929:Gühlen Glienicke
++49-33931:Rheinsberg
++49-33932:Fehrbellin
++49-33933:Lindow(Mark)
++49-3394:Wittstock(Dosse)
++49-3395:Pritzwalk
++49-33962:Heiligengrabe
++49-33963:Wulfersdorf
++49-33964:Fretzdorf
++49-33965:Herzsprung
++49-33966:Dranse
++49-33967:Freyenstein
++49-33968:Meyenburg(Prign)
++49-33969:Stepenitz
++49-33970:Neustadt(Dosse)
++49-33971:Kyritz
++49-33972:Breddin
++49-33973:Zernitz
++49-33974:Dessow
++49-33975:Dannenwalde
++49-33976:Wutike
++49-33977:Gumtow
++49-33978:Segeletz
++49-33979:Wusterhausen
++49-33981:Putlitz
++49-33982:Hoppenrade
++49-33983:Groß Pankow
++49-33984:Blumenthal
++49-33986:Falkenhagen
++49-33989:Sadenbeck
++49-340:Dessau
++49-341:Leipzig
++49-34202:Delitzsch
++49-34203:Zwenkau
++49-34204:Schkeuditz
++49-34205:Markranstädt
++49-34206:Rötha
++49-34207:Zwochau
++49-34208:Löbnitz
++49-3421:Torgau
++49-34221:Gneisenaustadt Schildau
++49-34222:Arzberg
++49-34223:Dommitzsch
++49-34224:Belgern
++49-3423:Eilenburg
++49-34241:Jesewitz
++49-34242:Hohenprießnitz
++49-34243:Bad Düben
++49-34244:Mockrehna
++49-3425:Wurzen
++49-34261:Kühren
++49-34262:Falkenhain
++49-34263:Großzschepa
++49-34291:Borsdorf
++49-34292:Brandis
++49-34293:Naunhof
++49-34294:Rackwitz
++49-34295:Krensitz
++49-34296:Groitzsch
++49-34297:Liebertwolkwitz
++49-34298:Taucha
++49-34299:Gaschwitz
++49-3431:Döbeln
++49-34321:Leisnig
++49-34322:Roßwein
++49-34324:Ostrau(Sachs)
++49-34325:Lüttewitz
++49-34327:Waldheim(Sachs)
++49-34328:Hartha
++49-3433:Borna
++49-34341:Geithain
++49-34342:Neukieritzsch
++49-34343:Regis-Breitingen
++49-34344:Kohren-Sahlis
++49-34345:Bad Lausick
++49-34346:Narsdorf
++49-34347:Oelzschau
++49-34348:Frohburg
++49-3435:Oschatz
++49-34361:Dahlen(Sachs)
++49-34362:Mügeln
++49-34363:Cavertitz
++49-34364:Wermsdorf
++49-3437:Grimma
++49-34381:Colditz
++49-34382:Nerchau
++49-34383:Trebsen
++49-34384:Großbothen
++49-34385:Mutzschen
++49-34386:Dürrweitzschen
++49-3441:Zeitz
++49-34422:Osterfeld
++49-34423:Heuckewalde
++49-34424:Reuden
++49-34425:Droyßig
++49-34426:Kayna
++49-3443:Weißenfels
++49-34441:Hohenmölsen
++49-34443:Teuchern
++49-34444:Lützen
++49-34445:Stößen
++49-34446:Großkorbetha
++49-3445:Naumburg
++49-34461:Nebra
++49-34462:Laucha(Unstrut)
++49-34463:Bad Kösen
++49-34464:Freyburg
++49-34465:Bad Bibra
++49-34466:Janisroda
++49-34467:Eckartsberga
++49-3447:Altenburg
++49-3448:Meuselwitz
++49-34491:Schmölln
++49-34492:Lucka
++49-34493:Gößnitz
++49-34494:Ehrenhain
++49-34495:Dobitschen
++49-34496:Nöbdenitz
++49-34497:Langenleuba-Niederhain
++49-34498:Rositz
++49-345:Halle
++49-34600:Ostrau
++49-34601:Teutschenthal
++49-34602:Landsberg
++49-34603:Nauendorf
++49-34604:Niemberg
++49-34605:Gröbers
++49-34606:Teicha
++49-34607:Wettin
++49-34609:Salzmünde
++49-3461:Merseburg
++49-3462:Bad Dürrenberg
++49-34632:Mücheln(Geiseltal)
++49-34633:Braunsbedra
++49-34635:Bad Lauchstädt
++49-34636:Schafstädt
++49-34637:Frankleben
++49-34638:Zöschen
++49-34639:Wallendorf
++49-3464:Sangerhausen
++49-34651:Roßla
++49-34652:Allstedt
++49-34653:Rottleberode
++49-34654:Stolberg(Harz)
++49-34656:Wallhausen
++49-34658:Hayn
++49-34659:Blankenheim
++49-3466:Artern
++49-34671:Bad Frankenhausen
++49-34672:Roßleben
++49-34673:Heldrungen
++49-34691:Könnern
++49-34692:Alsleben
++49-3471:Bernburg
++49-34721:Nienburg
++49-34722:Preußlitz
++49-3473:Aschersleben
++49-34741:Frose
++49-34742:Sylda
++49-34743:Ermsleben
++49-34745:Winningen
++49-34746:Giersleben
++49-3475:Lutherstadt Eisleben
++49-3476:Hettstedt
++49-34771:Querfurt
++49-34772:Helbra
++49-34773:Schwittersdorf
++49-34774:Röblingen a See
++49-34775:Wippra,kurort
++49-34776:Rothenschirmbach
++49-34779:Abberode
++49-34781:Greifenhagen
++49-34782:Mansfeld(Südharz)
++49-34783:Gerbstedt
++49-34785:Sandersleben
++49-34901:Roßlau
++49-34903:Coswig(Anh)
++49-34904:Oranienbaum
++49-34905:Wörlitz
++49-34906:Raguhn
++49-34907:Jeber-Bergfrieden
++49-34909:Aken
++49-3491:Wittenberg Lutherstadt
++49-34920:Kropstädt
++49-34921:Kemberg
++49-34922:Mühlanger
++49-34923:Cobbelsdorf
++49-34924:Zahna
++49-34925:Bad Schmiedeberg
++49-34926:Pretzsch
++49-34927:Globig
++49-34928:Seegrehna
++49-34929:Straach
++49-3493:Bitterfeld
++49-3494:Wolfen
++49-34953:Gräfenhainichen
++49-34954:Roitzsch
++49-34955:Gossa
++49-34956:Zörbig
++49-3496:Köthen(Anh)
++49-34973:Osternienburg
++49-34975:Görzig
++49-34976:Gröbzig
++49-34977:Quellendorf
++49-34978:Radegast
++49-34979:Wulfen
++49-3501:Pirna
++49-35020:Struppen
++49-35021:Königstein
++49-35022:Bad Schandau
++49-35023:Bad Gottleuba
++49-35024:Stadt Wehlen
++49-35025:Liebstadt
++49-35026:Dürrröhrsdorf
++49-35027:Weesenstein
++49-35028:Krippen
++49-35032:Langenhennersdorf
++49-35033:Rosenthal
++49-3504:Dippoldiswalde
++49-35052:Kipsdorf,kurort
++49-35053:Glashütte(Sachs)
++49-35054:Lauenstein
++49-35055:Höckendorf
++49-35056:Altenberg
++49-35057:Hermsdorf(Osterzgeb)
++49-35058:Pretzschendorf
++49-351:Dresden
++49-35200:Arnsdorf
++49-35201:Langebrück
++49-35202:Klingenberg
++49-35203:Tharandt
++49-35204:Wilsdruff
++49-35205:Ottendorf-Okrilla
++49-35206:Kreischa
++49-35207:Moritzburg
++49-35208:Radeburg
++49-35209:Mohorn
++49-3521:Meißen
++49-3522:Großenhain
++49-3523:Coswig
++49-35240:Tauscha
++49-35241:Lommatzsch
++49-35242:Nossen
++49-35243:Weinböhla
++49-35244:Krögis
++49-35245:Burkhardswalde
++49-35246:Ziegenhain
++49-35247:Zehren
++49-35248:Schönfeld
++49-35249:Baßlitz
++49-3525:Riesa
++49-35263:Gröditz
++49-35264:Strehla
++49-35265:Glaubitz
++49-35266:Heyda
++49-35267:Diesbar-Seußlitz
++49-35268:Stauchitz
++49-3528:Radeberg
++49-3529:Heidenau
++49-3531:Finsterwalde
++49-35322:Doberlug-Kirchhain
++49-35323:Sonnewalde
++49-35324:Crinitz
++49-35325:Rückersdorf
++49-35326:Schönborn
++49-35327:Prießen
++49-35329:Dollenchen
++49-3533:Elsterwerda
++49-35341:Bad Liebenwerda
++49-35342:Mühlberg(Elbe)
++49-35343:Hirschfeld
++49-3535:Herzberg(Elster)
++49-35361:Schlieben
++49-35362:Schönewalde
++49-35363:Fermerswalde
++49-35364:Lebusa
++49-35365:Falkenberg(Elster)
++49-3537:Jessen(Elster)
++49-35383:Elster(Elbe)
++49-35384:Steinsdorf
++49-35385:Annaburg
++49-35386:Prettin
++49-35387:Seyda
++49-35388:Klöden
++49-35389:Holzdorf
++49-3541:Calau
++49-3542:Lübbenau
++49-35433:Vetschau
++49-35434:Altdöbern
++49-35435:Gollmitz
++49-35436:Laasow
++49-35439:Zinnitz
++49-3544:Luckau
++49-35451:Dahme
++49-35452:Golßen
++49-35453:Drahnsdorf
++49-35454:Uckro
++49-35455:Walddrehna
++49-35456:Terpt
++49-3546:Lübben
++49-35471:Birkenhainchen
++49-35472:Schlepzig
++49-35473:Neu Lübbenau
++49-35474:Schönwalde
++49-35475:Straupitz
++49-35476:Wittmannsdorf
++49-35477:Rietzneuendorf
++49-35478:Goyatz
++49-355:Cottbus
++49-35600:Döbern(Nl)
++49-35601:Peitz
++49-35602:Drebkau
++49-35603:Burg (Spreew)
++49-35604:Krieschow
++49-35605:Komptendorf
++49-35606:Briesen
++49-35607:Jänschwalde
++49-35608:Groß Oßnig
++49-35609:Drachhausen
++49-3561:Guben
++49-3562:Forst
++49-3563:Spremberg
++49-3564:Schwarze Pumpe
++49-35691:Bärenklau
++49-35692:Kerkwitz
++49-35693:Lauschütz
++49-35694:Gosda
++49-35695:Simmersdorf
++49-35696:Briesnig
++49-35697:Bagenz
++49-35698:Hornow
++49-3571:Hoyerswerda
++49-35722:Lauta
++49-35723:Bernsdorf(Ol)
++49-35724:Lohsa
++49-35725:Wittichenau
++49-35726:Groß Särchen
++49-35727:Burghammer
++49-35728:Uhyst
++49-3573:Senftenberg
++49-3574:Lauchhammer
++49-35751:Welzow
++49-35752:Ruhland
++49-35753:Großräschen
++49-35754:Klettwitz
++49-35755:Ortrand
++49-35756:Hosena
++49-3576:Weißwasser
++49-35771:Bad Muskau
++49-35772:Rietschen
++49-35773:Schleife
++49-35774:Boxberg
++49-35775:Pechern
++49-3578:Kamenz
++49-35792:Oßling
++49-35793:Elstra
++49-35795:Königsbrück
++49-35796:Panschwitz-Kuckau
++49-35797:Schwepnitz
++49-3581:Görlitz
++49-35820:Zodel
++49-35822:Hagenwerder
++49-35823:Ostritz
++49-35825:Kodersdorf
++49-35826:Königshain
++49-35827:Nieder Seifersdorf
++49-35828:Reichenbach(Ol)
++49-35829:Gersdorf
++49-3583:Zittau
++49-35841:Großschönau
++49-35842:Niederoderwitz
++49-35843:Hirschfelde
++49-35844:Oybin,kurort
++49-3585:Löbau
++49-3586:Neugersdorf (Sachs)
++49-35872:Neusalza-Spremberg
++49-35873:Herrnhut
++49-35874:Bernstadt
++49-35875:Obercunnersdorf
++49-35876:Weißenberg
++49-35877:Cunewalde
++49-3588:Niesky
++49-35891:Rothenburg(Ol)
++49-35892:Horka(Ol)
++49-35893:Mücka
++49-35894:Hähnichen
++49-35895:Klitten
++49-3591:Bautzen
++49-3592:Kirschau
++49-35930:Seitschen
++49-35931:Königswartha
++49-35932:Guttau
++49-35933:Neschwitz
++49-35934:Großdubrau
++49-35935:Kleinwelka
++49-35936:Sohland(Spree)
++49-35937:Prischwitz
++49-35938:Großpostwitz(Ol)
++49-35939:Pommritz
++49-3594:Bischofswerda
++49-35951:Neukirch(Lausitz)
++49-35952:Großröhrsdorf
++49-35953:Burkau
++49-35954:Großharthau
++49-35955:Pulsnitz
++49-3596:Neustadt(Sachs)
++49-35971:Sebnitz
++49-35973:Stolpen
++49-35974:Hinterhermsdorf
++49-35975:Hohnstein
++49-3601:Mühlhausen
++49-36020:Ebeleben
++49-36021:Schlotheim
++49-36022:Großengottern
++49-36023:Horsmar
++49-36024:Diedorf
++49-36025:Körner
++49-36026:Struth
++49-36027:Lengenfeld Unterm Stein
++49-36028:Kammerforst
++49-36029:Menteroda
++49-3603:Bad Langensalza
++49-36041:Bad Tennstedt
++49-36042:Gräfentonna
++49-36043:Kirchheilingen
++49-3605:Leinefelde
++49-3606:Heiligenstadt
++49-36071:Teistungen
++49-36072:Weißenborn-Lüderode
++49-36074:Worbis
++49-36075:Dingelstädt(Eichsfeld)
++49-36076:Niederorschel
++49-36077:Großbodungen
++49-36081:Arenshausen
++49-36082:Ershausen
++49-36083:Uder
++49-36084:Heuthen
++49-36085:Reinholterode
++49-36087:Wüstheuterode
++49-361:Erfurt
++49-36200:Elxleben
++49-36201:Walschleben
++49-36202:Neudietendorf
++49-36203:Vieselbach
++49-36204:Stotternheim
++49-36205:Gräfenroda
++49-36206:Großfahner
++49-36207:Plaue
++49-36208:Ermstedt
++49-36209:Klettbach
++49-3621:Gotha
++49-3622:Waltershausen
++49-3623:Friedrichroda
++49-3624:Ohrdruf
++49-36252:Tambach-Dietharz
++49-36253:Georgenthal(Thür)
++49-36254:Friedrichswerth
++49-36255:Goldbach
++49-36256:Wechmar
++49-36257:Luisenthal
++49-36258:Friemar
++49-36259:Tabarz
++49-3628:Arnstadt
++49-3629:Stadtilm
++49-3631:Nordhausen
++49-3632:Sondershausen
++49-36330:Großberndten
++49-36331:Ilfeld
++49-36332:Ellrich
++49-36333:Heringen
++49-36334:Wolkramshausen
++49-36335:Großwechsungen
++49-36336:Klettenberg
++49-36337:Schiedungen
++49-36338:Bleicherode
++49-3634:Sömmerda
++49-3635:Kölleda
++49-3636:Greußen
++49-36370:Großenehrich
++49-36371:Schloßvippach
++49-36372:Kleinneuhausen
++49-36373:Buttstädt
++49-36374:Weißensee
++49-36375:Kindelbrück
++49-36376:Straußfurt
++49-36377:Rastenberg
++49-36378:Ostramondra
++49-36379:Holzengel
++49-3641:Jena
++49-36421:Camburg
++49-36422:Reinstädt
++49-36423:Orlamünde
++49-36424:Kahla(Thür)
++49-36425:Isserstedt
++49-36426:Ottendorf
++49-36427:Dornburg(Saale)
++49-36428:Stadtroda
++49-3643:Weimar
++49-3644:Apolda
++49-36450:Kranichfeld
++49-36451:Buttelstedt
++49-36452:Berlstedt
++49-36453:Mellingen
++49-36454:Magdala
++49-36458:Bad Berka
++49-36459:Blankenhain(Thür)
++49-36461:Bad Sulza
++49-36462:Oßmannstedt
++49-36463:Gebstedt
++49-36464:Wormstedt
++49-36465:Oberndorf
++49-3647:Pößneck
++49-36481:Neustadt(Orla)
++49-36482:Triptis
++49-36483:Ziegenrück
++49-36484:Knau
++49-365:Gera
++49-36601:Hermsdorf(Thür)
++49-36602:Ronneburg
++49-36603:Weida
++49-36604:Münchenbernsdorf
++49-36605:Bad Köstritz
++49-36606:Kraftsdorf
++49-36607:Niederpöllnitz
++49-36608:Seelingstädt
++49-3661:Greiz
++49-36621:Elsterberg
++49-36622:Triebes
++49-36623:Berga(Elster)
++49-36624:Teichwolframsdorf
++49-36625:Langenwetzendorf
++49-36626:Auma
++49-36628:Zeulenroda
++49-3663:Schleiz
++49-36640:Remptendorf
++49-36642:Harra
++49-36643:Thimmendorf
++49-36644:Hirschberg(Saale)
++49-36645:Mühltroff
++49-36646:Tanna
++49-36647:Saalburg
++49-36648:Dittersdorf
++49-36649:Gefell
++49-36651:Lobenstein
++49-36652:Wurzbach
++49-36653:Lehesten(Thüringerw)
++49-36691:Eisenberg
++49-36692:Bürgel
++49-36693:Crossen(Elster)
++49-36694:Schkölen
++49-36695:Pölzig
++49-36701:Lichte
++49-36702:Lauscha
++49-36703:Gräfenthal
++49-36704:Steinheid
++49-36705:Oberweißbach
++49-3671:Saalfeld(Saale)
++49-3672:Rudolstadt
++49-36730:Sitzendorf
++49-36731:Unterloquitz
++49-36732:Könitz
++49-36733:Kaulsdorf
++49-36734:Leutenberg
++49-36735:Probstzella
++49-36736:Arnsgereuth
++49-36737:Drognitz
++49-36738:Königsee
++49-36739:Rottenbach
++49-36741:Bad Blankenburg
++49-36742:Uhlstädt
++49-36743:Teichel
++49-36744:Remda
++49-3675:Sonneberg(Thür)
++49-36761:Heubisch
++49-36762:Steinach
++49-36764:Neuhaus-Schierschnitz
++49-36766:Schalkau
++49-3677:Ilmenau
++49-36781:Großbreitenbach
++49-36782:Schmiedefeld
++49-36783:Gehren(Thür)
++49-36784:Stützerbach
++49-36785:Gräfinau-Angstedt
++49-3679:Neuhaus a Rennweg
++49-3681:Suhl
++49-3682:Zella-Mehlis
++49-3683:Schmalkalden
++49-36840:Trusetal
++49-36841:Schleusingen
++49-36842:Oberhof(Thür)
++49-36843:Benshausen
++49-36844:Rohr
++49-36845:Gehlberg
++49-36846:Dietzhausen
++49-36847:Steinbach-Hallenberg
++49-36848:Wernshausen
++49-36849:Kleinschmalkalden
++49-3685:Hildburghausen
++49-3686:Eisfeld
++49-36870:Masserberg
++49-36871:Heldburg
++49-36873:Themar
++49-36874:Schönbrunn
++49-36875:Streufdorf
++49-36878:Brattendorf
++49-3691:Eisenach
++49-36920:Großenlupnitz
++49-36921:Wutha
++49-36922:Gerstungen
++49-36923:Treffurt
++49-36924:Mihla
++49-36925:Marksuhl
++49-36926:Creuzburg
++49-36927:Unterellen
++49-36928:Neuenhof
++49-36929:Ruhla
++49-3693:Meiningen
++49-36940:Oepfershausen
++49-36941:Wasungen
++49-36943:Bettenhausen
++49-36944:Rentwertshausen
++49-36945:Henneberg
++49-36946:Reichenhausen
++49-36947:Jüchsen
++49-36948:Römhild
++49-36949:Obermaßfeld
++49-3695:Bad Salzungen
++49-36961:Bad Liebenstein
++49-36962:Vacha
++49-36963:Dorndorf(Rhön)
++49-36964:Dermbach
++49-36965:Stadtlengsfeld
++49-36966:Kaltennordheim
++49-36967:Geisa
++49-36968:Roßdorf
++49-36969:Merkers
++49-371:Chemnitz
++49-37200:Wittgensdorf
++49-37202:Claußnitz
++49-37203:Gersdorf
++49-37204:Lichtenstein
++49-37206:Frankenberg
++49-37207:Hainichen
++49-37208:Oberlichtenau
++49-37209:Einsiedel
++49-3721:Meinersdorf
++49-3722:Limbach-Oberfrohna
++49-3723:Hohenstein-Ernstthal
++49-3724:Burgstädt
++49-3725:Zschopau
++49-3726:Flöha
++49-3727:Mittweida
++49-37291:Augustusburg
++49-37292:Oederan
++49-37293:Eppendorf
++49-37294:Grünhainichen
++49-37295:Lugau(Erzgeb)
++49-37296:Stollberg(Erzgeb)
++49-37297:Thum
++49-37298:Oelsnitz(Erzgeb)
++49-3731:Freiberg(Sachs)
++49-37320:Mulda
++49-37321:Frankenstein
++49-37322:Brand-Erbisdorf
++49-37323:Lichtenberg
++49-37324:Reinsberg
++49-37325:Niederbobritzsch
++49-37326:Frauenstein
++49-37327:Rechenberg-Bienenmühle
++49-37328:Großschirma
++49-37329:Großhartmannsdorf
++49-3733:Annaberg-Buchholz
++49-37341:Ehrenfriedersdorf
++49-37342:Cranzahl
++49-37343:Jöhstadt
++49-37344:Crottendorf
++49-37346:Geyer
++49-37347:Bärenstein
++49-37348:Oberwiesenthal
++49-37349:Scheibenberg
++49-3735:Marienberg
++49-37360:Olbernhau
++49-37361:Neuhausen(Erzgeb)
++49-37362:Seiffen
++49-37363:Zöblitz
++49-37364:Reitzenhain
++49-37365:Sayda
++49-37366:Rübenau
++49-37367:Lengefeld(Erzgeb)
++49-37368:Deutschneudorf
++49-37369:Wolkenstein
++49-3737:Rochlitz
++49-37381:Penig
++49-37382:Geringswalde
++49-37383:Lunzenau
++49-37384:Wechselburg
++49-3741:Plauen
++49-37421:Oelsnitz(Vogtl)
++49-37422:Markneukirchen
++49-37423:Adorf(Vogtl)
++49-37430:Eichigt
++49-37431:Mehltheuer(Vogtl)
++49-37432:Pausa
++49-37433:Gutenfürst
++49-37434:Bobenneukirchen
++49-37435:Reuth
++49-37436:Weischlitz
++49-37437:Bad Elster
++49-37438:Bad Brambach
++49-37439:Jocketa
++49-3744:Auerbach(Vogtl)
++49-3745:Falkenstein
++49-37462:Rothenkirchen(Vogtl)
++49-37463:Bergen
++49-37464:Schöneck
++49-37465:Tannenbergsthal
++49-37467:Klingenthal
++49-37468:Treuen
++49-375:Zwickau
++49-37600:Neumark(Sachs)
++49-37601:Mülsen St Jacob
++49-37602:Kirchberg(Sachs)
++49-37603:Wildenfels
++49-37604:Mosel
++49-37605:Hartenstein
++49-37606:Lengenfeld(Vogtl)
++49-37607:Ebersbrunn
++49-37608:Waldenburg
++49-37609:Wolkenburg
++49-3761:Werdau(Sachs)
++49-3762:Crimmitschau
++49-3763:Glauchau
++49-3764:Meerane
++49-3765:Reichenbach(Vogtl)
++49-3771:Aue(Sachs)
++49-3772:Schneeberg(Erzgeb)
++49-3773:Johanngeorgenstadt
++49-3774:Schwarzenberg(Erzgeb)
++49-37752:Eibenstock
++49-37754:Zwönitz
++49-37755:Schönheide(Erzgeb)
++49-37756:Breitenbrunn
++49-37757:Rittersgrün
++49-381:Rostock
++49-38201:Gelbensande
++49-38202:Volkenshagen
++49-38203:Bad Doberan
++49-38204:Broderstorf
++49-38205:Tessin
++49-38206:Graal-Müritz
++49-38207:Stäbelow
++49-38208:Kavelstorf
++49-38209:Sanitz
++49-3821:Ribnitz-Damgarten
++49-38220:Wustrow,ostseebad
++49-38221:Marlow
++49-38222:Semlow
++49-38223:Saal
++49-38224:Gresenhorst
++49-38225:Trinwillershagen
++49-38226:Dierhagen,ostseebad
++49-38227:Lüdershagen
++49-38228:Dettmannsdorf-Kölzow
++49-38229:Bad Sülze
++49-38231:Barth
++49-38232:Zingst a Darß
++49-38233:Prerow,ostseebad
++49-38234:Born (Darß)
++49-38292:Kröpelin
++49-38293:Kühlungsborn
++49-38294:Neubukow
++49-38295:Satow
++49-38296:Rerik,ostseebad
++49-38297:Moitin
++49-38300:Vitte
++49-38301:Putbus
++49-38302:Sagard
++49-38303:Sellin,ostseebad
++49-38304:Garz(Rügen)
++49-38305:Gingst
++49-38306:Samtens
++49-38307:Poseritz
++49-38308:Göhren
++49-38309:Trent
++49-3831:Stralsund
++49-38320:Tribsees
++49-38321:Martensdorf
++49-38322:Richtenberg
++49-38323:Prohn
++49-38324:Velgast
++49-38325:Rolofshagen
++49-38326:Grimmen
++49-38327:Elmenhorst
++49-38328:Miltzow
++49-38331:Rakow
++49-38332:Groß Bisdorf
++49-38333:Horst
++49-38334:Grammendorf
++49-3834:Greifswald
++49-38351:Mesekenhagen
++49-38352:Kemnitz
++49-38353:Gützkow
++49-38354:Wusterhusen
++49-38355:Züssow
++49-38356:Behrenhoff
++49-3836:Wolgast
++49-38370:Kröslin
++49-38371:Karlshagen
++49-38372:Usedom
++49-38373:Katzow
++49-38374:Lassan
++49-38375:Koserow
++49-38376:Zirchow
++49-38377:Zinnowitz
++49-38378:Heringsdorf,seebad
++49-38379:Benz
++49-3838:Bergen
++49-38391:Altenkirchen
++49-38392:Saßnitz
++49-38393:Binz, Ostseebad
++49-3841:Wismar
++49-38422:Neukloster
++49-38423:Bad Kleinen
++49-38424:Bobitz
++49-38425:Kirchdorf(Poel)
++49-38426:Neuburg
++49-38427:Blowatz
++49-38428:Hohenkirchen
++49-38429:Glasin
++49-3843:Güstrow
++49-3844:Schwaan
++49-38450:Tarnow
++49-38451:Hoppenrade
++49-38452:Lalendorf
++49-38453:Mistorf
++49-38454:Kritzkow
++49-38455:Plaaz
++49-38456:Langhagen
++49-38457:Krakow a See
++49-38458:Zehna
++49-38459:Laage
++49-38461:Bützow
++49-38462:Baumgarten
++49-38464:Bernitt
++49-38466:Jürgenshagen
++49-3847:Sternberg
++49-38481:Witzin
++49-38482:Warin
++49-38483:Brüel
++49-38484:Ventschow
++49-38485:Dabel
++49-38486:Gustävel
++49-38488:Demen
++49-385:Schwerin(Meckl)
++49-3860:Raben Steinfeld
++49-3861:Plate
++49-3863:Crivitz
++49-3865:Holthusen
++49-3866:Cambs
++49-3867:Lübstorf
++49-3868:Rastow
++49-3869:Dümmer
++49-3871:Parchim
++49-38720:Grebbin
++49-38721:Ziegendorf
++49-38722:Raduhn
++49-38723:Kladrum
++49-38724:Siggelkow
++49-38725:Groß Godems
++49-38726:Spornitz
++49-38727:Mestlin
++49-38728:Domsühl
++49-38729:Marnitz
++49-38731:Lübz
++49-38732:Gallin
++49-38733:Karbow
++49-38735:Plau
++49-38736:Goldberg(Meckl)
++49-38737:Ganzlin
++49-38738:Karow
++49-3874:Ludwigslust
++49-38750:Malliß
++49-38751:Picher
++49-38752:Zierzow
++49-38753:Wöbbelin
++49-38754:Leussow
++49-38755:Eldena
++49-38756:Grabow(Meckl)
++49-38757:Neustadt-Glewe
++49-38758:Dömitz
++49-38759:Tewswoos
++49-3876:Perleberg
++49-3877:Wittenberge
++49-38780:Lanz
++49-38781:Mellen
++49-38782:Reetz
++49-38783:Dallmin
++49-38784:Kleinow
++49-38785:Berge
++49-38787:Glöwen
++49-38788:Groß Warnow
++49-38789:Wolfshagen
++49-38791:Bad Wilsnack
++49-38792:Lenzen(Elbe)
++49-38793:Dergenthin
++49-38794:Cumlosen
++49-38796:Viesecke
++49-38797:Karstädt
++49-3881:Grevesmühlen
++49-38821:Lüdersdorf(Meckl)
++49-38822:Diedrichshagen
++49-38823:Selmsdorf
++49-38824:Mallentin
++49-38825:Klütz
++49-38826:Dassow
++49-38827:Kalkhorst
++49-38828:Schönberg(Meckl)
++49-3883:Hagenow
++49-38841:Neuhaus(Elbe)
++49-38842:Lüttenmark
++49-38843:Bennin
++49-38844:Gülze
++49-38845:Kaarßen
++49-38847:Boizenburg
++49-38848:Vellahn
++49-38850:Gammelin
++49-38851:Zarrentin(Meckl)
++49-38852:Wittenburg
++49-38853:Drönnewitz
++49-38854:Redefin
++49-38855:Lübtheen
++49-38856:Pritzier
++49-38858:Lassahn
++49-38859:Zachun
++49-3886:Gadebusch
++49-38871:Mühlen Eichsen
++49-38872:Rehna
++49-38873:Carlow
++49-38874:Lützow
++49-38875:Schlagsdorf
++49-38876:Roggendorf
++49-39000:Beetzendorf
++49-39001:Apenburg
++49-39002:Oebisfelde
++49-39003:Jübar
++49-39004:Köckte
++49-39005:Kusey
++49-39006:Miesterhorst
++49-39007:Tangeln
++49-39008:Kunrau
++49-39009:Badel
++49-3901:Salzwedel
++49-3902:Diesdorf(Altm)
++49-39030:Brunau
++49-39031:Dähre
++49-39032:Mahlsdorf
++49-39033:Wallstawe
++49-39034:Fleetmark
++49-39035:Kuhfelde
++49-39036:Binde
++49-39037:Pretzier
++49-39038:Henningen
++49-39039:Bonese
++49-3904:Haldensleben
++49-39050:Bartensleben
++49-39051:Calvörde
++49-39052:Erxleben
++49-39053:Süplingen
++49-39054:Flechtingen
++49-39055:Hörsingen
++49-39056:Klüden
++49-39057:Rätzlingen
++49-39058:Uthmöden
++49-39059:Wegenstedt
++49-39061:Weferlingen
++49-39062:Bebertal
++49-3907:Gardelegen
++49-39080:Kalbe
++49-39081:Kakerbeck
++49-39082:Mieste
++49-39083:Meßdorf
++49-39084:Lindstedt
++49-39085:Zichtau
++49-39086:Jävenitz
++49-39087:Jerchel
++49-39088:Letzlingen
++49-39089:Bismark(Altm)
++49-3909:Klötze
++49-391:Magdeburg
++49-39200:Gommern
++49-39201:Wolmirstedt
++49-39202:Groß Ammensleben
++49-39203:Barleben
++49-39204:Niederndodeleben
++49-39205:Langenweddingen
++49-39206:Eichenbarleben
++49-39207:Colbitz
++49-39208:Loitsche
++49-39209:Wanzleben
++49-3921:Burg
++49-39221:Möckern
++49-39222:Möser
++49-39223:Theeßen
++49-39224:Büden
++49-39225:Altengrabow
++49-39226:Hohenziatz
++49-3923:Zerbst
++49-39241:Leitzkau
++49-39242:Prödel
++49-39243:Nedlitz
++49-39244:Steutz
++49-39245:Loburg
++49-39246:Lindau(Anh)
++49-39247:Güterglück
++49-39248:Dobritz
++49-3925:Staßfurt
++49-39262:Güsten
++49-39263:Unseburg
++49-39264:Kroppenstedt
++49-39265:Löderburg
++49-39266:Förderstedt
++49-39267:Schneidlingen
++49-39268:Egeln
++49-3928:Schönebeck(Elbe)
++49-39291:Calbe(Saale)
++49-39292:Biederitz
++49-39293:Dreileben
++49-39294:Groß Rosenburg
++49-39295:Zuchau
++49-39296:Welsleben
++49-39297:Eickendorf
++49-39298:Barby
++49-3931:Stendal
++49-39320:Schinne
++49-39321:Arneburg
++49-39322:Tangermünde
++49-39323:Schönhausen(Elbe)
++49-39324:Kläden
++49-39325:Vinzelberg
++49-39327:Klietz
++49-39328:Rochau
++49-39329:Möringen
++49-3933:Genthin
++49-39341:Redekin
++49-39342:Gladau
++49-39343:Jerichow
++49-39344:Güsen
++49-39345:Parchen
++49-39346:Tucheim
++49-39347:Kade
++49-39348:Klitsche
++49-39349:Parey(Elbe)
++49-3935:Tangerhütte
++49-39361:Lüderitz
++49-39362:Grieben
++49-39363:Angern
++49-39364:Dolle
++49-39365:Bellingen
++49-39366:Kehnert
++49-3937:Osterburg
++49-39382:Kamern
++49-39383:Sandau
++49-39384:Arendsee(Altm)
++49-39386:Seehausen(Altm)
++49-39387:Havelberg
++49-39388:Goldbeck(Altm)
++49-39389:Iden
++49-39390:Iden
++49-39391:Lückstedt
++49-39392:Rönnebeck
++49-39393:Werben
++49-39394:Hohenberg-Krusemark
++49-39395:Wanzer
++49-39396:Neukirchen
++49-39397:Geestgottberg
++49-39398:Groß Garz
++49-39399:Kleinau
++49-39400:Wefensleben
++49-39401:Neuwegersleben
++49-39402:Völpke
++49-39403:Gröningen
++49-39404:Ausleben
++49-39405:Hötensleben
++49-39406:Harbke
++49-39407:Seehausen(Börde)
++49-39408:Hadmersleben
++49-39409:Eilsleben
++49-3941:Halberstadt
++49-39421:Osterwieck
++49-39422:Badersleben
++49-39423:Wegeleben
++49-39424:Schwanebeck
++49-39425:Dingelstedt
++49-39426:Hessen
++49-39427:Ströbeck
++49-39428:Pabstorf
++49-3943:Wernigerode
++49-3944:Blankenburg(Harz)
++49-39451:Wasserleben
++49-39452:Ilsenburg
++49-39453:Derenburg
++49-39454:Elbingerode
++49-39455:Schierke
++49-39456:Altenbrak
++49-39457:Benneckenstein
++49-39458:Heudeber
++49-39459:Hasselfelde
++49-3946:Quedlinburg
++49-3947:Thale
++49-39481:Hedersleben
++49-39482:Gatersleben
++49-39483:Ballenstedt
++49-39484:Harzgerode
++49-39485:Gernrode(Harz)
++49-39487:Friedrichsbrunn
++49-39488:Güntersberge
++49-39489:Straßberg
++49-3949:Oschersleben
++49-395:Neubrandenburg
++49-39600:Zwiedorf
++49-39601:Friedland
++49-39602:Kleeth
++49-39603:Burg Stargard
++49-39604:Wildberg
++49-39605:Groß Nemerow
++49-39606:Glienke
++49-39607:Kotelow
++49-39608:Staven
++49-3961:Altentreptow
++49-3962:Penzlin
++49-3963:Woldegk
++49-3964:Bredenfelde
++49-3965:Burow
++49-3966:Cölpin
++49-3967:Oertzenhof
++49-3968:Schönbeck
++49-3969:Siedenbollentin
++49-3971:Anklam
++49-39721:Liepen
++49-39722:Sarnow
++49-39723:Krien
++49-39724:Klein Bünzow
++49-39726:Ducherow
++49-39727:Spantekow
++49-39728:Medow
++49-3973:Pasewalk
++49-39740:Nechlin
++49-39741:Jatznick
++49-39742:Brüssow
++49-39743:Zerrenthin
++49-39744:Rothenklempenow
++49-39745:Hetzdorf
++49-39746:Krackow
++49-39747:Züsedom
++49-39748:Viereck
++49-39749:Grambow
++49-39751:Penkun
++49-39752:Blumenhagen
++49-39753:Strasburg
++49-39754:Löcknitz
++49-3976:Torgelow
++49-39771:Ueckermünde
++49-39772:Rothemühl
++49-39773:Altwarp
++49-39774:Mönkebude
++49-39775:Ahlbeck
++49-39776:Hintersee
++49-39777:Borkenfriede
++49-39778:Ferdinandshof
++49-39779:Eggesin
++49-3981:Neustrelitz
++49-39820:Triepkendorf
++49-39821:Carpin
++49-39822:Kratzeburg
++49-39823:Rechlin
++49-39824:Hohenzieritz
++49-39825:Wokuhl
++49-39826:Blankensee
++49-39827:Schwarz
++49-39828:Wustrow
++49-39829:Blankenförde
++49-39831:Feldberg
++49-39832:Wesenberg
++49-39833:Mirow
++49-3984:Prenzlau
++49-39851:Göritz
++49-39852:Schönermark
++49-39853:Holzendorf
++49-39854:Kleptow
++49-39855:Weggun
++49-39856:Beenz
++49-39857:Drense
++49-39858:Bietikow
++49-39859:Fürstenwerder
++49-39861:Gramzow
++49-39862:Schmölln
++49-39863:Seehausen
++49-3987:Templin
++49-39881:Ringenwalde
++49-39882:Gollin
++49-39883:Groß Dölln
++49-39884:Haßleben
++49-39885:Jakobshagen
++49-39886:Milmersdorf
++49-39887:Gerswalde
++49-39888:Lychen
++49-39889:Boitzenburg
++49-3991:Waren
++49-39921:Ankershagen
++49-39922:Dambeck
++49-39923:Priborn
++49-39924:Stuer
++49-39925:Wredenhagen
++49-39926:Grabowhöfe
++49-39927:Nossentiner Hütte
++49-39928:Möllenhagen
++49-39929:Jabel
++49-39931:Röbel
++49-39932:Malchow
++49-39933:Vollrathsruhe
++49-39934:Klein Plasten
++49-3994:Malchin
++49-39951:Faulenrost
++49-39952:Grammentin
++49-39953:Schwinkendorf
++49-39954:Stavenhagen
++49-39955:Jürgenstorf
++49-39956:Neukalen
++49-39957:Gielow
++49-39959:Dargun
++49-3996:Teterow
++49-39971:Gnoien
++49-39972:Walkendorf
++49-39973:Altkalen
++49-39975:Thürkow
++49-39976:Groß Bützin
++49-39977:Jördenstorf
++49-39978:Groß Roge
++49-3998:Demmin
++49-39991:Daberkow
++49-39992:Görmin
++49-39993:Hohenmocker
++49-39994:Metschow
++49-39995:Nossendorf
++49-39996:Törpin
++49-39997:Jarmen
++49-39998:Loitz
++49-39999:Tutow
++49-40:Hamburg
++49-4101:Pinneberg
++49-4102:Ahrensburg
++49-4103:Wedel Holst
++49-4104:Aumühle b Hamburg
++49-4105:Seevetal
++49-4106:Quickborn Kr Pinneberg
++49-4107:Siek Kr Stormarn
++49-4108:Rosengarten Kr Harburg
++49-4109:Tangstedt Bz Hamburg
++49-4120:Ellerhoop
++49-4121:Elmshorn
++49-4122:Uetersen
++49-4123:Barmstedt
++49-4124:Glückstadt
++49-4125:Seestermühe
++49-4126:Horst Holst
++49-4127:Westerhorn
++49-4128:Kollmar
++49-4129:Haseldorf
++49-4131:Lüneburg
++49-4132:Amelinghausen
++49-4133:Wittorf Kr Lüneburg
++49-4134:Embsen Kr Lüneburg
++49-4135:Kirchgellersen
++49-4136:Scharnebeck
++49-4137:Barendorf
++49-4138:Betzendorf Kr Lüneburg
++49-4139:Hohnstorf
++49-4140:Estorf Kr Stade
++49-4141:Stade
++49-4142:Steinkirchen Kr Stade
++49-4143:Drochtersen
++49-4144:Himmelpforten
++49-4146:Stade-Bützfleth
++49-4148:Drochtersen-Assel
++49-4149:Fredenbeck
++49-4151:Schwarzenbek
++49-4152:Geesthacht
++49-4153:Lauenburg Elbe
++49-4154:Trittau
++49-4155:Büchen
++49-4156:Talkau
++49-4158:Roseburg
++49-4159:Basthorst
++49-4161:Buxtehude
++49-4162:Jork
++49-4163:Horneburg Niederelbe
++49-4164:Harsefeld
++49-4165:Hollenstedt Nordheide
++49-4166:Ahlerstedt
++49-4167:Apensen
++49-4168:Neu Wulmstorf-Elstorf
++49-4169:Sauensiek
++49-4171:Winsen Luhe
++49-4172:Salzhausen
++49-4173:Wulfsen
++49-4174:Stelle Kr Harburg
++49-4175:Egestorf Nordheide
++49-4176:Marschacht
++49-4177:Drage Elbe
++49-4178:Radbruch
++49-4179:Winsen-Tönnhausen
++49-4180:Königsmoor
++49-4181:Buchholz i d Nordheide
++49-4182:Tostedt
++49-4183:Jesteburg
++49-4184:Hanstedt Nordheide
++49-4185:Marxen Auetal
++49-4186:Buchholz-Trelde
++49-4187:Holm-Seppensen
++49-4188:Welle Nordheide
++49-4189:Undeloh
++49-4191:Kaltenkirchen Holst
++49-4192:Bad Bramstedt
++49-4193:Henstedt-Ulzburg
++49-4194:Sievershütten
++49-4195:Hartenholm
++49-4202:Achim b Bremen
++49-4203:Weyhe b Bremen
++49-4204:Thedinghausen
++49-4205:Ottersberg
++49-4206:Stuhr-Heiligenrode
++49-4207:Oyten
++49-4208:Grasberg
++49-4209:Schwanewede
++49-421:Bremen
++49-4221:Delmenhorst
++49-4222:Ganderkesee
++49-4223:Ganderkesee-Bookholzberg
++49-4224:Groß Ippener
++49-4230:Verden-Walle
++49-4231:Verden Aller
++49-4232:Langwedel Kr Verden
++49-4233:Blender
++49-4234:Dörverden
++49-4235:Langwedel-Etelsen
++49-4236:Kirchlinteln
++49-4237:Bendingbostel
++49-4238:Neddenaverbergen
++49-4239:Dörverden-Westen
++49-4240:Syke-Heiligenfelde
++49-4241:Bassum
++49-4242:Syke
++49-4243:Twistringen
++49-4244:Harpstedt
++49-4245:Neuenkirchen b Bassum
++49-4246:Twistringen-Heiligenloh
++49-4247:Affinghausen
++49-4248:Bassum-Neubruchhausen
++49-4249:Bassum-Nordwohlde
++49-4251:Hoya
++49-4252:Bruchhausen-Vilsen
++49-4253:Asendorf Kr Diepholz
++49-4254:Eystrup
++49-4255:Martfeld
++49-4256:Hilgermissen
++49-4257:Schweringen
++49-4258:Schwarme
++49-4260:Visselhövede-Wittorf
++49-4261:Rotenburg Wümme
++49-4262:Visselhövede
++49-4263:Scheeßel
++49-4264:Sottrum Kr Rotenburg
++49-4265:Fintel
++49-4266:Brockel
++49-4267:Lauenbrück
++49-4268:Bötersen
++49-4269:Ahausen-Kirchwalsede
++49-4271:Sulingen
++49-4272:Siedenburg
++49-4273:Kirchdorf b Sulingen
++49-4274:Varrel b Sulingen
++49-4275:Ehrenburg
++49-4276:Borstel b Sulingen
++49-4277:Schwaförden
++49-4281:Zeven
++49-4282:Sittensen
++49-4283:Tarmstedt
++49-4284:Selsingen
++49-4285:Rhade b Zeven
++49-4286:Gyhum
++49-4287:Heeslingen-Boitzen
++49-4288:Horstedt Kr Rotenburg
++49-4289:Kirchtimke
++49-4292:Ritterhude
++49-4293:Ottersberg-Fischerhude
++49-4294:Riede Kr Verden
++49-4295:Emtinghausen
++49-4296:Schwanewede-Aschwarden
++49-4297:Ottersberg-Posthausen
++49-4298:Lilienthal
++49-4302:Kirchbarkau
++49-4303:Schlesen
++49-4305:Westensee
++49-4307:Raisdorf
++49-4308:Schwedeneck
++49-431:Kiel
++49-4320:Heidmühlen
++49-4321:Neumünster
++49-4322:Bordesholm
++49-4323:Bornhöved
++49-4324:Brokstedt
++49-4326:Wankendorf
++49-4327:Großenaspe
++49-4328:Rickling
++49-4329:Langwedel Holst
++49-4330:Emkendorf
++49-4331:Rendsburg
++49-4332:Hamdorf b Rendsburg
++49-4333:Erfde
++49-4334:Bredenbek b Rendsburg
++49-4335:Hohn b Rendsburg
++49-4336:Owschlag
++49-4337:Jevenstedt
++49-4338:Alt Duvenstedt
++49-4339:Christiansholm
++49-4340:Achterwehr
++49-4342:Preetz
++49-4343:Laboe
++49-4344:Schönberg Holst
++49-4346:Gettorf
++49-4347:Flintbek
++49-4348:Schönkirchen
++49-4349:Dänischenhagen
++49-4351:Eckernförde
++49-4352:Damp
++49-4353:Ascheffel
++49-4354:Fleckeby
++49-4355:Rieseby
++49-4356:Groß Wittensee
++49-4357:Sehestedt Eider
++49-4358:Loose b Eckernförde
++49-4361:Oldenburg i Holst
++49-4362:Heiligenhafen
++49-4363:Lensahn
++49-4364:Dahme
++49-4365:Heringsdorf
++49-4366:Grömitz-Cismar
++49-4367:Großenbrode
++49-4371:Burg Auf Fehmarn
++49-4372:Westfehmarn
++49-4381:Lütjenburg
++49-4382:Wangels
++49-4383:Grebin
++49-4384:Selent
++49-4385:Hohenfelde b Kiel
++49-4392:Nortorf b Neumünster
++49-4393:Boostedt
++49-4394:Bokhorst
++49-4401:Brake Unterweser
++49-4402:Rastede
++49-4403:Bad Zwischenahn
++49-4404:Elsfleth
++49-4405:Edewecht
++49-4406:Berne
++49-4407:Wardenburg
++49-4408:Hude Oldb
++49-4409:Westerstede-Ocholt
++49-441:Oldenburg Oldb
++49-4421:Wilhelmshaven
++49-4422:Sande Kr Friesl
++49-4423:Fedderwarden
++49-4425:Wangerland-Hooksiel
++49-4426:Wangerland-Horumersiel
++49-4431:Wildeshausen
++49-4432:Dötlingen-Brettorf
++49-4433:Dötlingen
++49-4434:Colnrade
++49-4435:Großenkneten
++49-4441:Vechta
++49-4442:Lohne Oldb
++49-4443:Dinklage
++49-4444:Goldenstedt
++49-4445:Visbek Kr Vechta
++49-4446:Bakum Kr Vechta
++49-4447:Vechta-Langförden
++49-4451:Varel Jadebusen
++49-4452:Zetel-Neuenburg
++49-4453:Zetel
++49-4454:Jade
++49-4455:Jade-Schweiburg
++49-4456:Varel-Altjührden
++49-4458:Wiefelstede-Spohle
++49-4461:Jever
++49-4462:Wittmund
++49-4463:Wangerland
++49-4464:Wittmund-Carolinensiel
++49-4465:Friedeburg Ostfriesl
++49-4466:Wittmund-Ardorf
++49-4467:Wittmund-Funnix
++49-4468:Friedeburg-Reepsholt
++49-4469:Wangerooge
++49-4471:Cloppenburg
++49-4472:Lastrup
++49-4473:Emstek
++49-4474:Garrel
++49-4475:Molbergen
++49-4477:Lastrup-Hemmelte
++49-4478:Cappeln Oldb
++49-4479:Molbergen-Peheim
++49-4480:Ovelgönne-Strückhausen
++49-4481:Hatten-Sandkrug
++49-4482:Hatten
++49-4483:Ovelgönne-Großenmeer
++49-4484:Hude-Wüsting
++49-4485:Elsfleth-Huntorf
++49-4486:Edewecht-Friedrichsfehn
++49-4487:Großenkneten-Huntlosen
++49-4488:Westerstede
++49-4489:Apen
++49-4491:Friesoythe
++49-4492:Saterland
++49-4493:Friesoythe-Gehlenberg
++49-4494:Bösel b Friesoythe
++49-4495:Friesoythe-Thüle
++49-4496:Friesoythe-Markhausen
++49-4497:Barßel-Harkebrügge
++49-4498:Saterland-Ramsloh
++49-4499:Barßel
++49-4501:Kastorf Holst
++49-4502:Lübeck-Travemünde
++49-4503:Timmendorfer Strand
++49-4504:Ratekau
++49-4505:Stockelsdorf-Curau
++49-4506:Stockelsdorf-Krumbeck
++49-4508:Krummesse
++49-4509:Groß Grönau
++49-451:Lübeck
++49-4521:Eutin
++49-4522:Plön
++49-4523:Malente
++49-4524:Scharbeutz-Pönitz
++49-4525:Ahrensbök
++49-4526:Ascheberg Holst
++49-4527:Bosau
++49-4528:Schönwalde a Bungsberg
++49-4529:Süsel-Bujendorf
++49-4531:Bad Oldesloe
++49-4532:Bargteheide
++49-4533:Reinfeld Holstein
++49-4534:Steinburg Kr Stormarn
++49-4535:Nahe
++49-4536:Steinhorst Lauenb
++49-4537:Sülfeld Holst
++49-4539:Westerau
++49-4541:Ratzeburg
++49-4542:Mölln Lauenb
++49-4543:Nusse
++49-4544:Berkenthin
++49-4545:Seedorf Lauenb
++49-4546:Mustin
++49-4547:Gudow Lauenb
++49-4550:Bühnsdorf
++49-4551:Bad Segeberg
++49-4552:Leezen
++49-4553:Geschendorf
++49-4554:Wahlstedt
++49-4555:Seedorf b Bad Segeberg
++49-4556:Ahrensbök-Gnissau
++49-4557:Blunk
++49-4558:Todesfelde
++49-4559:Wensin
++49-4561:Neustadt i Holst
++49-4562:Grömitz
++49-4563:Scharbeutz-Haffkrug
++49-4564:Schashagen
++49-4602:Freienwill
++49-4603:Havetoft
++49-4604:Großenwiehe
++49-4605:Medelby
++49-4606:Wanderup
++49-4607:Janneby
++49-4608:Handewitt
++49-4609:Eggebek
++49-461:Flensburg
++49-4621:Schleswig
++49-4622:Taarstedt
++49-4623:Böklund
++49-4624:Kropp
++49-4625:Jübek
++49-4626:Treia
++49-4627:Dörpstedt
++49-4630:Barderup
++49-4631:Glücksburg Ostsee
++49-4632:Steinbergkirche
++49-4633:Satrup
++49-4634:Husby
++49-4635:Sörup
++49-4636:Langballig
++49-4637:Sterup
++49-4638:Tarp
++49-4639:Schafflund
++49-4641:Süderbrarup
++49-4642:Kappeln Schlei
++49-4643:Gelting Angeln
++49-4644:Karby
++49-4646:Mohrkirch
++49-4651:Westerland
++49-4661:Niebüll
++49-4662:Leck
++49-4663:Süderlügum
++49-4664:Neukirchen b Niebüll
++49-4665:Emmelsbüll-Horsbüll
++49-4666:Ladelund
++49-4667:Dagebüll
++49-4668:Klanxbüll
++49-4671:Bredstedt
++49-4672:Langenhorn
++49-4673:Joldelund
++49-4674:Ockholm
++49-4681:Wyk Auf Föhr
++49-4682:Amrum
++49-4683:Oldsum
++49-4684:Langeneß Hallig
++49-4702:Sandstedt
++49-4703:Loxstedt-Donnern
++49-4704:Drangstedt
++49-4705:Wremen
++49-4706:Schiffdorf
++49-4707:Langen-Neuenwalde
++49-4708:Ringstedt
++49-471:Bremerhaven
++49-4721:Cuxhaven
++49-4722:Cuxhaven-Altenbruch
++49-4723:Cuxhaven-Altenwalde
++49-4724:Cuxhaven-Lüdingworth
++49-4725:Helgoland
++49-4731:Nordenham
++49-4732:Stadland-Rodenkirchen
++49-4733:Butjadingen-Burhave
++49-4734:Stadland-Seefeld
++49-4735:Butjadingen-Stollhamm
++49-4736:Butjadingen-Tossens
++49-4737:Stadland-Schwei
++49-4740:Loxstedt-Dedesdorf
++49-4741:Nordholz b Bremerhaven
++49-4742:Dorum
++49-4743:Langen b Bremerhaven
++49-4744:Loxstedt
++49-4745:Bederkesa
++49-4746:Hagen b Bremerhaven
++49-4747:Beverstedt
++49-4748:Stubben b Bremerhaven
++49-4749:Schiffdorf-Geestenseth
++49-4751:Otterndorf
++49-4752:Neuhaus Oste
++49-4753:Balje
++49-4754:Bülkau
++49-4755:Ihlienworth
++49-4756:Odisheim
++49-4757:Wanna
++49-4758:Nordleda
++49-4761:Bremervörde
++49-4762:Kutenholz
++49-4763:Gnarrenburg
++49-4764:Gnarrenburg-Klenkendorf
++49-4765:Ebersdorf b Bremervörde
++49-4766:Basdahl
++49-4767:Bremervörde-Bevern
++49-4768:Hipstedt
++49-4769:Bremervörde-Iselersheim
++49-4770:Wischhafen
++49-4771:Hemmoor
++49-4772:Oberndorf Oste
++49-4773:Lamstedt
++49-4774:Hechthausen
++49-4775:Großenwörden
++49-4776:Osten-Altendorf
++49-4777:Cadenberge
++49-4778:Wingst
++49-4779:Freiburg Elbe
++49-4791:Osterholz-Scharmbeck
++49-4792:Worpswede
++49-4793:Hambergen
++49-4794:Worpswede-Ostersode
++49-4795:Garlstedt
++49-4796:Teufelsmoor
++49-4802:Wrohm
++49-4803:Pahlen
++49-4804:Nordhastedt
++49-4805:Schafstedt
++49-4806:Sarzbüttel
++49-481:Heide Holst
++49-4821:Itzehoe
++49-4822:Kellinghusen
++49-4823:Wilster
++49-4824:Krempe
++49-4825:Burg Dithm
++49-4826:Hohenlockstedt
++49-4827:Wacken
++49-4828:Lägerdorf
++49-4829:Wewelsfleth
++49-4830:Süderhastedt
++49-4832:Meldorf
++49-4833:Wesselburen
++49-4834:Büsum
++49-4835:Albersdorf Holst
++49-4836:Hennstedt Dithm
++49-4837:Neuenkirchen Dithm
++49-4838:Tellingstedt
++49-4839:Wöhrden Dithm
++49-4841:Husum Nordsee
++49-4842:Nordstrand
++49-4843:Viöl
++49-4844:Pellworm
++49-4845:Ostenfeld b Husum
++49-4846:Hattstedt
++49-4847:Oster-Ohrstedt
++49-4848:Rantrum
++49-4849:Hooge Hallig
++49-4851:Marne
++49-4852:Brunsbüttel
++49-4853:St Michaelisdonn
++49-4854:Friedrichskoog
++49-4855:Eddelak
++49-4856:Kronprinzenkoog
++49-4857:Barlt
++49-4858:St Margarethen Holst
++49-4859:Windbergen
++49-4861:Tönning
++49-4862:Garding
++49-4863:St Peter-Ording
++49-4864:Oldenswort
++49-4865:Osterhever
++49-4871:Hohenwestedt
++49-4872:Hanerau-Hademarschen
++49-4873:Aukrug
++49-4874:Todenbüttel
++49-4875:Stafstedt
++49-4876:Reher Holst
++49-4877:Hennstedt b Itzehoe
++49-4881:Friedrichstadt
++49-4882:Lunden
++49-4883:Süderstapel
++49-4884:Schwabstedt
++49-4885:Bergenhusen
++49-4892:Schenefeld Mittelholst
++49-4893:Hohenaspe
++49-4902:Jemgum-Ditzum
++49-4903:Wymeer
++49-491:Leer Ostfriesl
++49-4920:Wirdum
++49-4921:Emden
++49-4922:Borkum
++49-4923:Krummhörn-Pewsum
++49-4924:Moormerland-Oldersum
++49-4925:Hinte
++49-4926:Krummhörn-Greetsiel
++49-4927:Krummhörn-Loquard
++49-4928:Ihlow-Riepe
++49-4929:Ihlow
++49-4931:Norden
++49-4932:Norderney
++49-4933:Dornum Ostfriesl
++49-4934:Marienhafe
++49-4935:Juist
++49-4936:Großheide
++49-4938:Hagermarsch
++49-4939:Baltrum
++49-4941:Aurich Ostfriesl
++49-4942:Südbrookmerland
++49-4943:Großefehn
++49-4944:Wiesmoor
++49-4945:Großefehn-Timmel
++49-4946:Großefehn-Bagband
++49-4947:Aurich-Ogenbargen
++49-4948:Wiesmoor-Marcardsmoor
++49-4950:Holtland
++49-4951:Weener
++49-4952:Rhauderfehn
++49-4953:Bunde
++49-4954:Moormerland
++49-4955:Westoverledingen
++49-4956:Uplengen
++49-4957:Detern
++49-4958:Jemgum
++49-4959:Dollart
++49-4961:Papenburg
++49-4962:Papenburg-Aschendorf
++49-4963:Dörpen
++49-4964:Rhede Ems
++49-4965:Surwold
++49-4966:Neubörger
++49-4967:Rhauderfehn-Burlage
++49-4968:Neulehe
++49-4971:Esens
++49-4972:Langeoog
++49-4973:Wittmund-Burhafe
++49-4974:Neuharlingersiel
++49-4975:Westerholt Ostfriesl
++49-4976:Spiekeroog
++49-4977:Blomberg Ostfriesl
++49-5021:Nienburg Weser
++49-5022:Wietzen
++49-5023:Liebenau Kr Nienburg
++49-5024:Rohrsen Kr Nienburg
++49-5025:Estorf Weser
++49-5026:Steimbke
++49-5027:Linsburg
++49-5028:Pennigsehl
++49-5031:Wunstorf
++49-5032:Neustadt a Rübenberge
++49-5033:Wunstorf-Großenheidorn
++49-5034:Neustadt-Hagen
++49-5035:Groß Munzel
++49-5036:Neustadt-Schneeren
++49-5037:Bad Rehburg
++49-5041:Springe Deister
++49-5042:Bad Münder a Deister
++49-5043:Lauenau
++49-5044:Springe-Eldagsen
++49-5045:Springe-Bennigsen
++49-5051:Bergen Kr Celle
++49-5052:Hermannsburg
++49-5053:Faßberg-Müden
++49-5054:Bergen-Sülze
++49-5055:Faßberg
++49-5056:Winsen-Meißendorf
++49-5060:Bodenburg
++49-5062:Holle b Hildesheim
++49-5063:Bad Salzdetfurth
++49-5064:Groß Düngen
++49-5065:Sibbesse
++49-5066:Sarstedt
++49-5067:Bockenem
++49-5068:Elze Leine
++49-5069:Nordstemmen
++49-5071:Schwarmstedt
++49-5072:Neustadt-Mandelsloh
++49-5073:Neustadt-Esperke
++49-5074:Rodewald
++49-5082:Langlingen
++49-5083:Hohne b Celle
++49-5084:Hambühren
++49-5085:Burgdorf-Ehlershausen
++49-5086:Celle-Scheuen
++49-5101:Pattensen
++49-5102:Laatzen
++49-5103:Wennigsen Deister
++49-5105:Barsinghausen
++49-5108:Gehrden Han
++49-5109:Ronnenberg
++49-511:Hannover
++49-5121:Hildesheim
++49-5123:Schellerten
++49-5126:Algermissen
++49-5127:Harsum
++49-5128:Hohenhameln
++49-5129:Söhlde
++49-5130:Wedemark
++49-5131:Garbsen
++49-5132:Lehrte
++49-5135:Burgwedel-Fuhrberg
++49-5136:Burgdorf Kr Hannover
++49-5137:Seelze
++49-5138:Sehnde
++49-5139:Burgwedel
++49-5141:Celle
++49-5142:Eschede
++49-5143:Winsen Aller
++49-5144:Wathlingen
++49-5145:Beedenbostel
++49-5146:Wietze
++49-5147:Uetze-Hänigsen
++49-5148:Steinhorst Niedersachs
++49-5149:Wienhausen
++49-5151:Hameln
++49-5152:Hessisch Oldendorf
++49-5153:Salzhemmendorf
++49-5154:Aerzen
++49-5155:Emmerthal
++49-5156:Coppenbrügge
++49-5157:Emmerthal-Börry
++49-5158:Hemeringen
++49-5159:Coppenbrügge-Bisperode
++49-5161:Walsrode
++49-5162:Fallingbostel
++49-5163:Fallingbostel-Dorfmark
++49-5164:Hodenhagen
++49-5165:Rethem Aller
++49-5166:Walsrode-Kirchboitzen
++49-5167:Walsrode-Westenholz
++49-5168:Walsrode-Stellichte
++49-5171:Peine
++49-5172:Ilsede
++49-5173:Uetze
++49-5174:Lahstedt
++49-5175:Lehrte-Arpke
++49-5176:Edemissen
++49-5177:Edemissen-Abbensen
++49-5181:Alfeld Leine
++49-5182:Gronau Leine
++49-5183:Lamspringe
++49-5184:Freden Leine
++49-5185:Duingen
++49-5186:Salzhemmendorf-Wallensen
++49-5187:Delligsen
++49-5190:Soltau-Emmingen
++49-5191:Soltau
++49-5192:Munster
++49-5193:Schneverdingen
++49-5194:Bispingen
++49-5195:Neuenkirchen Kr Soltau
++49-5196:Wietzendorf
++49-5197:Soltau-Frielingen
++49-5198:Schneverdingen-Wintermoor
++49-5199:Schneverdingen-Heber
++49-5201:Halle Westf
++49-5202:Oerlinghausen
++49-5203:Werther Westf
++49-5204:Steinhagen Westf
++49-5205:Bielefeld-Sennestadt
++49-5206:Bielefeld-Jöllenbeck
++49-5207:Schloß Holte-Stukenbrock
++49-5208:Leopoldshöhe
++49-5209:Gütersloh-Friedrichsdorf
++49-521:Bielefeld
++49-5221:Herford
++49-5222:Bad Salzuflen
++49-5223:Bünde
++49-5224:Enger Westf
++49-5225:Spenge
++49-5226:Bruchmühlen Westf
++49-5228:Vlotho-Exter
++49-5231:Detmold
++49-5232:Lage
++49-5233:Steinheim Westf
++49-5234:Horn-Bad Meinberg
++49-5235:Blomberg Lippe
++49-5236:Blomberg-Großenmarpe
++49-5237:Augustdorf
++49-5238:Nieheim-Himmighausen
++49-5241:Gütersloh
++49-5242:Rheda-Wiedenbrück
++49-5244:Rietberg
++49-5245:Herzebrock-Clarholz
++49-5246:Verl
++49-5247:Harsewinkel
++49-5248:Langenberg Kr Gütersloh
++49-5250:Delbrück Westf
++49-5251:Paderborn
++49-5252:Bad Lippspringe
++49-5253:Bad Driburg
++49-5254:Paderborn-Schloß Neuhaus
++49-5255:Altenbeken
++49-5257:Hövelhof
++49-5258:Salzkotten
++49-5259:Bad Driburg-Neuenheerse
++49-5261:Lemgo
++49-5262:Extertal
++49-5263:Barntrup
++49-5264:Kalletal
++49-5265:Dörentrup
++49-5266:Lemgo-Kirchheide
++49-5271:Höxter
++49-5272:Brakel Westf
++49-5273:Beverungen
++49-5274:Nieheim
++49-5275:Höxter-Ottbergen
++49-5276:Marienmünster
++49-5277:Höxter-Fürstenau
++49-5278:Höxter-Ovenhausen
++49-5281:Bad Pyrmont
++49-5282:Schieder-Schwalenberg
++49-5283:Lügde-Rischenau
++49-5284:Schwalenberg
++49-5285:Bad Pyrmont-Kleinenberg
++49-5286:Ottenstein Niedersachs
++49-5292:Lichtenau-Atteln
++49-5293:Paderborn-Dahl
++49-5294:Hövelhof-Espeln
++49-5295:Lichtenau Westf
++49-5300:Salzgitter-Üfingen
++49-5301:Lehre-Essenrode
++49-5302:Vechelde
++49-5303:Wendeburg
++49-5304:Meine
++49-5305:Sickte
++49-5306:Cremlingen
++49-5307:Braunschweig-Wenden
++49-5308:Lehre
++49-5309:Lehre-Wendhausen
++49-531:Braunschweig
++49-5320:Torfhaus
++49-5321:Goslar
++49-5322:Bad Harzburg
++49-5323:Clausthal-Zellerfeld
++49-5324:Vienenburg
++49-5325:Goslar-Hahnenklee
++49-5326:Langelsheim
++49-5327:Bad Grund Harz
++49-5328:Altenau Harz
++49-5329:Schulenberg i Oberharz
++49-5331:Wolfenbüttel
++49-5332:Schöppenstedt
++49-5333:Dettum
++49-5334:Hornburg Kr Wolfenbüttel
++49-5335:Schladen
++49-5336:Semmenstedt
++49-5337:Kissenbrück
++49-5339:Gielde
++49-5341:Salzgitter
++49-5344:Lengede
++49-5345:Baddeckenstedt
++49-5346:Liebenburg
++49-5347:Burgdorf b Salzgitter
++49-5351:Helmstedt
++49-5352:Schöningen
++49-5353:Königslutter a Elm
++49-5354:Jerxheim
++49-5355:Frellstedt
++49-5356:Helmstedt-Barmke
++49-5357:Grasleben
++49-5358:Bahrdorf-Mackendorf
++49-5361:Wolfsburg
++49-5362:Wolfsburg-Fallersleben
++49-5363:Wolfsburg-Vorsfelde
++49-5364:Velpke
++49-5365:Wolfsburg-Neindorf
++49-5366:Jembke
++49-5367:Rühen
++49-5368:Parsau
++49-5371:Gifhorn
++49-5372:Meinersen
++49-5373:Hillerse Kr Gifhorn
++49-5374:Isenbüttel
++49-5375:Müden Aller
++49-5376:Wesendorf
++49-5377:Ehra-Lessien
++49-5378:Sassenburg-Platendorf
++49-5379:Sassenburg-Grußendorf
++49-5381:Seesen
++49-5382:Bad Gandersheim
++49-5383:Lutter a Barenberge
++49-5384:Seesen-Groß Rhüden
++49-5401:Georgsmarienhütte
++49-5402:Bissendorf Kr Osnabrück
++49-5403:Bad Iburg
++49-5404:Westerkappeln
++49-5405:Hasbergen Kr Osnabrück
++49-5406:Belm
++49-5407:Wallenhorst
++49-5409:Hilter a Teutoburger Wald
++49-541:Osnabrück
++49-5421:Dissen a Teutoburger Wald
++49-5422:Melle
++49-5423:Versmold
++49-5424:Bad Rothenfelde
++49-5425:Borgholzhausen
++49-5426:Glandorf
++49-5427:Melle-Buer
++49-5428:Melle-Neuenkirchen
++49-5429:Melle-Wellingholzhausen
++49-5431:Quakenbrück
++49-5432:Löningen
++49-5433:Badbergen
++49-5434:Essen Oldb
++49-5435:Berge b Quakenbrück
++49-5436:Nortrup
++49-5437:Menslage
++49-5438:Bakum-Lüsche
++49-5439:Bersenbrück
++49-5441:Diepholz
++49-5442:Barnstorf Kr Diepholz
++49-5443:Lemförde
++49-5444:Wagenfeld
++49-5445:Drebber
++49-5446:Rehden
++49-5447:Lembruch
++49-5448:Barver
++49-5451:Ibbenbüren
++49-5452:Mettingen Westf
++49-5453:Recke
++49-5454:Hörstel-Riesenbeck
++49-5455:Tecklenburg-Brochterbeck
++49-5456:Westerkappeln-Velpe
++49-5457:Hopsten-Schale
++49-5458:Hopsten
++49-5459:Hörstel
++49-5461:Bramsche Hase
++49-5462:Ankum
++49-5464:Alfhausen
++49-5465:Neuenkirchen b Bramsche
++49-5466:Merzen
++49-5467:Voltlage
++49-5468:Bramsche-Engter
++49-5471:Bohmte
++49-5472:Bad Essen
++49-5473:Ostercappeln
++49-5474:Stemwede-Dielingen
++49-5475:Bohmte-Hunteburg
++49-5476:Ostercappeln-Venne
++49-5481:Lengerich Westf
++49-5482:Tecklenburg
++49-5483:Lienen
++49-5484:Lienen-Kattenvenne
++49-5485:Ladbergen
++49-5491:Damme Dümmer
++49-5492:Steinfeld Oldb
++49-5493:Neuenkirchen Oldb
++49-5494:Holdorf Niedersachs
++49-5495:Neuenkirchen-Vörden
++49-5502:Dransfeld
++49-5503:Nörten-Hardenberg
++49-5504:Friedland Kr Göttingen
++49-5505:Hardegsen
++49-5506:Adelebsen
++49-5507:Ebergötzen
++49-5508:Gleichen-Rittmarshausen
++49-5509:Rosdorf
++49-551:Göttingen
++49-5520:Braunlage
++49-5521:Herzberg a Harz
++49-5522:Osterode a Harz
++49-5523:Bad Sachsa
++49-5524:Bad Lauterberg i Harz
++49-5525:Walkenried
++49-5527:Duderstadt
++49-5528:Gieboldehausen
++49-5529:Rhumspringe
++49-5531:Holzminden
++49-5532:Stadtoldendorf
++49-5533:Bodenwerder
++49-5534:Eschershausen a d Lenne
++49-5535:Polle
++49-5536:Holzminden-Neuhaus
++49-5541:Münden Niedersachs
++49-5542:Witzenhausen
++49-5543:Staufenberg Niedersachs
++49-5544:Reinhardshagen
++49-5545:Münden-Hedemünden
++49-5546:Scheden
++49-5551:Northeim
++49-5552:Katlenburg
++49-5553:Kalefeld
++49-5554:Moringen
++49-5555:Moringen-Fredelsloh
++49-5556:Lindau Harz
++49-5561:Einbeck
++49-5562:Dassel-Markoldendorf
++49-5563:Kreiensen
++49-5564:Dassel
++49-5565:Einbeck
++49-5571:Uslar
++49-5572:Bodenfelde
++49-5573:Uslar-Volpriehausen
++49-5574:Oberweser
++49-5582:St Andreasberg
++49-5583:Braunlage-Hohegeiß
++49-5584:Hattorf a Harz
++49-5585:Herzberg-Sieber
++49-5586:Wieda
++49-5592:Gleichen-Bremke
++49-5593:Bovenden-Lenglern
++49-5594:Bovenden-Reyershausen
++49-5601:Schauenburg
++49-5602:Hessisch Lichtenau
++49-5603:Gudensberg
++49-5604:Großalmerode
++49-5605:Kaufungen
++49-5606:Zierenberg
++49-5607:Fuldatal
++49-5608:Söhrewald
++49-5609:Ahnatal
++49-561:Kassel
++49-5621:Bad Wildungen
++49-5622:Fritzlar
++49-5623:Edertal
++49-5624:Emstal
++49-5625:Naumburg
++49-5626:Zwesten
++49-5631:Korbach
++49-5632:Willingen Upland
++49-5633:Diemelsee
++49-5634:Waldeck-Sachsenhausen
++49-5635:Vöhl
++49-5636:Lichtenfels-Goddelsheim
++49-5641:Warburg
++49-5642:Warburg-Scherfede
++49-5643:Borgentreich
++49-5644:Willebadessen-Peckelsheim
++49-5645:Borgentreich-Borgholz
++49-5646:Willebadessen
++49-5647:Lichtenau-Kleinenberg
++49-5648:Brakel-Gehrden
++49-5650:Cornberg
++49-5651:Eschwege
++49-5652:Bad Sooden-Allendorf
++49-5653:Sontra
++49-5654:Herleshausen
++49-5655:Wanfried
++49-5656:Waldkappel
++49-5657:Meißner
++49-5658:Wehretal
++49-5659:Ringgau
++49-5661:Melsungen
++49-5662:Felsberg Hess
++49-5663:Spangenberg
++49-5664:Morschen
++49-5665:Guxhagen
++49-5671:Hofgeismar
++49-5672:Bad Karlshafen
++49-5673:Immenhausen Hess
++49-5674:Grebenstein
++49-5675:Trendelburg
++49-5676:Liebenau Hess
++49-5677:Calden-Westuffeln
++49-5681:Homberg Efze
++49-5682:Borken Hess
++49-5683:Wabern Hess
++49-5684:Frielendorf
++49-5685:Knüllwald
++49-5686:Schwarzenborn Knüll
++49-5691:Arolsen
++49-5692:Wolfhagen
++49-5693:Volkmarsen
++49-5694:Diemelstadt
++49-5695:Twistetal
++49-5696:Arolsen-Landau
++49-5702:Petershagen-Lahde
++49-5703:Hille
++49-5704:Petershagen-Friedewalde
++49-5705:Petershagen-Windheim
++49-5706:Porta Westfalica
++49-5707:Petershagen
++49-571:Minden Westf
++49-5721:Stadthagen
++49-5722:Bückeburg
++49-5723:Bad Nenndorf
++49-5724:Obernkirchen
++49-5725:Lindhorst b Stadthagen
++49-5726:Wiedensahl
++49-5731:Bad Oeynhausen
++49-5732:Löhne
++49-5733:Vlotho
++49-5734:Bergkirchen Westf
++49-5741:Lübbecke
++49-5742:Preußisch Oldendorf
++49-5743:Espelkamp-Gestringen
++49-5744:Hüllhorst
++49-5745:Stemwede-Levern
++49-5746:Rödinghausen
++49-5751:Rinteln
++49-5752:Auetal-Hattendorf
++49-5753:Auetal-Bernsen
++49-5754:Extertal-Bremke
++49-5755:Kalletal-Varenholz
++49-5761:Stolzenau
++49-5763:Uchte
++49-5764:Steyerberg
++49-5765:Raddestorf
++49-5766:Rehburg-Loccum
++49-5767:Warmsen
++49-5768:Petershagen-Heimsen
++49-5769:Steyerberg-Voigtei
++49-5771:Rahden Westf
++49-5772:Espelkamp
++49-5773:Stemwede-Wehdem
++49-5774:Wagenfeld-Ströhen
++49-5775:Diepenau
++49-5776:Preußisch Ströhen
++49-5777:Diepenau-Essern
++49-5802:Wrestedt
++49-5803:Rosche
++49-5804:Rätzlingen
++49-5805:Oetzen
++49-5806:Barum b Bad Bevensen
++49-5807:Altenmedingen
++49-5808:Gerdau
++49-581:Uelzen
++49-5820:Suhlendorf
++49-5821:Bad Bevensen
++49-5822:Ebstorf
++49-5823:Bienenbüttel
++49-5824:Bodenteich
++49-5825:Wieren
++49-5826:Hitzacker
++49-5827:Unterlüß
++49-5828:Himbergen
++49-5829:Wriedel
++49-5831:Wittingen
++49-5832:Hankensbüttel
++49-5833:Brome
++49-5834:Wittingen-Knesebeck
++49-5835:Wahrenholz
++49-5836:Wittingen-Radenbeck
++49-5837:Sprakensehl
++49-5838:Groß Oesingen
++49-5839:Wittingen-Ohrdorf
++49-5840:Schnackenburg
++49-5841:Lüchow Niedersachs
++49-5842:Schnega
++49-5843:Wustrow
++49-5844:Clenze
++49-5845:Bergen Dumme
++49-5846:Gartow
++49-5848:Trebel
++49-5849:Waddeweitz
++49-5850:Neetze
++49-5851:Dahlenburg
++49-5852:Bleckede
++49-5853:Neu Darchau
++49-5854:Bleckede-Barskamp
++49-5855:Nahrendorf
++49-5857:Bleckede-Brackede
++49-5858:Hitzacker-Wietzetze
++49-5859:Thomasburg
++49-5861:Dannenberg Elbe
++49-5862:Hitzacker
++49-5863:Zernien
++49-5864:Jameln
++49-5865:Gusborn
++49-5872:Stoetze
++49-5873:Eimke
++49-5874:Soltendieck
++49-5875:Emmendorf
++49-5882:Gorleben
++49-5883:Lemgow
++49-5901:Fürstenau b Bramsche
++49-5902:Freren
++49-5903:Emsbüren
++49-5904:Lengerich Emsl
++49-5905:Beesten
++49-5906:Lünne
++49-5907:Geeste
++49-5908:Wietmarschen-Lohne
++49-5909:Wettrup
++49-591:Lingen (Ems)
++49-5921:Nordhorn
++49-5922:Bad Bentheim
++49-5923:Schüttorf
++49-5924:Bad Bentheim-Gildehaus
++49-5925:Wietmarschen
++49-5926:Engden
++49-5931:Meppen
++49-5932:Haren Ems
++49-5933:Lathen
++49-5934:Haren-Rütenbrock
++49-5935:Twist-Schöninghsdorf
++49-5936:Twist
++49-5937:Geeste-Groß Hesepe
++49-5939:Sustrum
++49-5941:Neuenhaus Dinkel
++49-5942:Uelsen
++49-5943:Emlichheim
++49-5944:Hoogstede
++49-5945:Wilsum
++49-5946:Georgsdorf
++49-5947:Laar Vechte
++49-5948:Itterbeck
++49-5951:Werlte
++49-5952:Sögel
++49-5953:Börger
++49-5954:Lorup
++49-5955:Esterwegen
++49-5956:Rastdorf
++49-5957:Lindern Oldb
++49-5961:Haselünne
++49-5962:Herzlake
++49-5963:Bawinkel
++49-5964:Lähden
++49-5965:Klein Berßen
++49-5966:Meppen-Apeldorn
++49-5971:Rheine
++49-5973:Neuenkirchen Kr Steinfurt
++49-5975:Rheine-Mesum
++49-5976:Salzbergen
++49-5977:Spelle
++49-5978:Hörstel-Dreierwalde
++49-6002:Ober-Mörlen
++49-6003:Rosbach v d Höhe
++49-6004:Lich-Eberstadt
++49-6007:Rosbach-Rodheim
++49-6008:Echzell
++49-6020:Heigenbrücken
++49-6021:Aschaffenburg
++49-6022:Obernburg a Main
++49-6023:Alzenau Unterfr
++49-6024:Schöllkrippen
++49-6026:Großostheim
++49-6027:Stockstadt a Main
++49-6028:Sulzbach a Main
++49-6029:Mömbris
++49-6031:Friedberg Hess
++49-6032:Bad Nauheim
++49-6033:Butzbach
++49-6034:Wöllstadt
++49-6035:Reichelsheim Wetterau
++49-6036:Wölfersheim
++49-6039:Karben
++49-6041:Glauburg
++49-6042:Büdingen Hess
++49-6043:Nidda
++49-6044:Schotten Hess
++49-6045:Gedern
++49-6046:Ortenberg Hess
++49-6047:Altenstadt Hess
++49-6048:Büdingen-Eckartshausen
++49-6049:Kefenrod
++49-6050:Biebergemünd
++49-6051:Gelnhausen
++49-6052:Bad Orb
++49-6053:Wächtersbach
++49-6054:Birstein
++49-6055:Freigericht
++49-6056:Bad Soden-Salmünster
++49-6057:Flörsbachtal
++49-6058:Gründau
++49-6059:Jossgrund
++49-6061:Michelstadt
++49-6062:Erbach Odenw
++49-6063:Bad König
++49-6066:Michelstadt-Vielbrunn
++49-6068:Beerfelden
++49-6071:Dieburg
++49-6073:Babenhausen Hess
++49-6074:Rödermark
++49-6078:Groß-Umstadt
++49-6081:Usingen
++49-6082:Niederreifenberg
++49-6083:Weilrod
++49-6084:Schmitten Taunus
++49-6085:Waldsolms
++49-6086:Grävenwiesbach
++49-6087:Waldems
++49-6092:Heimbuchenthal
++49-6093:Laufach
++49-6094:Weibersbrunn
++49-6095:Bessenbach
++49-6096:Wiesen Unterfr
++49-6101:Bad Vilbel
++49-6102:Neu-Isenburg
++49-6103:Langen Hess
++49-6104:Heusenstamm
++49-6105:Mörfelden-Walldorf
++49-6106:Rodgau
++49-6107:Kelsterbach
++49-6108:Mühlheim a Main
++49-6109:Frankfurt-Bergen-Enkheim
++49-611:Wiesbaden
++49-6120:Aarbergen
++49-6122:Hofheim-Wallau
++49-6123:Eltville a Rhein
++49-6124:Bad Schwalbach
++49-6126:Idstein
++49-6127:Niedernhausen Taunus
++49-6128:Taunusstein
++49-6129:Schlangenbad
++49-6130:Schwabenheim a d Selz
++49-6131:Mainz
++49-6132:Ingelheim a Rhein
++49-6133:Oppenheim
++49-6134:Mainz-Kastel
++49-6135:Bodenheim Rhein
++49-6136:Nieder-Olm
++49-6138:Mommenheim
++49-6139:Budenheim
++49-6142:Rüsselsheim
++49-6144:Bischofsheim a Main
++49-6145:Flörsheim a Main
++49-6146:Hochheim a Main
++49-6147:Trebur
++49-6150:Weiterstadt
++49-6151:Darmstadt
++49-6152:Groß-Gerau
++49-6154:Ober-Ramstadt
++49-6155:Griesheim Hess
++49-6157:Pfungstadt
++49-6158:Riedstadt
++49-6159:Messel
++49-6161:Brensbach
++49-6162:Reinheim Odenw
++49-6163:Höchst i Odenw
++49-6164:Reichelsheim Odenw
++49-6165:Breuberg
++49-6166:Fischbachtal
++49-6167:Modautal
++49-6171:Oberursel Taunus
++49-6172:Bad Homburg v d Höhe
++49-6173:Kronberg i Taunus
++49-6174:Königstein i Taunus
++49-6175:Friedrichsdorf Taunus
++49-6181:Hanau
++49-6182:Seligenstadt
++49-6183:Erlensee
++49-6184:Langenselbold
++49-6185:Hammersbach Hess
++49-6186:Großkrotzenburg
++49-6187:Schöneck Hess
++49-6188:Kahl a Main
++49-6190:Hattersheim a Main
++49-6192:Hofheim a Taunus
++49-6195:Kelkheim Taunus
++49-6196:Bad Soden a Taunus
++49-6198:Eppstein
++49-6201:Weinheim Bergstr
++49-6202:Schwetzingen
++49-6203:Ladenburg
++49-6204:Viernheim
++49-6205:Hockenheim
++49-6206:Lampertheim
++49-6207:Wald-Michelbach
++49-6209:Mörlenbach
++49-621:Mannheim, Ludwigshafen
++49-621-1:Mannheim
++49-621-2:Mannheim
++49-621-3:Mannheim
++49-621-4:Mannheim
++49-621-5:Ludwigshafen am Rhein
++49-621-6:Ludwigshafen am Rhein
++49-621-7:Mannheim
++49-621-8:Mannheim
++49-621-90:Mannheim
++49-621-91:Mannheim
++49-621-92:Mannheim
++49-621-93:Mannheim
++49-621-94:Mannheim
++49-621-95:Ludwigshafen am Rhein
++49-621-96:Ludwigshafen am Rhein
++49-621-97:Mannheim
++49-621-98:Mannheim
++49-621-99:Ludwigshafen am Rhein
++49-6220:Wilhelmsfeld
++49-6221:Heidelberg
++49-6222:Wiesloch
++49-6223:Neckargemünd
++49-6224:Sandhausen Baden
++49-6226:Meckesheim
++49-6227:Walldorf Baden
++49-6228:Schönau Odenw
++49-6229:Neckarsteinach
++49-6231:Hochdorf-Assenheim
++49-6232:Speyer
++49-6233:Frankenthal Pfalz
++49-6234:Mutterstadt
++49-6235:Schifferstadt
++49-6236:Neuhofen Pfalz
++49-6237:Maxdorf
++49-6238:Dirmstein
++49-6239:Bobenheim-Roxheim
++49-6241:Worms
++49-6242:Osthofen
++49-6243:Monsheim
++49-6244:Westhofen Rheinhess
++49-6245:Biblis
++49-6246:Eich
++49-6247:Worms-Pfeddersheim
++49-6249:Guntersblum
++49-6251:Bensheim
++49-6252:Heppenheim Bergstr
++49-6253:Fürth Odenw
++49-6254:Lautertal Odenw
++49-6255:Lindenfels
++49-6256:Lampertheim-Hüttenfeld
++49-6257:Seeheim-Jugenheim
++49-6258:Gernsheim
++49-6261:Mosbach Baden
++49-6262:Aglasterhausen
++49-6263:Neckargerach
++49-6264:Neudenau
++49-6265:Billigheim Baden
++49-6266:Haßmersheim
++49-6267:Fahrenbach Baden
++49-6268:Hüffenhardt
++49-6269:Gundelsheim Württ
++49-6271:Eberbach Baden
++49-6272:Hirschhorn Neckar
++49-6274:Waldbrunn Odenw
++49-6275:Rothenberg Odenw
++49-6276:Hesseneck
++49-6281:Buchen Odenw
++49-6282:Walldürn
++49-6283:Hardheim Odenw
++49-6284:Mudau
++49-6285:Walldürn-Altheim
++49-6286:Walldürn-Rippberg
++49-6287:Limbach Baden
++49-6291:Adelsheim
++49-6292:Seckach
++49-6293:Schefflenz
++49-6294:Krautheim Jagst
++49-6295:Rosenberg Baden
++49-6296:Ahorn Baden
++49-6297:Ravenstein Baden
++49-6298:Möckmühl
++49-6301:Otterbach Pfalz
++49-6302:Winnweiler
++49-6303:Enkenbach-Alsenborn
++49-6304:Wolfstein Pfalz
++49-6305:Hochspeyer
++49-6306:Trippstadt
++49-6307:Schopp
++49-6308:Olsbrücken
++49-631:Kaiserslautern
++49-6321:Neustadt a d Weinstraße
++49-6322:Bad Dürkheim
++49-6323:Edenkoben
++49-6324:Haßloch
++49-6325:Lambrecht Pfalz
++49-6326:Deidesheim
++49-6327:Neustadt-Lachen
++49-6328:Elmstein
++49-6329:Weidenthal Pfalz
++49-6331:Pirmasens
++49-6332:Zweibrücken
++49-6333:Waldfischbach-Burgalben
++49-6334:Thaleischweiler-Fröschen
++49-6335:Trulben
++49-6336:Dellfeld
++49-6337:Großbundenbach
++49-6338:Hornbach Pfalz
++49-6339:Großsteinhausen
++49-6340:Wörth-Schaidt
++49-6341:Landau i d Pfalz
++49-6342:Schweigen-Rechtenbach
++49-6343:Bad Bergzabern
++49-6344:Schwegenheim
++49-6345:Albersweiler
++49-6346:Annweiler a Trifels
++49-6347:Hochstadt Pfalz
++49-6348:Offenbach a d Queich
++49-6349:Billigheim-Ingenheim
++49-6351:Eisenberg Pfalz
++49-6352:Kirchheimbolanden
++49-6353:Freinsheim
++49-6355:Albisheim Pfrimm
++49-6356:Carlsberg Pfalz
++49-6357:Standenbühl
++49-6358:Kriegsfeld
++49-6359:Grünstadt
++49-6361:Rockenhausen
++49-6362:Alsenz
++49-6363:Niederkirchen
++49-6364:Nußbach Pfalz
++49-6371:Landstuhl
++49-6372:Bruchmühlbach-Miesau
++49-6373:Schönenberg-Kübelberg
++49-6374:Weilerbach
++49-6375:Wallhalben
++49-6381:Kusel
++49-6382:Lauterecken
++49-6383:Glan-Münchweiler
++49-6384:Konken
++49-6385:Reichenbach-Steegen
++49-6386:Altenkirchen Pfalz
++49-6387:St Julian
++49-6391:Dahn
++49-6392:Hauenstein Pfalz
++49-6393:Fischbach b Dahn
++49-6394:Bundenthal
++49-6395:Münchweiler a d Rodalb
++49-6396:Hinterweidenthal
++49-6397:Leimen Pfalz
++49-6398:Vorderweidenthal
++49-6400:Mücke
++49-6401:Grünberg Hess
++49-6402:Hungen
++49-6403:Linden Hess
++49-6404:Lich Hess
++49-6405:Laubach Hess
++49-6406:Lollar
++49-6407:Rabenau
++49-6408:Buseck
++49-6409:Biebertal
++49-641:Gießen
++49-6420:Lahntal
++49-6421:Marburg
++49-6422:Kirchhain
++49-6423:Wetter Hess
++49-6424:Ebsdorfergrund
++49-6425:Rauschenberg Hess
++49-6426:Fronhausen
++49-6427:Cölbe-Schönstadt
++49-6428:Stadtallendorf
++49-6429:Schweinsberg Hessen
++49-6430:Hahnstätten
++49-6431:Limburg a d Lahn
++49-6432:Diez
++49-6433:Hadamar
++49-6434:Bad Camberg
++49-6435:Wallmerod
++49-6436:Dornburg
++49-6438:Hünfelden
++49-6439:Holzappel
++49-6440:Kölschhausen
++49-6441:Wetzlar
++49-6442:Braunfels
++49-6443:Ehringshausen Dill
++49-6444:Bischoffen
++49-6445:Schöffengrund
++49-6446:Hohenahr
++49-6447:Langgöns-Niederkleen
++49-6449:Ehringshausen
++49-6451:Frankenberg Eder
++49-6452:Battenberg Eder
++49-6453:Gemünden Wohra
++49-6454:Lichtenfels-Sachsenberg
++49-6455:Frankenau Hess
++49-6456:Haina Kloster
++49-6457:Burgwald Eder
++49-6458:Rosenthal Hess
++49-6461:Biedenkopf
++49-6462:Gladenbach
++49-6464:Angelburg-Gönnern
++49-6465:Breidenbach b Biedenkopf
++49-6466:Dautphetal-Friedensdorf
++49-6467:Hatzfeld Eder
++49-6468:Dautphetal-Mornshausen
++49-6471:Weilburg
++49-6472:Weilmünster
++49-6473:Leun
++49-6474:Villmar
++49-6475:Weilmünster-Wolfenhausen
++49-6476:Mengerskirchen
++49-6477:Greifenstein-Nenderoth
++49-6478:Greifenstein-Ulm
++49-6479:Waldbrunn Westerw
++49-6482:Runkel
++49-6483:Selters Taunus
++49-6484:Beselich
++49-6485:Nentershausen Westerw
++49-6486:Katzenelnbogen
++49-6500:Waldrach
++49-6501:Konz
++49-6502:Schweich
++49-6503:Hermeskeil
++49-6504:Thalfang
++49-6505:Kordel
++49-6506:Welschbillig
++49-6507:Neumagen-Dhron
++49-6508:Hetzerath Mosel
++49-6509:Büdlich
++49-651:Trier
++49-6522:Mettendorf
++49-6523:Holsthum
++49-6524:Rodershausen
++49-6525:Irrel
++49-6526:Bollendorf
++49-6527:Oberweis
++49-6531:Bernkastel-Kues
++49-6532:Zeltingen-Rachtig
++49-6533:Morbach Hunsrück
++49-6534:Mülheim Mosel
++49-6535:Osann-Monzel
++49-6536:Kleinich
++49-6541:Traben-Trarbach
++49-6542:Bullay
++49-6543:Büchenbeuren
++49-6544:Rhaunen
++49-6545:Blankenrath
++49-6550:Irrhausen
++49-6551:Prüm
++49-6552:Olzheim
++49-6553:Schönecken
++49-6554:Waxweiler
++49-6555:Bleialf
++49-6556:Pronsfeld
++49-6557:Hallschlag
++49-6558:Büdesheim Eifel
++49-6559:Leidenborn
++49-6561:Bitburg
++49-6562:Speicher
++49-6563:Kyllburg
++49-6564:Neuerburg Eifel
++49-6565:Dudeldorf
++49-6566:Körperich
++49-6567:Oberkail
++49-6568:Wolsfeld
++49-6569:Bickendorf
++49-6571:Wittlich
++49-6572:Manderscheid Eifel
++49-6573:Gillenfeld
++49-6574:Hasborn
++49-6575:Landscheid
++49-6578:Salmtal
++49-6580:Zemmer
++49-6581:Saarburg
++49-6582:Freudenburg
++49-6583:Palzem
++49-6584:Wellen Mosel
++49-6585:Ralingen
++49-6586:Beuren Hochwald
++49-6587:Zerf
++49-6588:Pluwig
++49-6589:Kell
++49-6591:Gerolstein
++49-6592:Daun
++49-6593:Hillesheim Eifel
++49-6594:Birresborn
++49-6595:Dockweiler
++49-6596:Üdersdorf
++49-6597:Jünkerath
++49-6599:Weidenbach b Gerolstein
++49-661:Fulda
++49-6620:Philippsthal Werra
++49-6621:Bad Hersfeld
++49-6622:Bebra
++49-6623:Rotenburg a d Fulda
++49-6624:Heringen Werra
++49-6625:Niederaula
++49-6626:Wildeck-Obersuhl
++49-6627:Nentershausen Hess
++49-6628:Oberaula
++49-6629:Schenklengsfeld
++49-6630:Schwalmtal-Storndorf
++49-6631:Alsfeld
++49-6633:Homberg Ohm
++49-6634:Gemünden Felda
++49-6635:Kirtorf
++49-6636:Romrod
++49-6637:Feldatal
++49-6638:Schwalmtal-Renzendorf
++49-6639:Ottrau
++49-6641:Lauterbach Hess
++49-6642:Schlitz
++49-6643:Herbstein
++49-6644:Grebenhain
++49-6645:Ulrichstein
++49-6646:Grebenau
++49-6647:Herbstein-Stockhausen
++49-6648:Bad Salzschlirf
++49-6650:Hosenfeld
++49-6651:Rasdorf
++49-6652:Hünfeld
++49-6653:Burghaun
++49-6654:Gersfeld Rhön
++49-6655:Neuhof Kr Fulda
++49-6656:Ebersburg
++49-6657:Hofbieber
++49-6658:Poppenhausen Wasserkuppe
++49-6659:Eichenzell
++49-6660:Steinau-Marjoß
++49-6661:Schlüchtern
++49-6663:Steinau a d Straße
++49-6664:Sinntal-Sterbfritz
++49-6665:Sinntal-Altengronau
++49-6666:Freiensteinau
++49-6667:Steinau-Ulmbach
++49-6668:Birstein-Lichenroth
++49-6669:Neuhof-Hauswurz
++49-6670:Ludwigsau Hess
++49-6672:Eiterfeld
++49-6673:Haunetal
++49-6674:Friedewald Hess
++49-6675:Breitenbach a Herzberg
++49-6676:Hohenroda
++49-6677:Neuenstein Hess
++49-6678:Wildeck-Hönebach
++49-6681:Hilders
++49-6682:Tann Rhön
++49-6683:Ehrenberg
++49-6684:Hofbieber-Schwarzbach
++49-6691:Schwalmstadt
++49-6692:Neustadt Hess
++49-6693:Neuental
++49-6694:Neukirchen Knüll
++49-6695:Jesberg
++49-6696:Gilserberg
++49-6697:Willingshausen
++49-6698:Schrecksbach
++49-6701:Sprendlingen Rheinhess
++49-6703:Wöllstein Rheinhess
++49-6704:Langenlonsheim
++49-6706:Wallhausen Nahe
++49-6707:Windesheim
++49-6708:Bad Münster-Ebernburg
++49-6709:Fürfeld Kr Bad Kreuznach
++49-671:Bad Kreuznach
++49-6721:Bingen a Rhein
++49-6722:Rüdesheim a Rhein
++49-6723:Oestrich-Winkel
++49-6724:Stromberg Hunsrück
++49-6725:Gau-Algesheim
++49-6726:Lorch Rheingau
++49-6727:Gensingen
++49-6728:Ober-Hilbersheim
++49-6731:Alzey
++49-6732:Wörrstadt
++49-6733:Gau-Odernheim
++49-6734:Flonheim
++49-6735:Eppelsheim
++49-6736:Bechenheim
++49-6737:Köngernheim
++49-6741:St Goar
++49-6742:Boppard
++49-6743:Bacharach
++49-6744:Oberwesel
++49-6745:Gondershausen
++49-6746:Pfalzfeld
++49-6747:Emmelshausen
++49-6751:Sobernheim
++49-6752:Kirn Nahe
++49-6753:Meisenheim
++49-6754:Martinstein
++49-6755:Odernheim a Glan
++49-6756:Winterbach, Soonwald
++49-6757:Becherbach b Kirn
++49-6758:Waldböckelheim
++49-6761:Simmern Hunsrück
++49-6762:Kastellaun
++49-6763:Kirchberg Hunsrück
++49-6764:Rheinböllen
++49-6765:Gemünden Hunsrück
++49-6766:Kisselbach
++49-6771:St Goarshausen
++49-6772:Nastätten
++49-6773:Kamp-Bornhofen
++49-6774:Kaub
++49-6775:Strüth Taunus
++49-6776:Dachsenhausen
++49-6781:Idar-Oberstein
++49-6782:Birkenfeld Nahe
++49-6783:Baumholder
++49-6784:Weierbach
++49-6785:Herrstein
++49-6786:Kempfeld
++49-6787:Niederbrombach
++49-6788:Sien
++49-6789:Heimbach Nahe
++49-6802:Völklingen-Lauterbach
++49-6803:Mandelbachtal-Ommersheim
++49-6804:Mandelbachtal
++49-6805:Kleinblittersdorf
++49-6806:Heusweiler
++49-6809:Großrosseln
++49-681:Saarbrücken
++49-6821:Neunkirchen Saar
++49-6824:Ottweiler
++49-6825:Illingen Saar
++49-6826:Bexbach
++49-6827:Eppelborn
++49-6831:Saarlouis
++49-6832:Beckingen-Reimsbach
++49-6833:Rehlingen-Siersburg
++49-6834:Bous
++49-6835:Beckingen
++49-6836:Überherrn
++49-6837:Wallerfangen
++49-6838:Saarwellingen
++49-6841:Homburg Saar
++49-6842:Blieskastel
++49-6843:Gersheim
++49-6844:Blieskastel-Altheim
++49-6848:Homburg-Einöd
++49-6849:Kirkel
++49-6851:St Wendel
++49-6852:Nohfelden
++49-6853:Marpingen
++49-6854:Oberthal Saar
++49-6855:Freisen
++49-6856:St Wendel-Niederkirchen
++49-6857:Namborn
++49-6858:Ottweiler-Fürth
++49-6861:Merzig
++49-6864:Mettlach
++49-6865:Mettlach-Orscholz
++49-6866:Perl-Nennig
++49-6867:Perl
++49-6868:Mettlach-Tünsdorf
++49-6869:Merzig-Silwingen
++49-6871:Wadern
++49-6872:Losheim Saar
++49-6873:Nonnweiler
++49-6874:Wadern-Nunkirchen
++49-6875:Nonnweiler-Primstal
++49-6876:Weiskirchen Saar
++49-6881:Lebach
++49-6887:Schmelz Saar
++49-6888:Lebach-Steinbach
++49-6893:Saarbrücken-Ensheim
++49-6894:St Ingbert
++49-6897:Sulzbach Saar
++49-6898:Völklingen
++49-69:Frankfurt a Main
++49-7021:Kirchheim Unter Teck
++49-7022:Nürtingen
++49-7023:Weilheim a d Teck
++49-7024:Wendlingen a Neckar
++49-7025:Neuffen
++49-7026:Lenningen
++49-7031:Böblingen
++49-7032:Herrenberg
++49-7033:Weil Der Stadt
++49-7034:Ehningen
++49-7041:Mühlacker
++49-7042:Vaihingen a d Enz
++49-7043:Maulbronn
++49-7044:Mönsheim
++49-7045:Oberderdingen
++49-7046:Zaberfeld
++49-7051:Calw
++49-7052:Bad Liebenzell
++49-7053:Bad Teinach-Zavelstein
++49-7054:Wildberg Württ
++49-7055:Neuweiler Kr Calw
++49-7056:Gechingen
++49-7062:Beilstein Württ
++49-7063:Bad Wimpfen
++49-7066:Bad Rappenau-Bonfeld
++49-7071:Tübingen
++49-7072:Gomaringen
++49-7073:Ammerbuch
++49-7081:Wildbad i Schwarzw
++49-7082:Neuenbürg Württ
++49-7083:Bad Herrenalb
++49-7084:Schömberg b Neuenbürg
++49-7085:Enzklösterle
++49-711:Stuttgart
++49-7121:Reutlingen
++49-7122:St Johann Württ
++49-7123:Metzingen Württ
++49-7124:Trochtelfingen Hohenz
++49-7125:Bad Urach
++49-7126:Burladingen-Melchingen
++49-7127:Neckartenzlingen
++49-7128:Sonnenbühl
++49-7129:Lichtenstein Württ
++49-7130:Löwenstein Württ
++49-7131:Heilbronn Neckar
++49-7132:Neckarsulm
++49-7133:Lauffen a Neckar
++49-7134:Weinsberg
++49-7135:Brackenheim
++49-7136:Bad Friedrichshall
++49-7138:Schwaigern
++49-7139:Neuenstadt a Kocher
++49-7141:Ludwigsburg Württ
++49-7142:Bietigheim-Bissingen
++49-7143:Besigheim
++49-7144:Marbach a Neckar
++49-7145:Markgröningen
++49-7146:Remseck a Neckar
++49-7147:Sachsenheim Württ
++49-7148:Großbottwar
++49-7150:Korntal-Münchingen
++49-7151:Waiblingen
++49-7152:Leonberg Württ
++49-7153:Plochingen
++49-7154:Kornwestheim
++49-7156:Ditzingen
++49-7157:Waldenbuch
++49-7158:Neuhausen Auf Den Fildern
++49-7159:Renningen
++49-7161:Göppingen
++49-7162:Süßen
++49-7163:Ebersbach a d Fils
++49-7164:Boll Kr Göppingen
++49-7165:Göppingen-Hohenstaufen
++49-7166:Adelberg
++49-7171:Schwäbisch Gmünd
++49-7172:Lorch Württ
++49-7173:Heubach
++49-7174:Mögglingen
++49-7175:Leinzell
++49-7176:Spraitbach
++49-7181:Schorndorf Württ
++49-7182:Welzheim
++49-7183:Rudersberg Württ
++49-7184:Kaisersbach
++49-7191:Backnang
++49-7192:Murrhardt
++49-7193:Sulzbach a d Murr
++49-7194:Spiegelberg
++49-7195:Winnenden
++49-7202:Karlsbad
++49-7203:Walzbachtal
++49-7204:Malsch-Völkersbach
++49-721:Karlsruhe
++49-7220:Forbach-Hundsbach
++49-7221:Baden-Baden
++49-7222:Rastatt
++49-7223:Bühl Baden
++49-7224:Gernsbach
++49-7225:Gaggenau
++49-7226:Bühl-Sand
++49-7227:Lichtenau Baden
++49-7228:Forbach
++49-7229:Iffezheim
++49-7231:Pforzheim
++49-7232:Königsbach-Stein
++49-7233:Niefern-Öschelbronn
++49-7234:Tiefenbronn
++49-7235:Unterreichenbach Kr Calw
++49-7236:Keltern
++49-7237:Neulingen
++49-7240:Pfinztal
++49-7242:Rheinstetten
++49-7243:Ettlingen
++49-7244:Weingarten Baden
++49-7245:Durmersheim
++49-7246:Malsch
++49-7247:Linkenheim-Hochstetten
++49-7248:Marxzell
++49-7249:Stutensee
++49-7250:Kraichtal
++49-7251:Bruchsal
++49-7252:Bretten
++49-7253:Bad Schönborn
++49-7254:Waghäusel
++49-7255:Graben-Neudorf
++49-7256:Philippsburg
++49-7257:Bruchsal-Untergrombach
++49-7258:Oberderdingen-Flehingen
++49-7259:Östringen-Odenheim
++49-7260:Sinsheim-Hilsbach
++49-7261:Sinsheim
++49-7262:Eppingen
++49-7263:Waibstadt
++49-7264:Bad Rappenau
++49-7265:Angelbachtal
++49-7266:Kirchardt
++49-7267:Gemmingen
++49-7268:Bad Rappenau-Obergimpern
++49-7269:Sulzfeld
++49-7271:Wörth a Rhein
++49-7272:Rülzheim
++49-7273:Hagenbach Pfalz
++49-7274:Germersheim
++49-7275:Kandel
++49-7276:Herxheim b Landau
++49-7277:Wörth-Büchelberg
++49-7300:Roggenburg
++49-7302:Pfaffenhofen a d Roth
++49-7303:Illertissen
++49-7304:Blaustein Württ
++49-7305:Erbach Donau
++49-7306:Vöhringen Iller
++49-7307:Senden Iller
++49-7308:Nersingen
++49-7309:Weißenhorn
++49-731:Ulm Donau
++49-7321:Heidenheim a d Brenz
++49-7322:Giengen a d Brenz
++49-7323:Gerstetten
++49-7324:Herbrechtingen
++49-7325:Sontheim a d Brenz
++49-7326:Neresheim
++49-7327:Dischingen
++49-7328:Königsbronn
++49-7329:Steinheim a Albuch
++49-7331:Geislingen a d Steige
++49-7332:Lauterstein
++49-7333:Laichingen
++49-7334:Deggingen
++49-7335:Wiesensteig
++49-7336:Lonsee
++49-7337:Nellingen Alb
++49-7340:Neenstetten
++49-7343:Buch b Illertissen
++49-7344:Blaubeuren
++49-7345:Langenau Württ
++49-7346:Illerkirchberg
++49-7347:Dietenheim
++49-7348:Beimerstetten
++49-7351:Biberach a d Riß
++49-7352:Ochsenhausen
++49-7353:Schwendi
++49-7354:Erolzheim
++49-7355:Hochdorf Riß
++49-7356:Schemmerhofen
++49-7357:Attenweiler
++49-7358:Eberhardzell-Füramos
++49-7361:Aalen
++49-7362:Bopfingen
++49-7363:Lauchheim
++49-7364:Oberkochen
++49-7365:Essingen Württ
++49-7366:Abtsgmünd
++49-7367:Aalen-Ebnat
++49-7371:Riedlingen Württ
++49-7373:Zwiefalten
++49-7374:Uttenweiler
++49-7375:Obermarchtal
++49-7376:Langenenslingen
++49-7381:Münsingen
++49-7382:Römerstein
++49-7383:Münsingen-Buttenhausen
++49-7384:Schelklingen-Hütten
++49-7385:Gomadingen
++49-7386:Hayingen
++49-7387:Hohenstein Württ
++49-7388:Pfronstetten
++49-7389:Heroldstatt
++49-7391:Ehingen Donau
++49-7392:Laupheim
++49-7393:Munderkingen
++49-7394:Schelklingen
++49-7395:Ehingen
++49-7402:Fluorn-Winzeln
++49-7403:Dunningen
++49-7404:Epfendorf
++49-741:Rottweil
++49-7420:Deißlingen
++49-7422:Schramberg
++49-7423:Oberndorf a Neckar
++49-7424:Spaichingen
++49-7425:Trossingen
++49-7426:Gosheim
++49-7427:Schömberg b Balingen
++49-7428:Rosenfeld
++49-7429:Egesheim
++49-7431:Albstadt-Ebingen
++49-7432:Albstadt-Tailfingen
++49-7433:Balingen
++49-7434:Winterlingen
++49-7435:Albstadt-Laufen
++49-7436:Meßstetten-Oberdigisheim
++49-7440:Bad Rippoldsau
++49-7441:Freudenstadt
++49-7442:Baiersbronn
++49-7443:Dornstetten
++49-7444:Alpirsbach
++49-7445:Pfalzgrafenweiler
++49-7446:Loßburg
++49-7447:Baiersbronn-Schwarzenberg
++49-7448:Seewald
++49-7449:Baiersbronn-Obertal
++49-7451:Horb a Neckar
++49-7452:Nagold
++49-7453:Altensteig Württ
++49-7454:Sulz a Neckar
++49-7455:Dornhan
++49-7456:Haiterbach
++49-7457:Rottenburg-Ergenzingen
++49-7458:Ebhausen
++49-7459:Nagold-Hochdorf
++49-7461:Tuttlingen
++49-7462:Immendingen
++49-7463:Mühlheim a d Donau
++49-7464:Talheim Kr Tuttlingen
++49-7465:Emmingen-Liptingen
++49-7466:Beuron
++49-7467:Neuhausen Ob Eck
++49-7471:Hechingen
++49-7472:Rottenburg a Neckar
++49-7473:Mössingen
++49-7474:Haigerloch
++49-7475:Burladingen
++49-7476:Bisingen
++49-7477:Jungingen b Hechingen
++49-7478:Hirrlingen
++49-7482:Horb-Dettingen
++49-7483:Horb-Mühringen
++49-7484:Simmersfeld
++49-7485:Empfingen
++49-7486:Horb-Altheim
++49-7502:Wolpertswende
++49-7503:Wilhelmsdorf Württ
++49-7504:Horgenzell
++49-7505:Fronreute
++49-7506:Wangen-Leupolz
++49-751:Ravensburg
++49-7520:Bodnegg
++49-7522:Wangen i Allgäu
++49-7524:Bad Waldsee
++49-7525:Aulendorf
++49-7527:Wolfegg
++49-7528:Neukirch b Tettnang
++49-7529:Waldburg Württ
++49-7531:Konstanz
++49-7532:Meersburg
++49-7533:Allensbach
++49-7534:Reichenau Baden
++49-7541:Friedrichshafen
++49-7542:Tettnang
++49-7543:Kressbronn a Bodensee
++49-7544:Markdorf
++49-7545:Immenstaad a Bodensee
++49-7546:Oberteuringen
++49-7551:Überlingen Bodensee
++49-7552:Pfullendorf
++49-7553:Salem Baden
++49-7554:Heiligenberg Baden
++49-7555:Deggenhausertal
++49-7556:Uhldingen-Mühlhofen
++49-7557:Herdwangen-Schönach
++49-7558:Illmensee
++49-7561:Leutkirch i Allgäu
++49-7562:Isny i Allgäu
++49-7563:Kißlegg
++49-7564:Bad Wurzach
++49-7565:Aichstetten Kr Ravensburg
++49-7566:Argenbühl
++49-7567:Leutkirch-Friesenhofen
++49-7568:Bad Wurzach-Hauerz
++49-7569:Isny-Eisenbach
++49-7570:Sigmaringen-Gutenstein
++49-7571:Sigmaringen
++49-7572:Mengen Württ
++49-7573:Stetten a Kalten Markt
++49-7574:Gammertingen
++49-7575:Meßkirch
++49-7576:Krauchenwies
++49-7577:Veringenstadt
++49-7578:Wald Hohenz
++49-7579:Schwenningen Baden
++49-7581:Saulgau
++49-7582:Bad Buchau
++49-7583:Bad Schussenried
++49-7584:Altshausen
++49-7585:Ostrach
++49-7586:Herbertingen
++49-7587:Hoßkirch
++49-7602:Oberried Breisgau
++49-761:Freiburg i Breisgau
++49-7620:Schopfheim-Gersbach
++49-7621:Lörrach
++49-7622:Schopfheim
++49-7623:Rheinfelden Baden
++49-7624:Grenzach-Wyhlen
++49-7625:Zell i Wiesental
++49-7626:Kandern
++49-7627:Steinen Kr Lörrach
++49-7628:Efringen-Kirchen
++49-7629:Tegernau Baden
++49-7631:Müllheim Baden
++49-7632:Badenweiler
++49-7633:Staufen Breisgau
++49-7634:Sulzburg
++49-7635:Schliengen
++49-7636:Münstertal Schwarzw
++49-7641:Emmendingen
++49-7642:Endingen Kaiserstuhl
++49-7643:Herbolzheim Breisgau
++49-7644:Kenzingen
++49-7645:Freiamt
++49-7646:Weisweil Breisgau
++49-7651:Titisee-Neustadt
++49-7652:Hinterzarten
++49-7653:Lenzkirch
++49-7654:Löffingen
++49-7655:Feldberg-Altglashütten
++49-7656:Schluchsee
++49-7657:Eisenbach Hochschwarzw
++49-7660:St Peter Schwarzw
++49-7661:Kirchzarten
++49-7662:Vogtsburg i Kaiserstuhl
++49-7663:Eichstetten
++49-7664:Freiburg-Tiengen
++49-7665:March Breisgau
++49-7666:Denzlingen
++49-7667:Breisach a Rhein
++49-7668:Ihringen
++49-7669:St Märgen
++49-7671:Todtnau
++49-7672:St Blasien
++49-7673:Schönau i Schwarzw
++49-7674:Todtmoos
++49-7675:Bernau Baden
++49-7676:Feldberg Schwarzw
++49-7681:Waldkirch Breisgau
++49-7682:Elzach
++49-7683:Simonswald
++49-7684:Glottertal
++49-7685:Gutach-Bleibach
++49-7702:Blumberg Baden
++49-7703:Bonndorf i Schwarzw
++49-7704:Geisingen Baden
++49-7705:Wolterdingen Schwarzw
++49-7706:Oberbaldingen
++49-7707:Bräunlingen
++49-7708:Geisingen-Leipferdingen
++49-7709:Wutach
++49-771:Donaueschingen
++49-7720:Schwenningen a Neckar
++49-7721:Villingen i Schwarzw
++49-7722:Triberg i Schwarzw
++49-7723:Furtwangen
++49-7724:St Georgen i Schwarzw
++49-7725:Königsfeld i Schwarzwald
++49-7726:Bad Dürrheim
++49-7727:Vöhrenbach
++49-7728:Niedereschach
++49-7729:Tennenbronn
++49-7731:Singen Hohentwiel
++49-7732:Radolfzell a Bodensee
++49-7733:Engen Hegau
++49-7734:Gailingen
++49-7735:Öhningen
++49-7736:Tengen
++49-7738:Steißlingen
++49-7739:Hilzingen
++49-7741:Tiengen Hochrhein
++49-7742:Klettgau
++49-7743:Ühlingen
++49-7744:Stühlingen
++49-7745:Jestetten
++49-7746:Wutöschingen
++49-7747:Berau
++49-7748:Grafenhausen Hochschwarzw
++49-7751:Waldshut
++49-7753:Albbruck
++49-7754:Görwihl
++49-7755:Weilheim Kr Waldshut
++49-7761:Bad Säckingen
++49-7762:Wehr Baden
++49-7763:Murg
++49-7764:Herrischried
++49-7765:Rickenbach Hotzenw
++49-7771:Stockach
++49-7773:Bodman-Ludwigshafen
++49-7774:Eigeltingen
++49-7775:Mühlingen
++49-7777:Sauldorf
++49-7802:Oberkirch Baden
++49-7803:Gengenbach
++49-7804:Oppenau
++49-7805:Appenweier
++49-7806:Bad Peterstal-Griesbach
++49-7807:Neuried Ortenaukreis
++49-7808:Hohberg b Offenburg
++49-781:Offenburg
++49-7821:Lahr Schwarzw
++49-7822:Ettenheim
++49-7823:Seelbach Schutter
++49-7824:Schwanau
++49-7825:Kippenheim
++49-7826:Schuttertal
++49-7831:Hausach
++49-7832:Haslach i Kinzigtal
++49-7833:Hornberg Schwarzwaldbahn
++49-7834:Wolfach
++49-7835:Zell a Harmersbach
++49-7836:Schiltach
++49-7837:Oberharmersbach
++49-7838:Nordrach
++49-7839:Schapbach
++49-7841:Achern
++49-7842:Kappelrodeck
++49-7843:Renchen
++49-7844:Rheinau
++49-7851:Kehl
++49-7852:Willstätt
++49-7853:Kehl-Bodersweier
++49-7854:Kehl-Goldscheuer
++49-7903:Mainhardt
++49-7904:Ilshofen
++49-7905:Langenburg
++49-7906:Braunsbach
++49-7907:Schwäbisch Hall-Sulzdorf
++49-791:Schwäbisch Hall
++49-7930:Boxberg Baden
++49-7931:Bad Mergentheim
++49-7932:Niederstetten Württ
++49-7933:Creglingen
++49-7934:Weikersheim
++49-7935:Schrozberg
++49-7936:Schrozberg-Bartenstein
++49-7937:Dörzbach
++49-7938:Mulfingen Jagst
++49-7939:Schrozberg-Spielbach
++49-7940:Künzelsau
++49-7941:Öhringen
++49-7942:Neuenstein Württ
++49-7943:Schöntal Jagst
++49-7944:Kupferzell
++49-7945:Wüstenrot
++49-7946:Bretzfeld
++49-7947:Forchtenberg
++49-7948:Öhringen-Ohrnberg
++49-7949:Pfedelbach-Untersteinbach
++49-7950:Schnelldorf Mittelfr
++49-7951:Crailsheim
++49-7952:Gerabronn
++49-7953:Blaufelden
++49-7954:Kirchberg a d Jagst
++49-7955:Wallhausen Württ
++49-7957:Kreßberg
++49-7958:Rot Am See-Brettheim
++49-7959:Frankenhardt
++49-7961:Ellwangen Jagst
++49-7962:Fichtenau
++49-7963:Adelmannsfelden
++49-7964:Stödtlen
++49-7965:Ellwangen-Röhlingen
++49-7966:Unterschneidheim
++49-7967:Jagstzell
++49-7971:Gaildorf
++49-7972:Gschwend b Gaildorf
++49-7973:Obersontheim
++49-7974:Bühlerzell
++49-7975:Untergröningen
++49-7976:Sulzbach-Laufen
++49-7977:Oberrot b Gaildorf
++49-8020:Weyarn
++49-8021:Waakirchen
++49-8022:Tegernsee
++49-8023:Bayrischzell
++49-8024:Holzkirchen Oberbay
++49-8025:Miesbach
++49-8026:Hausham
++49-8027:Dietramszell
++49-8028:Fischbachau
++49-8029:Kreuth b Tegernsee
++49-8031:Rosenheim Oberbay
++49-8032:Rohrdorf Kr Rosenheim
++49-8033:Oberaudorf
++49-8034:Brannenburg
++49-8035:Raubling
++49-8036:Stephanskirchen Simssee
++49-8038:Vogtareuth
++49-8039:Rott a Inn
++49-8041:Bad Tölz
++49-8042:Lenggries
++49-8043:Jachenau
++49-8045:Lenggries-Fall
++49-8046:Bad Heilbrunn
++49-8051:Prien a Chiemsee
++49-8052:Aschau i Chiemgau
++49-8053:Bad Endorf
++49-8054:Breitbrunn a Chiemsee
++49-8055:Halfing
++49-8056:Eggstätt
++49-8057:Aschau-Sachrang
++49-8061:Bad Aibling
++49-8062:Bruckmühl Mangfall
++49-8063:Feldkirchen-Westerham
++49-8064:Au b Bad Aibling
++49-8065:Tuntenhausen-Schönau
++49-8066:Bad Feilnbach
++49-8067:Tuntenhausen
++49-8071:Wasserburg a Inn
++49-8072:Haag Oberbay
++49-8073:Gars a Inn
++49-8074:Schnaitsee
++49-8075:Amerang
++49-8076:Pfaffing a d Attel
++49-8081:Dorfen Stadt
++49-8082:Schwindegg
++49-8083:Isen
++49-8084:Taufkirchen Vils
++49-8085:St Wolfgang Kr Erding
++49-8086:Buchbach Oberbay
++49-8091:Kirchseeon
++49-8092:Grafing b München
++49-8093:Glonn Kr Ebersberg
++49-8094:Steinhöring
++49-8095:Aying
++49-8102:Höhenkirchen
++49-8104:Sauerlach
++49-8105:Gilching
++49-8106:Vaterstetten
++49-811:Hallbergmoos
++49-8121:Markt Schwaben
++49-8122:Erding
++49-8123:Moosinning
++49-8124:Forstern Oberbay
++49-8131:Dachau
++49-8133:Haimhausen Oberbay
++49-8134:Odelzhausen
++49-8135:Sulzemoos
++49-8136:Markt Indersdorf
++49-8137:Petershausen
++49-8138:Schwabhausen b Dachau
++49-8139:Röhrmoos
++49-8141:Fürstenfeldbruck
++49-8142:Olching
++49-8143:Inning a Ammersee
++49-8144:Grafrath
++49-8145:Mammendorf
++49-8146:Moorenweis
++49-8151:Starnberg
++49-8152:Herrsching a Ammersee
++49-8153:Weßling
++49-8157:Feldafing
++49-8158:Tutzing
++49-8161:Freising
++49-8165:Neufahrn b Freising
++49-8166:Allershausen Oberbay
++49-8167:Zolling
++49-8168:Attenkirchen
++49-8170:Straßlach-Dingharting
++49-8171:Wolfratshausen
++49-8176:Egling b Wolfratshausen
++49-8177:Münsing Starnberger See
++49-8178:Icking
++49-8179:Eurasburg a d Isar
++49-8191:Landsberg a Lech
++49-8192:Schondorf a Ammersee
++49-8193:Geltendorf
++49-8194:Vilgertshofen
++49-8195:Weil Kr Landsberg
++49-8196:Pürgen
++49-8202:Althegnenberg
++49-8203:Großaitingen
++49-8204:Mickhausen
++49-8205:Dasing
++49-8206:Egling
++49-8207:Affing
++49-8208:Eurasburg b Augsburg
++49-821:Augsburg
++49-8221:Günzburg
++49-8222:Burgau Schwab
++49-8223:Ichenhausen
++49-8224:Offingen Donau
++49-8225:Jettingen-Scheppach
++49-8226:Bibertal
++49-8230:Gablingen
++49-8231:Königsbrunn b Augsburg
++49-8232:Schwabmünchen
++49-8233:Kissing
++49-8234:Bobingen
++49-8236:Fischach
++49-8237:Aindling
++49-8238:Gessertshausen
++49-8239:Langenneufnach
++49-8241:Buchloe
++49-8243:Fuchstal
++49-8245:Türkheim Wertach
++49-8246:Waal Schwab
++49-8247:Bad Wörishofen
++49-8248:Lamerdingen
++49-8249:Ettringen Wertach
++49-8250:Hilgertshausen-Tandern
++49-8251:Aichach
++49-8252:Schrobenhausen
++49-8253:Pöttmes
++49-8254:Altomünster
++49-8257:Inchenhofen
++49-8258:Sielenbach
++49-8259:Schiltberg
++49-8261:Mindelheim
++49-8262:Mittelneufnach
++49-8263:Breitenbrunn Schwab
++49-8265:Pfaffenhausen Schwab
++49-8266:Kirchheim Schwab
++49-8267:Dirlewang
++49-8268:Tussenhausen
++49-8269:Unteregg b Mindelheim
++49-8271:Meitingen
++49-8272:Wertingen
++49-8273:Nordendorf
++49-8274:Buttenwiesen
++49-8276:Thierhaupten-Baar
++49-8281:Thannhausen Schwab
++49-8282:Krumbach Schwab
++49-8283:Neuburg a d Kammel
++49-8284:Ziemetshausen
++49-8285:Burtenbach
++49-8291:Zusmarshausen
++49-8292:Dinkelscherben
++49-8293:Welden b Augsburg
++49-8294:Horgau
++49-8295:Altenmünster Schwab
++49-8296:Villenbach
++49-8302:Görisried
++49-8303:Waltenhofen
++49-8304:Wildpoldsried
++49-8306:Ronsberg
++49-831:Kempten Allgäu
++49-8320:Missen-Wilhams
++49-8321:Sonthofen
++49-8322:Oberstdorf
++49-8323:Immenstadt i Allgäu
++49-8324:Hindelang
++49-8325:Oberstaufen-Thalkirchdorf
++49-8326:Fischen i Allgäu
++49-8327:Rettenberg
++49-8328:Balderschwang
++49-8329:Riezlern
++49-8330:Legau
++49-8331:Memmingen
++49-8332:Ottobeuren
++49-8333:Babenhausen Schwab
++49-8334:Grönenbach
++49-8335:Fellheim
++49-8336:Erkheim
++49-8337:Altenstadt Iller
++49-8338:Böhen
++49-8340:Baisweil
++49-8341:Kaufbeuren
++49-8342:Marktoberdorf
++49-8343:Aitrang
++49-8344:Westendorf b Kaufbeuren
++49-8345:Stöttwang
++49-8346:Pforzen
++49-8347:Friesenried
++49-8348:Bidingen
++49-8349:Stötten a Auerberg
++49-8361:Nesselwang
++49-8362:Füssen
++49-8363:Pfronten
++49-8364:Seeg
++49-8365:Wertach
++49-8366:Oy-Mittelberg
++49-8367:Roßhaupten Forggensee
++49-8368:Halblech
++49-8369:Rückholz
++49-8370:Wiggensbach
++49-8372:Obergünzburg
++49-8373:Altusried
++49-8374:Dietmannsried
++49-8375:Weitnau
++49-8376:Sulzberg Allgäu
++49-8377:Unterthingau
++49-8378:Buchenberg b Kempten
++49-8379:Waltenhofen-Oberdorf
++49-8380:Achberg
++49-8381:Lindenberg i Allgäu
++49-8382:Lindau Bodensee
++49-8383:Grünenbach Allgäu
++49-8384:Röthenbach Allgäu
++49-8385:Hergatz
++49-8386:Oberstaufen
++49-8387:Weiler-Simmerberg
++49-8388:Hergensweiler
++49-8389:Weißensberg
++49-8392:Markt Rettenbach
++49-8393:Holzgünz
++49-8394:Lautrach
++49-8395:Tannheim Württ
++49-8402:Münchsmünster
++49-8403:Pförring
++49-8404:Oberdolling
++49-8405:Stammham b Ingolstadt
++49-8406:Böhmfeld
++49-8407:Großmehring
++49-841:Ingolstadt Donau
++49-8421:Eichstätt Bay
++49-8422:Dollnstein
++49-8423:Titting
++49-8424:Nassenfels
++49-8426:Walting Kr Eichstätt
++49-8427:Wellheim
++49-8431:Neuburg a d Donau
++49-8432:Burgheim
++49-8433:Königsmoos
++49-8434:Rennertshofen
++49-8435:Oberhausen
++49-8441:Pfaffenhofen a d Ilm
++49-8442:Wolnzach
++49-8443:Hohenwart Paar
++49-8444:Schweitenkirchen
++49-8445:Gerolsbach
++49-8446:Pörnbach
++49-8450:Ingolstadt-Zuchering
++49-8452:Geisenfeld
++49-8453:Reichertshofen Oberbay
++49-8454:Karlshuld
++49-8456:Lenting
++49-8457:Vohburg a d Donau
++49-8458:Gaimersheim
++49-8459:Manching
++49-8460:Berching-Holnstein
++49-8461:Beilngries
++49-8462:Berching
++49-8463:Greding
++49-8464:Dietfurt a d Altmühl
++49-8465:Kipfenberg
++49-8466:Denkendorf Oberbay
++49-8467:Kinding
++49-8468:Altmannstein-Pondorf
++49-8469:Freystadt-Burggriesbach
++49-8501:Thyrnau
++49-8502:Fürstenzell
++49-8503:Neuhaus a Inn
++49-8504:Tittling
++49-8505:Hutthurm
++49-8506:Bad Höhenstadt
++49-8507:Neuburg a Inn
++49-8509:Ruderting
++49-851:Passau
++49-8531:Pocking
++49-8532:Griesbach i Rottal
++49-8533:Rotthalmünster
++49-8534:Tettenweis
++49-8535:Haarbach
++49-8536:Kößlarn
++49-8537:Bad Füssing-Aigen
++49-8538:Pocking-Hartkirchen
++49-8541:Vilshofen Niederbay
++49-8542:Ortenburg
++49-8543:Aidenbach
++49-8544:Eging a See
++49-8545:Hofkirchen Bay
++49-8546:Windorf-Otterskirchen
++49-8547:Osterhofen-Gergweis
++49-8548:Vilshofen-Sandbach
++49-8549:Vilshofen-Pleinting
++49-8550:Philippsreut
++49-8551:Freyung
++49-8552:Grafenau Niederbay
++49-8553:Spiegelau
++49-8554:Schönberg Niederbay
++49-8555:Perlesreut
++49-8556:Haidmühle
++49-8557:Mauth
++49-8558:Hohenau Niederbay
++49-8561:Pfarrkirchen Niederbay
++49-8562:Triftern
++49-8563:Bad Birnbach Rottal
++49-8564:Johanniskirchen
++49-8565:Dietersburg-Baumgarten
++49-8571:Simbach a Inn
++49-8572:Tann Niederbay
++49-8573:Ering
++49-8574:Wittibreut
++49-8581:Waldkirchen Niederbay
++49-8582:Röhrnbach
++49-8583:Neureichenau
++49-8584:Breitenberg Niederbay
++49-8585:Grainet
++49-8586:Hauzenberg
++49-8591:Obernzell
++49-8592:Wegscheid Niederbay
++49-8593:Untergriesbach
++49-861:Traunstein
++49-8621:Trostberg
++49-8622:Tacherting-Peterskirchen
++49-8623:Kirchweidach
++49-8624:Obing
++49-8628:Kienberg Oberbay
++49-8629:Palling
++49-8630:Oberneukirchen
++49-8631:Mühldorf a Inn
++49-8633:Tüßling
++49-8634:Garching a d Alz
++49-8635:Pleiskirchen
++49-8636:Ampfing
++49-8637:Lohkirchen
++49-8638:Waldkraiburg
++49-8639:Neumarkt-St Veit
++49-8640:Reit Im Winkl
++49-8641:Grassau
++49-8642:Übersee
++49-8649:Schleching
++49-8650:Marktschellenberg
++49-8651:Bad Reichenhall
++49-8652:Berchtesgaden
++49-8654:Freilassing
++49-8656:Anger
++49-8657:Ramsau b Berchtesgaden
++49-8661:Grabenstätt Chiemsee
++49-8662:Siegsdorf Kr Traunstein
++49-8663:Ruhpolding
++49-8664:Chieming
++49-8665:Inzell
++49-8666:Teisendorf
++49-8667:Seeon-Seebruck
++49-8669:Traunreut
++49-8670:Reischach Kr Altötting
++49-8671:Altötting
++49-8677:Burghausen Salzach
++49-8678:Marktl
++49-8679:Burgkirchen a d Alz
++49-8681:Waging a See
++49-8682:Laufen Salzach
++49-8683:Tittmoning
++49-8684:Fridolfing
++49-8685:Kirchanschöring
++49-8686:Petting
++49-8687:Taching-Tengling
++49-8702:Wörth a d Isar
++49-8703:Essenbach
++49-8704:Altdorf-Pfettrach
++49-8705:Altfraunhofen
++49-8706:Vilsheim
++49-8707:Adlkofen
++49-8708:Weihmichl-Unterneuhausen
++49-8709:Eching Niederbay
++49-871:Landshut
++49-8721:Eggenfelden
++49-8722:Gangkofen
++49-8723:Arnstorf
++49-8724:Massing
++49-8725:Wurmannsquick
++49-8726:Schönau Niederbay
++49-8727:Falkenberg Niederbay
++49-8728:Geratskirchen
++49-8731:Dingolfing
++49-8732:Frontenhausen
++49-8733:Mengkofen
++49-8734:Reisbach Niederbay
++49-8735:Gangkofen-Kollbach
++49-8741:Vilsbiburg
++49-8742:Velden Vils
++49-8743:Geisenhausen
++49-8744:Gerzen
++49-8745:Bodenkirchen
++49-8751:Mainburg
++49-8752:Au i d Hallertau
++49-8753:Elsendorf Niederbay
++49-8754:Volkenschwand
++49-8756:Nandlstadt
++49-8761:Moosburg a d Isar
++49-8762:Wartenberg Oberbay
++49-8764:Mauern Kr Freising
++49-8765:Bruckberg Niederbay
++49-8766:Gammelsdorf
++49-8771:Ergoldsbach
++49-8772:Mallersdorf-Pfaffenberg
++49-8773:Neufahrn Niederbay
++49-8774:Bayerbach b Ergoldsbach
++49-8781:Rottenburg a d Laaber
++49-8782:Pfeffenhausen
++49-8783:Rohr Niederbay
++49-8784:Hohenthann
++49-8785:Rottenburg-Oberroning
++49-8801:Seeshaupt
++49-8802:Huglfing
++49-8803:Peißenberg
++49-8805:Hohenpeißenberg
++49-8806:Utting a Ammersee
++49-8807:Dießen a Ammersee
++49-8808:Pähl
++49-8809:Wessobrunn
++49-881:Weilheim Oberbay
++49-8821:Garmisch-Partenkirchen
++49-8822:Oberammergau
++49-8823:Mittenwald
++49-8824:Oberau Loisach
++49-8825:Krün
++49-8841:Murnau a Staffelsee
++49-8845:Bad Kohlgrub
++49-8846:Uffing a Staffelsee
++49-8847:Obersöchering
++49-8851:Kochel a See
++49-8856:Penzberg
++49-8857:Benediktbeuern
++49-8858:Kochel-Walchensee
++49-8860:Bernbeuren
++49-8861:Schongau
++49-8862:Steingaden Oberbay
++49-8867:Rottenbuch Oberbay
++49-8868:Schwabsoien
++49-8869:Kinsau
++49-89:München
++49-906:Donauwörth
++49-9070:Tapfheim
++49-9071:Dillingen a d Donau
++49-9072:Lauingen Donau
++49-9073:Gundelfingen a d Donau
++49-9074:Höchstädt a d Donau
++49-9075:Glött
++49-9076:Wittislingen
++49-9077:Bachhagel
++49-9078:Mertingen
++49-9080:Harburg Schwaben
++49-9081:Nördlingen
++49-9082:Oettingen
++49-9083:Möttingen
++49-9084:Bissingen Schwab
++49-9085:Alerheim
++49-9086:Fremdingen
++49-9087:Marktoffingen
++49-9088:Mönchsdeggingen
++49-9089:Bissingen-Unterringingen
++49-9090:Rain Lech
++49-9091:Monheim Schwab
++49-9092:Wemding
++49-9093:Polsingen
++49-9094:Tagmersheim
++49-9097:Marxheim
++49-9099:Kaisheim
++49-9101:Langenzenn
++49-9102:Wilhermsdorf
++49-9103:Cadolzburg
++49-9104:Emskirchen
++49-9105:Großhabersdorf
++49-9106:Markt Erlbach
++49-9107:Trautskirchen
++49-911:Nürnberg
++49-9120:Leinburg
++49-9122:Schwabach
++49-9123:Lauf a d Pegnitz
++49-9126:Eckental
++49-9127:Roßtal
++49-9128:Feucht
++49-9129:Wendelstein
++49-9131:Erlangen
++49-9132:Herzogenaurach
++49-9133:Baiersdorf Mittelfr
++49-9134:Neunkirchen a Brand
++49-9135:Heßdorf Mittelfr
++49-9141:Weißenburg i Bay
++49-9142:Treuchtlingen
++49-9143:Pappenheim Mittelfr
++49-9144:Pleinfeld
++49-9145:Solnhofen
++49-9146:Markt Berolzheim
++49-9147:Nennslingen
++49-9148:Ettenstatt
++49-9149:Weißenburg-Suffersheim
++49-9151:Hersbruck
++49-9152:Hartenstein
++49-9153:Schnaittach
++49-9154:Pommelsbrunn
++49-9155:Simmelsdorf
++49-9156:Neuhaus a d Pegnitz
++49-9157:Alfeld Mittelfr
++49-9158:Offenhausen Mittelfr
++49-9161:Neustadt a d Aisch
++49-9162:Scheinfeld
++49-9163:Dachsbach
++49-9164:Langenfeld Mittelfr
++49-9165:Sugenheim
++49-9166:Münchsteinach
++49-9167:Oberscheinfeld
++49-9170:Schwanstetten
++49-9171:Roth Mittelfr
++49-9172:Georgensgmünd
++49-9173:Thalmässing
++49-9174:Hilpoltstein
++49-9175:Spalt
++49-9176:Allersberg
++49-9177:Heideck
++49-9178:Abenberg Mittelfr
++49-9179:Freystadt
++49-9180:Pyrbaum
++49-9181:Neumarkt Oberpf
++49-9182:Velburg
++49-9183:Burgthann
++49-9184:Deining Oberpf
++49-9185:Mühlhausen Oberpf
++49-9186:Lauterhofen Oberpf
++49-9187:Altdorf b Nürnberg
++49-9188:Postbauer-Heng
++49-9189:Berg b Neumarkt Oberpf
++49-9190:Heroldsbach
++49-9191:Forchheim Oberfr
++49-9192:Gräfenberg
++49-9193:Höchstadt a d Aisch
++49-9194:Ebermannstadt
++49-9195:Adelsdorf
++49-9196:Wiesenttal
++49-9197:Egloffstein
++49-9198:Heiligenstadt Oberfr
++49-9199:Kunreuth
++49-9201:Gesees
++49-9202:Waischenfeld
++49-9203:Neudrossenfeld
++49-9204:Plankenfels
++49-9205:Vorbach
++49-9206:Mistelgau-Obernsees
++49-9207:Königsfeld Oberfr
++49-9208:Bindlach
++49-9209:Emtmannsberg
++49-921:Bayreuth
++49-9220:Kasendorf-Azendorf
++49-9221:Kulmbach
++49-9222:Presseck
++49-9223:Rugendorf
++49-9225:Stadtsteinach
++49-9227:Neuenmarkt
++49-9228:Thurnau
++49-9229:Mainleus
++49-9231:Marktredwitz
++49-9232:Wunsiedel
++49-9233:Arzberg Oberfr
++49-9234:Neusorg
++49-9235:Thierstein
++49-9236:Nagel
++49-9238:Röslau
++49-9241:Pegnitz
++49-9242:Gößweinstein
++49-9243:Pottenstein
++49-9244:Betzenstein
++49-9245:Obertrubach
++49-9246:Pegnitz-Trockau
++49-9251:Münchberg
++49-9252:Helmbrechts
++49-9253:Weißenstadt
++49-9254:Gefrees
++49-9255:Marktleugast
++49-9256:Stammbach
++49-9257:Zell Oberfr
++49-9260:Wilhelmsthal Oberfr
++49-9261:Kronach
++49-9262:Wallenfels
++49-9263:Ludwigsstadt
++49-9264:Küps
++49-9265:Pressig
++49-9266:Mitwitz
++49-9267:Nordhalben
++49-9268:Teuschnitz
++49-9269:Tettau
++49-9270:Creußen
++49-9271:Eckersdorf-Alladorf
++49-9272:Fichtelberg
++49-9273:Bad Berneck
++49-9274:Hollfeld
++49-9275:Speichersdorf
++49-9276:Bischofsgrün
++49-9277:Warmensteinach
++49-9278:Weidenberg
++49-9279:Mistelgau
++49-9280:Selbitz Oberfr
++49-9281:Hof Saale
++49-9282:Naila
++49-9283:Rehau
++49-9284:Schwarzenbach a d Saale
++49-9285:Kirchenlamitz
++49-9286:Oberkotzau
++49-9287:Selb
++49-9288:Bad Steben
++49-9289:Schwarzenbach a Wald
++49-9292:Konradsreuth
++49-9293:Berg Oberfr
++49-9294:Regnitzlosau
++49-9295:Töpen
++49-9302:Rottendorf Unterfr
++49-9303:Eibelstadt
++49-9305:Estenfeld
++49-9306:Kist
++49-9307:Altertheim
++49-931:Würzburg
++49-9321:Kitzingen
++49-9323:Iphofen
++49-9324:Dettelbach
++49-9325:Kleinlangheim
++49-9326:Markt Einersheim
++49-9331:Ochsenfurt
++49-9332:Marktbreit
++49-9333:Sommerhausen
++49-9334:Giebelstadt
++49-9335:Aub Kr Würzburg
++49-9336:Bütthard
++49-9337:Gaukönigshofen
++49-9338:Röttingen Unterfr
++49-9339:Ippesheim
++49-9340:Königheim-Brehmen
++49-9341:Tauberbischofsheim
++49-9342:Wertheim
++49-9343:Lauda-Königshofen
++49-9344:Gerchsheim
++49-9345:Külsheim Baden
++49-9346:Grünsfeld
++49-9347:Wittighausen
++49-9348:Werbach-Gamburg
++49-9349:Werbach-Wenkheim
++49-9350:Eußenheim-Hundsbach
++49-9351:Gemünden a Main
++49-9352:Lohr a Main
++49-9353:Karlstadt
++49-9354:Rieneck
++49-9355:Frammersbach
++49-9356:Burgsinn
++49-9357:Gräfendorf
++49-9358:Gössenheim
++49-9359:Karlstadt-Wiesenfeld
++49-9360:Thüngen
++49-9363:Arnstein Unterfr
++49-9364:Zellingen
++49-9365:Rimpar
++49-9366:Geroldshausen Unterfr
++49-9367:Unterpleichfeld
++49-9369:Uettingen
++49-9371:Miltenberg
++49-9372:Klingenberg a Main
++49-9373:Amorbach
++49-9374:Eschau
++49-9375:Freudenberg Baden
++49-9376:Collenberg
++49-9377:Freudenberg-Boxtal
++49-9378:Eichenbühl-Riedern
++49-9381:Volkach
++49-9382:Gerolzhofen
++49-9383:Wiesentheid
++49-9384:Schwanfeld
++49-9385:Kolitzheim
++49-9386:Prosselsheim
++49-9391:Marktheidenfeld
++49-9392:Faulbach Unterfr
++49-9393:Rothenfels Unterfr
++49-9394:Esselbach
++49-9395:Triefenstein
++49-9396:Urspringen b Lohr
++49-9397:Wertheim-Dertingen
++49-9398:Birkenfeld b Würzburg
++49-9401:Neutraubling
++49-9402:Regenstauf
++49-9403:Donaustauf
++49-9404:Nittendorf
++49-9405:Bad Abbach
++49-9406:Mintraching
++49-9407:Wenzenbach
++49-9408:Altenthann
++49-9409:Pielenhofen
++49-941:Regensburg
++49-9420:Feldkirchen Niederbay
++49-9421:Straubing
++49-9422:Bogen Niederbay
++49-9423:Geiselhöring
++49-9424:Straßkirchen
++49-9426:Oberschneiding
++49-9427:Leiblfing
++49-9428:Kirchroth
++49-9429:Rain Niederbay
++49-9431:Schwandorf
++49-9433:Nabburg
++49-9434:Bodenwöhr
++49-9435:Schwarzenfeld
++49-9436:Nittenau
++49-9438:Fensterbach
++49-9439:Neunburg-Kemnath
++49-9441:Kelheim
++49-9442:Riedenburg
++49-9443:Abensberg
++49-9444:Siegenburg
++49-9445:Neustadt a d Donau
++49-9446:Altmannstein
++49-9447:Essing
++49-9448:Hausen Niederbay
++49-9451:Schierling
++49-9452:Langquaid
++49-9453:Thalmassing
++49-9454:Aufhausen Oberpf
++49-9461:Roding
++49-9462:Falkenstein Oberpf
++49-9463:Wald Oberpf
++49-9464:Walderbach
++49-9465:Neukirchen-Balbini
++49-9466:Stamsried
++49-9467:Michelsneukirchen
++49-9468:Zell Oberpf
++49-9469:Roding-Neubäu
++49-9471:Burglengenfeld
++49-9472:Hohenfels Oberpf
++49-9473:Kallmünz
++49-9474:Schmidmühlen
++49-9480:Sünching
++49-9481:Pfatter
++49-9482:Wörth a d Donau
++49-9484:Brennberg
++49-9491:Hemau
++49-9492:Parsberg
++49-9493:Beratzhausen
++49-9495:Breitenbrunn Oberpf
++49-9497:Seubersdorf Oberpf
++49-9498:Laaber
++49-9499:Painten
++49-9502:Frensdorf
++49-9503:Oberhaid Oberfr
++49-9504:Stadelhofen
++49-9505:Litzendorf
++49-951:Bamberg
++49-9521:Haßfurt
++49-9522:Eltmann
++49-9523:Hofheim Unterfr
++49-9524:Zeil a Main
++49-9525:Königsberg i Bay
++49-9526:Riedbach
++49-9527:Knetzgau
++49-9528:Donnersdorf
++49-9529:Oberaurach
++49-9531:Ebern
++49-9532:Maroldsweisach
++49-9533:Untermerzbach
++49-9534:Burgpreppach
++49-9535:Pfarrweisach
++49-9536:Kirchlauter
++49-9542:Scheßlitz
++49-9543:Hirschaid
++49-9544:Baunach
++49-9545:Buttenheim
++49-9546:Burgebrach
++49-9547:Zapfendorf
++49-9548:Mühlhausen Mittelfr
++49-9549:Lisberg
++49-9551:Burgwindheim
++49-9552:Burghaslach
++49-9553:Ebrach Oberfr
++49-9554:Untersteinbach Unterfr
++49-9555:Schlüsselfeld-Aschbach
++49-9556:Geiselwind
++49-9560:Grub a Forst
++49-9561:Coburg
++49-9562:Sonnefeld
++49-9563:Rödental
++49-9564:Rodach
++49-9565:Untersiemau
++49-9566:Meeder
++49-9567:Seßlach-Gemünda
++49-9568:Neustadt b Coburg
++49-9569:Seßlach
++49-9571:Lichtenfels Bay
++49-9572:Burgkunstadt
++49-9573:Staffelstein Oberfr
++49-9574:Marktzeuln
++49-9575:Weismain
++49-9576:Lichtenfels-Isling
++49-9602:Neustadt a d Waldnaab
++49-9603:Floß
++49-9604:Wernberg-Köblitz
++49-9605:Weiherhammer
++49-9606:Pfreimd
++49-9607:Luhe-Wildenau
++49-9608:Kohlberg Oberpf
++49-961:Weiden i d Opf
++49-9621:Amberg Oberpf
++49-9622:Hirschau Oberpf
++49-9624:Ensdorf Oberpf
++49-9625:Kastl b Amberg
++49-9626:Hohenburg
++49-9627:Freudenberg Oberpf
++49-9628:Ursensollen
++49-9631:Tirschenreuth
++49-9632:Waldsassen
++49-9633:Mitterteich
++49-9634:Wiesau
++49-9635:Bärnau
++49-9636:Plößberg
++49-9637:Falkenberg Oberpf
++49-9638:Neualbenreuth
++49-9639:Mähring
++49-9641:Grafenwöhr
++49-9642:Kemnath Stadt
++49-9643:Auerbach Oberpf
++49-9644:Pressath
++49-9645:Eschenbach Oberpf
++49-9646:Freihung
++49-9647:Kirchenthumbach
++49-9648:Neustadt a Kulm
++49-9651:Vohenstrauß
++49-9652:Waidhaus
++49-9653:Eslarn
++49-9654:Pleystein
++49-9655:Tännesberg
++49-9656:Moosbach b Vohenstrauß
++49-9657:Waldthurn
++49-9658:Georgenberg
++49-9659:Leuchtenberg
++49-9661:Sulzbach-Rosenberg
++49-9662:Vilseck
++49-9663:Neukirchen b Sulzbach
++49-9664:Hahnbach
++49-9665:Königstein Oberpf
++49-9666:Illschwang
++49-9671:Oberviechtach
++49-9672:Neunburg Vorm Wald
++49-9673:Tiefenbach Oberpf
++49-9674:Schönsee
++49-9675:Altendorf b Nabburg
++49-9676:Winklarn
++49-9677:Oberviechtach-Pullenried
++49-9681:Windischeschenbach
++49-9682:Erbendorf
++49-9683:Friedenfels
++49-9701:Sandberg Unterfr
++49-9704:Euerdorf
++49-9708:Bad Bocklet
++49-971:Bad Kissingen
++49-9720:Üchtelhausen
++49-9721:Schweinfurt
++49-9722:Werneck
++49-9723:Röthlein
++49-9724:Stadtlauringen
++49-9725:Poppenhausen Unterfr
++49-9726:Euerbach
++49-9727:Schonungen-Marktsteinach
++49-9728:Wülfershausen Unterfr
++49-9729:Grettstadt
++49-9732:Hammelburg
++49-9733:Münnerstadt
++49-9734:Burkardroth
++49-9735:Maßbach
++49-9736:Oberthulba
++49-9737:Wartmannsroth
++49-9738:Rottershausen
++49-9741:Bad Brückenau
++49-9742:Kalbach Rhön
++49-9744:Zeitlofs-Detter
++49-9745:Wildflecken
++49-9746:Zeitlofs
++49-9747:Geroda
++49-9748:Motten
++49-9749:Oberbach Unterfr
++49-9761:Bad Königshofen
++49-9762:Saal a d Saale
++49-9763:Sulzdorf a d Lederhecke
++49-9764:Höchheim
++49-9765:Trappstadt
++49-9766:Großwenkheim
++49-9771:Bad Neustadt
++49-9772:Bischofsheim a d Rhön
++49-9773:Unsleben
++49-9774:Oberelsbach
++49-9775:Schönau a d Brend
++49-9776:Mellrichstadt
++49-9777:Ostheim v d Rhön
++49-9778:Fladungen
++49-9779:Nordheim v d Rhön
++49-9802:Ansbach-Katterbach
++49-9803:Colmberg
++49-9804:Aurach
++49-9805:Burgoberbach
++49-981:Ansbach
++49-9820:Lehrberg
++49-9822:Bechhofen a d Heide
++49-9823:Leutershausen
++49-9824:Dietenhofen
++49-9825:Herrieden
++49-9826:Weidenbach Mittelfr
++49-9827:Lichtenau Mittelfr
++49-9828:Rügland
++49-9829:Flachslanden
++49-9831:Gunzenhausen
++49-9832:Wassertrüdingen
++49-9833:Heidenheim Mittelfr
++49-9834:Theilenhofen
++49-9835:Ehingen
++49-9836:Gunzenhausen-Cronheim
++49-9837:Haundorf
++49-9841:Bad Windsheim
++49-9842:Uffenheim
++49-9843:Burgbernheim
++49-9844:Obernzenn
++49-9845:Oberdachstetten
++49-9846:Ipsheim
++49-9847:Ergersheim
++49-9848:Simmershofen
++49-9851:Dinkelsbühl
++49-9852:Feuchtwangen
++49-9853:Wilburgstetten
++49-9854:Wittelshofen
++49-9855:Dentlein a Forst
++49-9856:Dürrwangen
++49-9857:Schopfloch Mittelfr
++49-9861:Rothenburg Ob Der Tauber
++49-9865:Adelshofen
++49-9867:Geslau
++49-9868:Schillingsfürst
++49-9869:Wettringen Mittelfr
++49-9871:Windsbach
++49-9872:Heilsbronn
++49-9873:Abenberg-Wassermungenau
++49-9874:Neuendettelsau
++49-9875:Wolframs-Eschenbach
++49-9876:Rohr Mittelfr
++49-9901:Hengersberg
++49-9903:Schöllnach
++49-9904:Lalling
++49-9905:Bernried Niederbay
++49-9906:Mariaposching
++49-9907:Zenting
++49-9908:Schöfweg
++49-991:Deggendorf
++49-9920:Bischofsmais
++49-9921:Regen
++49-9922:Zwiesel
++49-9923:Teisnach
++49-9924:Bodenmais
++49-9925:Bayerisch Eisenstein
++49-9926:Frauenau
++49-9927:Kirchberg Wald
++49-9928:Kirchdorf i Wald
++49-9929:Ruhmannsfelden
++49-9931:Plattling
++49-9932:Osterhofen
++49-9933:Wallersdorf
++49-9935:Stephansposching
++49-9936:Wallerfing
++49-9937:Oberpöring
++49-9938:Moos Niederbay
++49-9941:Kötzting
++49-9942:Viechtach
++49-9943:Lam Oberpf
++49-9944:Miltach
++49-9945:Arnbruck
++49-9946:Hohenwarth b Kötzting
++49-9947:Neukirchen b Hl Blut
++49-9948:Eschlkam
++49-9951:Landau a d Isar
++49-9952:Eichendorf
++49-9953:Pilsting
++49-9954:Simbach Niederbay
++49-9955:Mamming
++49-9956:Eichendorf
++49-9961:Mitterfels
++49-9962:Schwarzach Niederbay
++49-9963:Konzell
++49-9964:Stallwang
++49-9965:St Englmar
++49-9966:Wiesenfelden
++49-9971:Cham
++49-9972:Waldmünchen
++49-9973:Furth i Wald
++49-9974:Traitsching
++49-9975:Waldmünchen-Geigant
++49-9976:Rötz
++49-9977:Arnschwang
++49-9978:Schönthal Oberpf
+
+
+#Ausland
++1:[US/CA]USA und Kanada
++1-201:Newark
++1-202:Washington DC
++1-203:Hartfort
++1-204:Winnipeg
++1-206:Seattle
++1-207:Augusta
++1-208:Boise
++1-209:Stockton
++1-210:San Antonio
++1-212:New York City
++1-213:Los Angeles
++1-214:Dallas
++1-215:Philadelphia
++1-216:Cleveland
++1-217:Springfield
++1-218:Duluth
++1-250:Victoria
++1-253:Tacoma
++1-254:Waco
++1-281:Houston
++1-302:Dover
++1-303:Denver
++1-304:Charleston
++1-305:Miami
++1-306:Saskatoon
++1-307:Cheyenne
++1-309:Rock Island
++1-310:Beverley Hills
++1-312:Chicago
++1-313:Detroit
++1-314:St. Louis
++1-315:Syracuse
++1-316:Wichita
++1-318:Shreveport
++1-319:Davenport
++1-330:Canton
++1-334:Montgomery
++1-336:Greensboro
++1-352:Gainesville
++1-360:Vancouver
++1-401:Providence
++1-402:Omaha
++1-403:Lethbridge
++1-404:Atlanta
++1-405:Shawnee
++1-406:Helena
++1-407:Orlando
++1-408:Santa Cruz
++1-409:Beaumont
++1-410:Baltimore
++1-412:Pittsburg
++1-414:Milwaukee
++1-415:San Francisco
++1-416:Toronto
++1-418:Quebec
++1-419:Toledo
++1-423:Knoxville
++1-425:Everett
++1-501:Little Rock
++1-502:Madisonville
++1-503:Portland
++1-504:New Orleans
++1-505:Santa Fe
++1-506:St.John
++1-507:Rochester
++1-508:Worcester
++1-510:Oakland
++1-512:Corpus Christi
++1-513:Mason
++1-514:Montreal
++1-515:Fort Dodge
++1-517:Saginaw
++1-518:Albany
++1-519:Windsor
++1-530:Chico
++1-561:West Palm Beach
++1-562:Long Beach
++1-573:Jefferson City
++1-602:Phoenix
++1-603:Concord
++1-604:Vancouver
++1-606:Middlesboro
++1-607:Ithaca
++1-608:Madison
++1-609:Trenton
++1-612:St. Paul
++1-613:Ottawa
++1-614:Marion
++1-615:Nashville
++1-617:Cambridge
++1-618:Alton
++1-619:San Diego
++1-626:Pasadena
++1-660:Sedalia
++1-701:Bismarck
++1-702:Las Vegas
++1-704:Charlotte
++1-707:Eureka
++1-709:St.John's
++1-712:Sioux City
++1-716:Jamestown
++1-717:Williamsport
++1-718:Queens
++1-719:Colorado Springs
++1-724:New Castle
++1-727:Tampa
++1-757:Newport News
++1-760:Palm Springs
++1-765:Kokomo
++1-773:Chicago (Süd)
++1-781:Arlington
++1-785:Topeka
++1/800:Toll Free
++1/888:Toll Free
++1-801:Salt Lake City
++1-803:Columbia
++1-804:Richmond
++1-805:Santa Barbara
++1-808:Honolulu
++1-815:Rockford
++1-816:Kansas City
++1-817:Fort Worth
++1-819:Trois Rivieres
++1-830:Del Rio
++1-850:Tallahasse
++1-860:Hartford
++1-867:Yellowknife
++1-901:Memphis
++1-902:Yarmouth
++1-903:Sherman
++1-904:Jacksonville
++1-905:Niagara Falls
++1-907:Fairbanks
++1-909:Riverside
++1-910:Wilmington
++1-912:Thomasville
++1-913:Atchison
++1-915:El Paso
++1-916:Sacramento
++1-918:Tulsa
++1-919:Raleigh
++1-937:Dayton
++1-940:Denton
++1-941:Sarasota
++1-954:Fort Lauderdale
+
++20:[ET]Ägypten
++20-3:Alexandria
++20-97:Assuan
++20-13:Banha
++20-45:Damanhour
++20-57:Damietta
++20-84:Fayoum
++20-65:Hurghada
++20-64:Ismailia
++20-2:Kairo
++20-95:Luxor
++20-50:Mansoura
++20-66:Port Said
++20-68:Rafah
++20-49:Sadat City
++20-93:Sohag
++20-62:Suez
++20-40:El-Mahalla El-Kobra, Tanta
++20-55:Zagazig
+
++240:Äquatorialguinea
++240-8:Bata
++240-9:Malabo
+
+
++251:[ET]Äthiopien
++251-1:Addis Abeba
++251-7:Jimma
++251-3:Dessie
++251-8:Gonder
++251-5:Diredawa, Harrar
++251-4:Mekele
++251-2:Nazareth
+
+
++355:[AL]Albanien
++355-52:Durres
++355-545:Elbasan
++355-824:Korce
++355-42:Tirana
+
+
++213:[DZ]Algerien
++213-2:Algier
++213-4:Batna, Biskra, Constantine
++213-6:Arcew, Mascara, Mostaganem, Oran
++213-5:Bejala, Setif
++213-8:Annaba, Skikda
++213-9:Ghardaia, Tamanrasset
++213-3:Blida, Medea, Tizi-Ouzou
++213-7:Bechar, Sido-bel-Abbes, Tlemcen
+
+
++684:Amerikanisch-Samoa
+
+
++1340:Amerikanische Jungferninseln
+
+
++376:Andorra
+
+
++244:[AO]Angola
++244-72:Benguela
++244-2:Luanda
+
+
++1264:Anguilla
+
+
++1268:Antigua und Barbuda
+
+
++54:[AR]Argentinien
++54-11:Buenos Aires
++54-221:La Plata
++54-2281:Azul
++54-2293:Tandil
++54-2314:Bolivar
++54-2322:Pilar (Buenos Aires)
++54-2323:Lujan
++54-2362:Junin
++54-23:Mar del Plata
++54-261:Mendoza
++54-264:San Juan
++54-2652:San Luis
++54-2783:Corrientes
++54-2901:Ushuaia
++54-291:Bahia Blanca
++54-2920:Viedma
++54-2944:San Carlos de Bariloche
++54-2945:Esquel
++54-2954:Santa Rosa
++54-2965:Rawson
++54-2972:San Martin de los Andes
++54-297:Comodoro Rivadavia
++54-299:Neuquen
++54-341:Rosario
++54-342:Santa Fe
++54-343:Parana
++54-3487:Zarate
++54-351:Cordoba
++54-353:Villa Maria
++54-3717:Formosa
++54-3722:Resistencia
++54-3752:Posadas
++54-381:San Miguel de Tucuman
++54-3833:Catamarca
++54-385:Santiago del Estero
++54-3868:Cafayate
++54-387:Salta
++54-388:San Salvador de Jujuy
+
+
+
++374:[AM]Armenien
++374-2:Jerewan (Eriwan)
++374-560:Stepanawan
++374-57:Wanadsor (Kirowakan)
++374-59:Etschmiadsin
++374-61:Kotaik (Abowjan)
++374-64:Kamo
++374-67:Hrasdan (Rasdan)
++374-69:Gjumri
++374-720:Dilishan
++374-76:Sewan
+
+
+
++297:Aruba
+
+
++247:Ascension
+
+
++994:[AZ]Aserbaidschan
++994-12:Baku
++994-136:Nachitschewan
++994-147:Mingetschaur
++994-164:Sumgait
++994-166:Jewlach
++994-171:Lenkoran
++994-176:Schemacha
++994-177:Scheki
++994-192:Agdam
++994-197:Ali Bajramly
++994-222:Gjandsha
+
+
+
++61:[AU]Australien
++61-2:Canberra, Sidney
++61-3:Melbourne
++61-7:Brisbaine
++61-8:Adelaide, Perth, Western Australia
+
+
++1242:Bahamas
+
+
++973:Bahrain
+
+
++880:[BD]Bangladesch
++880-2:Dhaka
++880-31:Chittagong
++880-41:Khulna
++880-431:Barisal
++880-521:Rangpur
++880-552:Saidpur
++880-631:Faridpur
++880-741:Shantahar
++880-751:Sirajgonj
++880-81:Comilla
++880-821:Sylhet
++880-841:Chandpur
+
+
+
++1246:Barbados
+
+
++375:[BY]Belarus (Weißrußland)
++375-1634:Baranovichi
++375-225:Bobruisk
++375-1777:Borisov
++375-162:Brest
++375-232:Gomel
++375-152:Grodno
++375-17:Minsk
++375-222:Mogilev
++375-1773:Molodechno
++375-2351:Mozyr
++375-1597:Novogrudok
++375-2161:Orsha
++375-1653:Pinsk
++375-2144:Polotsk
++375-1562:Slonim
++375-1795:Slutsk
++375-1592:Smorgon
++375-1710:Soligorsk
++375-2342:Svetlogorsk
++375-212:Vitebsk
++375-2334:Zhlobin
++375-1775:Zhodino
+
+
++32:[BE]Belgien
++32-53:Aalst
++32-13:Diest
++32-83:Assesse, Havelange
++32-85:Huy
++32-57:Ieper
++32-64:Binche, La Louviere
++32-16:Aarschot, Löwen
++32-89:Maaseik
++32-84:Marche-en-Famenne
++32-15:Mechelen
++32-82:Beauraing, Mesnil-Saint-Blaise
++32-65:Bergen, Mons
++32-81:Namur
++32-67:Braine-le-Comte, Nivelles
++32-54:Oetingen
++32-59:Oostende
++32-55:Ronse
++32-60:Sivry
++32-52:Termonde
++32-51:Tielt
++32-61:Bastonge, Bievre, Betrix, Bouillon, Tienen
++32-12:Tongeren
++32-58:Veurne
++32-80:Amel, Büllingen, Bütgenbach, Burg-Reuland, Vielsalm
++32-63:Arlon, Virton
++32-68:Ath, Vloesberg
++32-71:Walcourt
++32-56:Waregem
++32-19:Borgworm, Waremme
++32-2:Brüssel, Waterloo
++32-10:Wavre
++32-87:Welkenraedt
++32-86:Aubel, Barvaux, Werbomont
++32-14:Bouwel, Westerlo
++32-4:Ans, Bassenge, Wezet
++32-11:Wijchmaal
++32-69:Antoing, Blaton, Bleharies, Willemeau
++32-3:Antwerpen, Boom, Broechem, Zandhoven
++32-50:Blankenberge, Brügge, Zeebrugge
++32-9:Zelzate
+
+
++501:[BZ]Belize
++501-2:Belize-City
++501-8:Belmopan
+
+
++229:Benin
+
+
++1441:Bermuda
+
+
++975:[BT]Bhutan
++975-3:Bumtha
++975-25:Phuntsholing
++975-4:Tashigang
++975-2:Thimbu
+
+
++591:[BO]Bolivien
++591-842:Cobija
++591-42:Cochabamba
++591-2:La Paz
++591-52:Oruro
++591-62:Potosi
++591-3:Santa Cruz
++591-64:Sucre
++591-66:Tarija
++591-46:Trinidad
+
+
++387:[BA]Bosnien-Herzegowina
++387-77:Bihac
++387-78:Bosnisch-Gradiska
++387-76:Brcko
++387-74:Doboj
++387-73:Gorazde
++387-70:Jajce
++387-80:Livno
++387-79:Prijedor
++387-89:Trebinje
++387-75:Tuzla
++387-71:Vares
++387-72:Zenica
++387-88:Zugulja
+
+
++267:Botsuana
+
+
++55:[BR]Brasilien
++55-79:Aracaju
++55-91:Belem
++55-31:Belo Horizonte
++55-47:Blumenau
++55-95:Boa Vista
++55-61:Brasília
++55-19:Campinas
++55-67:Campo Grande
++55-24:Campos
++55-33:Caratinga
++55-65:Cuiabá
++55-41:Curitiba
++55-48:Florianópolis
++55-88:Fortaleza
++55-45:Foz do Iguacú
++55-62:Goiania
++55-73:Itabuna
++55-83:Joao Pessoa
++55-96:Macapá
++55-82:Maceió
++55-92:Manaus
++55-84:Natal
++55-63:Palmas
++55-51:Porto Alegre
++55-69:Porto Velho
++55-81:Recife
++55-68:Rio Branco
++55-71:Salvador
++55-13:Santos
++55-21:Sao Goncalo
++55-98:Sao Luís
++55-11:Sao Paulo
++55-86:Teresina
++55-27:Vitória
+
+
++1284:Britische Jungferninseln
+
+
++673:[BN]Brunei Darussalam
++673-2:Bandar Seri Begawan
++673-3:Seria
+
+
++359:[BG]Bulgarien
++359-5722:Albena
++359-579:Balchik
++359-291:Bankya
++359-7443:Bansko
++359-7128:Borovetz
++359-56:Burgas
++359-3051:Chepelare
++359-58:Dobrich
++359-66:Gabrovo
++359-618:Gorna Oryahovitza
++359-38:Haskovo
++359-724:Ihtiman
++359-431:Kazanlak
++359-453:Kotel
++359-78:Kustendil
++359-68:Lovech
++359-96:Montana
++359-554:Nesebar
++359-3021:Pamporovo
++359-64:Pleven
++359-32:Plovdiv
++359-596:Pomorie
++359-5561:Primorsko
++359-82:Rousse
++359-746:Sandanski
++359-44:Sliven
++359-2:Sofia
++359-5514:Sozopol
++359-42:Stara Zagora
++359-52:Varna
++359-62:Veliko Tarnovo
++359-359:Velingrad
++359-94:Vidin
+
+
++226:Burkina Faso
+
+
++257:[BI]Burundi
++257-42:Bubanza
++257-22:Bujumbura
++257-50:Bururi
++257-41:Cibitoke
++257-40:Gitega
++257-43:Muramvya
++257-30:Ngozi
+
+
++1345:Caymaninseln
+
+
++56:[CL]Chile
++56-58:Arica
++56-55:Calama
++56-42:Chillan
++56-52:Copiapo
++56-67:Coyhaique
++56-75:Curico
++56-57:Iquique
++56-39:Isla de Pascua (Osterinsel)
++56-51:La Serena
++56-64:Osorno
++56-65:Puerto Montt
++56-61:Punta Delgada
++56-72:Rancagua
++56-35:San Antonio
++56-2:Santiago
++56-71:Talca
++56-41:Talcahuano
++56-45:Temuco
++56-63:Valdivia
++56-32:Viña del Mar
+
+
++86:[CN]China (Volksrepublik)
++86-431:Changchun
++86-731:Changsha
++86-28:Chengdu
++86-411:Dalian
++86-591:Fuzhou
++86-20:Guangzhou
++86-851:Guiyang
++86-898:Haikou
++86-571:Hangzhou
++86-451:Harbin
++86-551:Hefei
++86-471:Huhehaote
++86-531:Jinan
++86-871:Kunming
++86-931:Lanzhou
++86-891:Lhasa
++86-791:Nanchang
++86-25:Nanjing
++86-771:Nanning
++86-10:Peking
++86-532:Quingdao
++86-21:Shanghai
++86-24:Shenyang
++86-755:Shenzhen
++86-311:Shijiazhuang
++86-351:Taiyuan
++86-22:Tianjin
++86-27:Wuhan
++86-991:Wulumuqi
++86-29:Xian
++86-971:Xining
++86-951:Yinchuan
+
+
++6724:Christmas Inseln
+
+
++6722:Cocos Inseln
+
+
++682:Cookinseln
+
+
++506:Costa Rica
+
+
++225:Côte d´Ivoire (Elfenbeinküste)
+
+
++1767:Dominica
+
+
++1809:Dominikanische Republik
+
+
++253:Dschibuti
+
+
++45:[DK]Dänemark
++45-56:Rønne (Bornholm)
+
+
++593:[EC]Ecuador
++593-4:Guayaquil
++593-7:Machala
++593-5:Quevedo
++593-3:Riobamba
++593-2:Santo Domingo
++593-6:Tulcán
+
+
++503:El Salvador
+
+
++291:Eritrea
++291-1:Asmara
+
+
++372:[EE]Estland
++372-47:Haapsalu
++372-77:Jögeva
++372-33:Kohtla-Järve
++372-45:Kuressaare
++372-46:Kärdla
++372-35:Narva
++372-38:Paide
++372-44:Pärnu
++372-79:Pölva
++372-32:Rakvere
++372-48:Rapla
++372-39:Sillamäe
++372-2:Tallinn
++372-7:Tartu
++372-76:Valga
++372-43:Viljandi
++372-78:Vöru
+
+
++500:Falklandinseln
+
+
++679:Fidschi
+
+
++358:[FI]Finnland
++358-13:Joensuu, Nurmes
++358-14:Jyväskylä
++358-15:Mikkeli, Savolinna, Pieksamäki
++358-16:Lappland
++358-17:Varkaus, Kuopio, Isalmi
++358-18:Aland
++358-19:Porvoo, Riihimäki, Tammisaari
++358-2:Turku
++358-3:Tampere, Toijala
++358-4:Sondernummern, 
++358-40:Mobil-GSM, 
++358-5:Lappeenranta, Imatra, Kotka
++358-6:Kokkola, Vaasa
++358-8:Oulu, Ylivieska
++358-9:Helsinki, Espoo, Vantaa
+
+
++33:[FR]Frankreich
++33-3:Strasbourg
++33-4:Toulon
++33-5:Toulouse
++33-2:Tours
++33-1:Versailles
+
+
++594:Französisch-Guayana
+
+
++689:Französisch-Polynesien
+
+
++298:Färöer
+
+
++241:Gabun
+
+
++220:Gambia
+
+
++995:[GE]Georgien
++995-365:Achalziche
++995-222:Batumi
++995-370:Gori
++995-331:Kutaisi
++995-393:Poti
++995-34:Rustawi
++995-311:Samtredia
++995-122:Suchumi
++995-32:Tbilissi
++995-350:Telawi
++995-379:Tschiatura
++995-341:Zchinwali
+
+
++233:[GH]Ghana
++233-21:Accra
++233-72:Bolgatanga
++233-42:Cape Coast
++233-91:Ho
++233-81:Koforidua
++233-51:Kumasi
++233-61:Sunyani
++233-71:Tamale
+
+
++350:Gibraltar
+
+
++1473:Grenada
+
+
++30:[GR]Griechenland
++30-235:Agios Konstantinos Lokridos
++30-841:Agios Nikolaos
++30-641:Agrinion
++30-285:Amorgos
++30-282:Andros
++30-752:Argolis
++30-751:Argos
++30-375:Chalkidiki
++30-821:Chania
++30-271:Chios
++30-265:Delfi
++30-521:Drama
++30-381:Edessa
++30-753:Epidavros
++30-221:Halkis
++30-842:Ierapetra
++30-651:Ioannina
++30-81:Iraklion Kritis
++30-674:Ithaki
++30-721:Kalamata
++30-432:Kalambaka
++30-441:Karditsa
++30-245:Karpathos
++30-351:Katerini
++30-51:Kavalla
++30-671:Kefalonia
++30-661:Kerkyra
++30-341:Kilkis
++30-531:Komotini
++30-242:Kos
++30-461:Kozani
++30-623:Kylini
++30-231:Lamia
++30-41:Larissa
++30-645:Lefkas
++30-261:Levadia
++30-741:Loutrakion Korinthias
++30-287:Milos
++30-289:Mykonos
++30-251:Mytilini
++30-247:Patmos
++30-61:Patras
++30-621:Pyrgos Ilias
++30-273:Samos
++30-551:Samothraki
++30-286:Santorin
++30-321:Serrai
++30-284:Sifnos
++30-665:Sivota
++30-427:Skiathos
++30-424:Skopelos
++30-731:Sparta
++30-241:Symi
++30-281:Syros
++30-593:Thassos
++30-31:Thessaloniki
++30-283:Tinos
++30-431:Trikala
++30-71:Tripolis
++30-421:Volos
++30-1:Vouliagmeni
++30-298:Ydra
++30-695:Zakynthos
+
+
++44:[UK]Großbritannien und Nordirland
++44-1685:Aberdare
++44-1224:Aberdeen
++44-1970:Aberystwyth
++44-1665:Alnwick
++44-1264:Andover
++44-1861:Armagh
++44-1344:Ascot
++44-1233:Ashford
++44-1296:Aylesbury
++44-1629:Bakewell
++44-1678:Bala
++44-1266:Ballymena
++44-1295:Banbury
++44-1248:Bangor
++44-1247:Bangor Co Down
++44-1341:Barmouth
++44-1226:Barnsley
++44-1268:Basildon
++44-1256:Basingstoke
++44-1225:Bath
++44-1234:Bedford
++44-1232:Belfast
++44-1289:Berwick-on-Tweed
++44-121:Birmingham
++44-1254:Blackburn
++44-1204:Bolton
++44-1205:Boston
++44-1202:Bournemouth
++44-1274:Bradford
++44-13397:Braemar
++44-1277:Brentwood
++44-1278:Bridgwater
++44-117:Bristol
++44-1770:Brodick
++44-1288:Bude
++44-1282:Burnley
++44-1284:Bury St. Edmunds
++44-1298:Buxton
++44-1286:Caernarfon
++44-1581:Cairnryan
++44-1877:Callander
++44-1276:Camberley
++44-1223:Cambridge
++44-1227:Canterbury
++44-1222:Cardiff [alt]
++44-2920:Cardiff
++44-1239:Cardigan
++44-1228:Carlisle
++44-1267:Carmarthen
++44-1245:Chelmsford
++44-1242:Cheltenham
++44-1244:Chester
++44-1246:Chesterfield
++44-1243:Chichester
++44-1285:Cirencester
++44-1900:Cockermouth
++44-1206:Colchester
++44-1203:Coventry [alt]
++44-2476:Coventry
++44-1293:Crawley
++44-1381:Cromarty
++44-1556:Dalbeattie
++44-1325:Darlington
++44-1322:Dartford
++44-1626:Dawlish
++44-1332:Derby
++44-1302:Doncaster
++44-1624:Douglas
++44-1304:Dover
++44-1387:Dumfries
++44-1368:Dunbar
++44-1382:Dundee
++44-1383:Dunfermline
++44-1342:East Grinstead
++44-1323:Eastbourne
++44-131:Edinburgh
++44-1343:Elgin
++44-1353:Ely
++44-1365:Enniskillen
++44-1372:Epsom
++44-1386:Evesham
++44-1392:Exeter
++44-1324:Falkirk
++44-1252:Farnborough
++44-1394:Felixstowe
++44-1348:Fishguard
++44-1303:Folkestone
++44-1309:Forres
++44-1397:Fort William
++44-1445:Gairloch
++44-141:Glasgow
++44-1458:Glastonbury
++44-1452:Gloucester
++44-1476:Grantham
++44-1479:Grantown-on-Spey
++44-1474:Gravesend
++44-1493:Great Yarmouth
++44-1475:Greenock
++44-1461:Gretna
++44-1472:Grimsby
++44-1483:Guildford
++44-1422:Halifax
++44-1766:Harlech
++44-1279:Harlow
++44-1859:Harris
++44-1423:Harrogate
++44-1429:Hartlepool
++44-1255:Harwich
++44-1428:Haslemere
++44-1424:Hastings
++44-1969:Hawes
++44-1535:Haworth
++44-1442:Hemel Hempstead
++44-1491:Henley-on-Thames
++44-1432:Hereford
++44-1992:Hertford
++44-1494:High Wycombe
++44-1407:Holyhead
++44-1403:Horsham
++44-1484:Huddersfield
++44-1482:Hull
++44-1271:Ilfracombe
++44-1499:Inveraray
++44-1463:Inverness
++44-1473:Ipswich
++44-1835:Jedburgh
++44-1534:Jersey
++44-1573:Kelso
++44-1539:Kendal
++44-17687:Keswick
++44-1536:Kettering
++44-1562:Kidderminster
++44-1563:Kilmarnock
++44-1548:Kingsbridge
++44-1553:King´s Lynn
++44-1592:Kirkcaldy
++44-1555:Lanark
++44-1574:Larne
++44-113:Leeds
++44-116:Leicester
++44-1595:Lerwick
++44-1543:Lichfield
++44-1522:Lincoln
++44-1506:Linlithgow
++44-151:Liverpool
++44-1597:Llandrindod Wells
++44-1492:Llandudno
++44-1520:Lochcarron
++44-171:London [alt]
++44-207:London
++44-181:London [alt] (outer)
++44-208:London (outer)
++44-1504:Londonderry
++44-1507:Louth
++44-1502:Lowestoft
++44-1582:Luton
++44-1297:Lyme Regis
++44-1253:Lytham
++44-1625:Macclesfield
++44-1628:Maidenhead
++44-1622:Maidstone
++44-1687:Mallaig
++44-161:Manchester
++44-1623:Mansfield
++44-1858:Market Harborough
++44-1672:Marlborough
++44-1896:Melrose
++44-1643:Minehead
++44-1683:Moffat
++44-1600:Monmouth
++44-1674:Montrose
++44-1524:Morecombe
++44-1670:Morpeth
++44-1698:Motherwell
++44-1270:Nantwich
++44-1636:Newark
++44-1635:Newbury
++44-13967:Newcastle Co Down
++44-1273:Newhaven
++44-1638:Newmarket
++44-1633:Newport
++44-1637:Newquay
++44-1693:Newry
++44-1604:Northampton
++44-1603:Norwich
++44-115:Nottingham
++44-1631:Oban
++44-1837:Okehampton
++44-1662:Omagh
++44-1691:Oswestry
++44-1865:Oxford
++44-1646:Pembroke
++44-1768:Penrith
++44-1736:Penzance
++44-1738:Perth
++44-1733:Peterborough
++44-1779:Peterhead
++44-1751:Pickering
++44-1796:Pitlochry
++44-1752:Plymouth
++44-1443:Pontypridd
++44-1705:Portsmouth [alt]
++44-2392:Portsmouth
++44-1265:Portstewart
++44-1707:Potters Bar
++44-1292:Prestwick
++44-1229:Ravenglass
++44-118:Reading
++44-1737:Reigate
++44-1748:Richmond
++44-1773:Ripley
++44-1889:Rocester
++44-1706:Rochdale
++44-1989:Ross-on-Wye
++44-1709:Rotherham
++44-1788:Rugby
++44-1983:Ryde
++44-1722:Salisbury
++44-1481:Sark
++44-1723:Scarborough
++44-1757:Selby
++44-114:Sheffield
++44-1743:Shrewsbury
++44-1756:Skipton
++44-1703:Southampton [alt]
++44-2380:Southampton
++44-1702:Southend-on-Sea
++44-1704:Southport
++44-1775:Spalding
++44-1727:St. Albans
++44-1744:St. Helens
++44-1480:St. Ives
++44-1785:Stafford
++44-1784:Staines
++44-1780:Stamford
++44-1580:Staplehurst
++44-1786:Stirling
++44-1642:Stockton-on-Tees
++44-1782:Stoke-on-Trent
++44-1569:Stonehaven
++44-1851:Stornoway
++44-1384:Stourbridge
++44-1776:Stranraer
++44-1789:Stratford-upon-Avon
++44-1929:Swanage
++44-1792:Swansea
++44-1793:Swindon
++44-1880:Tarbert
++44-1823:Taunton
++44-1952:Telford
++44-1834:Tenby
++44-1684:Tewkesbury
++44-1843:Thanet
++44-1842:Thetford
++44-1375:Tilbury
++44-1621:Tiptree
++44-1688:Tobermory
++44-1732:Tonbridge
++44-1803:Torquay
++44-1892:Tunbridge Wells
++44-191:Tyneside
++44-1854:Ullapool
++44-1895:Uxbridge
++44-1924:Wakefield
++44-1922:Walsall
++44-1925:Warrington
++44-1926:Warwick
++44-1923:Watford
++44-1749:Wells
++44-1938:Welshpool
++44-1937:Wetherby
++44-1932:Weybridge
++44-1305:Weymouth
++44-1947:Whitby
++44-1942:Wigan
++44-1962:Winchester
++44-15394:Windermere
++44-1753:Windsor
++44-1902:Wolverhampton
++44-1905:Worcester
++44-1903:Worthing
++44-1978:Wrexham
++44-1935:Yeovil
++44-1904:York
++44-4:Mobilfunk
++44-7:Mobilfunk
+
++299:Grönland
+
+
++590:Guadeloupe (einschl. St. Barthélemy u. St. Martin (Nördl.Teil))
+
+
++1671:Guam
+
+
++539:Guantanamo
++539-9:Guantanamo Bay
+
+
++502:Guatemala
+
+
++224:Guinea
+
+
++245:Guinea-Bissau
+
+
++592:Guyana
++592-2:Georgetown
++592-3:New Amsterdam
+
+
++509:Haiti
+
+
++504:Honduras
+
+
++852:Hongkong
+
+
++91:[IN]Indien
++91-562:Agra
++91-79:Ahmedabad
++91-532:Allahabad
++91-183:Amritsar
++91-80:Bangalore
++91-755:Bhopal
++91-674:Bhubaneshwar
++91-22:Bombay
++91-172:Chandigarh
++91-422:Coimbatore
++91-354:Darjeeling
++91-484:Ernakulam (Cochin)
++91-359:Gangtok
++91-361:Guwahati (Gauhati)
++91-40:Hyderabad
++91-731:Indore
++91-761:Jabalpur
++91-141:Jaipur
++91-291:Jodhpur
++91-33:Kalkutta
++91-512:Kanpur
++91-522:Lucknow
++91-44:Madras
++91-452:Madurai
++91-4113:Mahabalipuram
++91-824:Mangalore
++91-121:Meerut
++91-1362:Mussoorie
++91-821:Mysore
++91-712:Nagpur
++91-5942:Nainital
++91-93:Nakama
++91-11:Neu Delhi
++91-423:Ooty
++91-832:Panjim (Goa)
++91-612:Patna
++91-212:Pune
++91-6752:Puri
++91-661:Rourkela
++91-177:Simla
++91-261:Surat
++91-265:Vadodara (Baroda)
++91-542:Varanasi
++91-891:Vishakapatnam
+
+
++62:[ID]Indonesien
++62-911:Ambon
++62-22:Bandung
++62-511:Banjarmasin
++62-361:Denpasar
++62-21:Jakarta
++62-741:Jambi
++62-967:Jayapura
++62-380:Kupang
++62-341:Malang
++62-61:Medan
++62-751:Padang
++62-711:Palembang
++62-451:Palu
++62-761:Pekanbaru
++62-561:Pontianak
++62-541:Samarinda
++62-24:Semarang
++62-31:Surabaya
++62-411:Ujungpandang
++62-274:Yogyakarta
+
+
++964:[IQ]Irak
++964-43:Amara
++964-1:Baghdad
++964-25:Baquba
++964-40:Basrah
++964-36:Diwaniya
++964-30:Hilla
++964-32:Kerbala
++964-50:Kirkuk
++964-23:Kut
++964-60:Mosul
++964-33:Najaf
++964-42:Nasiriya
++964-24:Ramadi
++964-37:Samawa
++964-21:Tikrit
+
+
++98:[IR]Iran
++98-631:Abadan
++98-61:Ahwaz
++98-761:Bandar-e-Abbas
++98-771:Bandar-e-Bushehr
++98-671:Behbahan
++98-561:Birdjand
++98-6621:Borujerd
++98-641:Dezfoul
++98-251:Ghom
++98-81:Hamadan
++98-31:Isfahan
++98-361:Kashan
++98-341:Kerman
++98-831:Kermanshah
++98-6324:Khorramshahr
++98-51:Mashad
++98-131:Rasht
++98-571:Sabzevar
++98-71:Shiraz
++98-41:Tabriz
++98-21:Tehran
++98-351:Yazd
+
+
++353:[IE]Irland
++353-402:Arklow
++353-902:Athlone
++353-96:Ballina
++353-503:Carlow
++353-78:Carrick
++353-94:Castlebar
++353-21:Cork
++353-73:Donegal
++353-41:Drogheda
++353-1:Dublin
++353-42:Dundalk
++353-65:Ennis
++353-91:Galway
++353-56:Kilkenny
++353-64:Killarney
++353-74:Letterkenny
++353-8:Mobilfunk
++353-47:Monaghan
++353-44:Mullingar
++353-61:Shannon
++353-71:Sligo
++353-66:Tralee
++353-51:Waterford
++353-53:Wexford
++353-404:Wicklow
+
+
++354:[IS]Island
+
+
++972:[IL]Israel
++972-2:Jerusalem
++972-9:Tira
++972-4:Tirat Hacarmel
++972-6:Um el Fahem
++972-8:Yavne
++972-3:Yehud
++972-7:Zikim
+
+
++39:[IT]Italien
++39-3:Mobilfunk
++39-56:Mobilfunk
++39-010:Genova (Genua)
++39-011:Torino (Turin)
++39-0121:Pinerolo
++39-0122:Susa
++39-0123:Ceres
++39-0124:Pont Canavese
++39-0125:Ivrea
++39-0131:Alessandria
++39-0141:Asti
++39-0142:Casale Monferrato
++39-0143:Novi Ligure
++39-0144:Acqui Terme
++39-015:Biella
++39-0161:Vercelli
++39-0163:Borgosesia
++39-0165:Aosta
++39-0166:Chatillon
++39-0171:Cuneo
++39-0172:Bra
++39-0173:Alba
++39-0174:Mondovi
++39-0175:Saluzzo
++39-0182:Albenga
++39-0183:Imperia
++39-0184:San Remo
++39-0185:Rapallo
++39-0187:La Spezia
++39-019:Savona
++39-02:Milano (Mailand)
++39-030:Brescia
++39-031:Como
++39-0321:Novara
++39-0322:Borgomanero
++39-0323:Omegna
++39-0324:Domodossola
++39-0331:Busto Arsizio
++39-0332:Varese
++39-0341:Lecco
++39-0342:Sondrio
++39-0343:Chiavenna
++39-0344:Porlezza
++39-0345:Zogno
++39-0346:Clusone
++39-035:Bergamo
++39-0362:Seregno
++39-0363:Caravaggio
++39-0364:Pisogne
++39-0365:Bagolino
++39-0371:Sante Angelo Lodigiano
++39-0372:Cremona
++39-0373:Crema
++39-0374:Soresina
++39-0375:Viadana
++39-0376:Mantova
++39-0377:Casalpusterlengo
++39-0381:Vigevano
++39-0382:Pavia
++39-0383:Voghera
++39-0384:Mortara
++39-0385:Stradella
++39-0386:Ostiglia
++39-039:Monza
++39-040:Trieste
++39-041:Venezia (Venedig)
++39-0421:Eraclea
++39-0422:Treviso
++39-0423:Montebelluna
++39-0424:Asiago
++39-0425:Rovigo
++39-0426:Àdria/Porte Tolle
++39-0427:Maniago
++39-0428:Tarvisio
++39-0429:Montagnana
++39-0431:Grado
++39-0432:Udine
++39-0433:Ampezzo
++39-0434:Aviano, Pordenone
++39-0435:Pieve di Cadore
++39-0436:Cortina d'Ampezzo
++39-0437:Belluno
++39-0438:Conegliano
++39-0439:Feltre
++39-0442:Cerca
++39-0444:Vicenza
++39-0445:Thiene
++39-045:Verona
++39-0461:Trento (Trent)
++39-0462:Predazzo
++39-0463:Male
++39-0464:Rovereto
++39-0465:Pinzolo
++39-0471:Bolzano
++39-0472:Bressanone
++39-0473:Merano
++39-0474:Dobbiasco
++39-048:Gorizia
++39-049:Padova (Padua)
++39-050:Pisa
++39-051:Bologna
++39-0521:Parma
++39-0522:Reggio nell'Emilia
++39-0523:Piacenza
++39-0524:Fidenza
++39-0525:Borgo Val di Taro
++39-0532:Ferrara
++39-0533:Mesola
++39-0534:Porretta Terme
++39-0535:Mirandola
++39-0536:Pavullo nel Frignano
++39-0541:San Marino
++39-0542:Imola
++39-0543:Forli
++39-0544:Ravenna
++39-0545:Lugo
++39-0546:Brisignella
++39-0547:Cesena
++39-0549 San Marino, Rimini (independent country)
++39-055:Firenze (Florenz)
++39-0564:Grosseto
++39-0565:Piombino
++39-0566:Gavorrano
++39-0571:San Miniato Citta
++39-0572:Pescia
++39-0573:Pistoia
++39-0574:Prato
++39-0575:Arezzo
++39-0577:Siena
++39-0578:Montepulciano
++39-0583:Lucca
++39-0584:Viareggio
++39-0585:Carrara/Massa
++39-0586:Livorno (Leghorn)
++39-0587:Pontedera
++39-0588: Volterra
++39-059:Modena
++39-06:Roma (Rom)
++39-066:Civitavecchia
++39-070:Cagliari
++39-071:Ancona
++39-0721:Pesaro
++39-0722:Urbino
++39-0731:Iesi
++39-0732:Sassoferrato
++39-0733:Macerata
++39-0734:Fermo
++39-0735:San Benedetto del Tronto
++39-0736:Ascoli Piceno
++39-0737:Camerino
++39-0742:Foligno
++39-0743:Spoleto
++39-0744:Terni
++39-0746:Rieti
++39-075:Perugia
++39-0761:Viterbo
++39-0763:Orvieto
++39-0765:Fara in Sabina
++39-0771:Gaeta
++39-0773:Latina
++39-0774:Tivoli
++39-0775:Frosinone
++39-0776:Arpino
++39-0781:Iglesias
++39-0782:Tortoli
++39-0783:Oristano
++39-0784:Nuoro
++39-0785:Abbasanta
++39-0789:Olbia
++39-079:Sassari
++39-080:Bari
++39-081:Napoli (Neapel)
++39-0823:Santa Maria Capua Vetere
++39-0824:Benevento
++39-0825:Avellino
++39-0827:Calitri
++39-0828:Battipaglia
++39-0831:Brindisi
++39-0832:Lecce
++39-0833:Casarano
++39-0835:Matera
++39-0836:Otranto
++39-085:Pescara
++39-0861:Teramo
++39-0862:L'Aquila
++39-0863:Avezzano
++39-0864:Pràtola Peligna
++39-0865:Isèrnia
++39-0871:Chieti
++39-0872:Atessa
++39-0873:Vasto
++39-0874:Campobasso
++39-0875:Tèrmoli
++39-0881:Foggia
++39-0882:San Severo
++39-0883:Andria/Barletta
++39-0884:Manfredonia
++39-0885:Cerignola
++39-089:Salerno
++39-090:Messina
++39-091:Palermo
++39-0921:Cefalu
++39-0922:Agrigento
++39-0923:Trapani
++39-0924:Alcamo
++39-0925:Sciacca
++39-0931:Siracusa
++39-0932:Ragusa
++39-0933:Gela
++39-0934:Caltanissetta
++39-0935:Enna
++39-0941:Tortorici
++39-0942:Taormina
++39-095:Catania
++39-0961:Catanzaro
++39-0962:Crotone
++39-0963:Vibo Valentia
++39-0964:Locri
++39-0965:Reggio di Calabria
++39-0966:Palmi Calabro
++39-0967:Chiaravalle Centrale
++39-0968:Nicastro
++39-0971:Acerenza/Potenza
++39-0972:Rionero in Vulture
++39-0973:Lauria
++39-0974:Agropoli
++39-0975:Sala Colsilina
++39-0976:Muro Lucano
++39-0981:Castrovillari
++39-0982:Paola
++39-0983:Rossano Calabro
++39-0984:Cosenza
++39-0985:Verbicaro
++39-099:Taranto
+
+
++1876:Jamaika
+
+
++81:[JP]Japan
++81-424:Chofu
++81-92:Fukuoka
++81-245:Fukushima
++81-138:Hakodate
++81-425:Hino
++81-82:Hiroshima
++81-294:Hitachi
++81-727:Ikeda
++81-776:Kanazu
++81-44:Kawasaki
++81-93:Kita-Kyushu
++81-78:Kobe
++81-552:Kofu
++81-154:Kushiro
++81-143:Muroran
++81-258:Nagaoka
++81-958:Nagasaki
++81-980:Nago
++81-52:Nagoya
++81-98:Naha
++81-975:Oita
++81-234:Sakata
++81-11:Sapporo
++81-22:Sendai
++81-3:Tokyo
++81-764:Toyama
++81-6:Toyonaka
++81-48:Urawa
++81-745:Yamato Takada
++81-75:Yamazaki
++81-45:Yokohama
++81-1235:Yubari
+
+
++967:Jemen
++967-2:Aden
++967-3:Hodaidah
++967-1:Sanaa
++967-4:Taiz
+
+
++962:[JO]Jordanien
++962-6:Amman
++962-2:Jerash
++962-8:Madaba
++962-5:Salt
++962-3:Wadi Musa (Petra)
++962-9:Zarqa
+
+
++381:[YU]Jugoslawien (Serbien und Montenegro)
++381-11:Beograd
++381-84:Bijelo Polje
++381-30:Bor
++381-32:Cacak
++381-86:Cetinje
++381-390:Dakovica
++381-280:Gnjilane
++381-871:Ivangrad
++381-230:Kikinda
++381-28:Kosovska Mitrovica
++381-82:Kotor
++381-34:Kragujevac
++381-36:Kraljevo
++381-37:Krusevac
++381-16:Leskovac
++381-83:Niksic
++381-18:Nis
++381-20:Novi Pazar
++381-21:Novi Sad
++381-13:Pancevo
++381-35:Paracin
++381-39:Pec
++381-10:Pirot
++381-872:Pljevlja
++381-81:Podgorica
++381-12:Pozarevac
++381-33:Prijepolje
++381-38:Pristina
++381-29:Prizren
++381-27:Prokuplje
++381-15:Sabac
++381-26:Smederevo
++381-25:Sombor
++381-22:Sremska Mitrovica
++381-24:Subotica
++381-85:Ulcinj
++381-290:Urosevac
++381-31:Uzice
++381-14:Valjevo
++381-17:Vranje
++381-19:Zajecar
++381-23:Zrenjanin
+
+
++855:[KH]Kambodscha
++855-53:Battambang
++855-42:Kampong Cham
++855-33:Kampot
++855-23:Phnom Penh
++855-43:Prey Veng
++855-63:Seam Reap
++855-34:Sihanouk Ville
++855-24:Takhmau
+
+
++237:Kamerun
+
+
++238:Kap Verde
+
+
++733:Kasachstan
++733-022:Arkalyk
+
+
++974:Katar
+
+
++254:[KE]Kenia
++254-150:Athi River
++254-337:Bungoma
++254-321:Eldoret
++254-161:Embu
++254-131:Garissa
++254-331:Kakamega
++254-35:Kisumu
++254-325:Kitale
++254-121:Lamu
++254-123:Malindi
++254-11:Mombasa
++254-2:Nairobi
++254-37:Nakuru
++254-176:Nanyuki
++254-171:Nyeri
++254-151:Thika
+
+
++996:[KG]Kirgisistan
++996-3312:Bischkek
++996-33941:Kadshi-Saj
++996-33746:Kara-Kul
++996-33522:Naryn
++996-33222:Osch
++996-33722:Shalal-Abad
++996-33422:Talas
++996-33145:Tokmak
++996-33747:Toktogul
+
+
++686:Kiribati
+
+
++57:[CO]Kolumbien
++57-67:Armenia
++57-1:Bogotá
++57-7:Bucaramanga
++57-2:Cali
++57-5:Cartagena
++57-75:Cúcuta
++57-82:Ibagué
++57-68:Manizales
++57-4:Medellín
++57-47:Montería
++57-27:Pasto
++57-63:Pereira
++57-28:Popayán
++57-54:Santa Marta
++57-87:Tunja
++57-8:Villavicencio
+
+
++243:[CG]Kongo
++243-12:Kinshasa
++243-222:Lubumbashi
+
+
++242:Kongo, Demokratische Republik
+
+
++850:[KP]Korea (Demokratische Volksrepublik)
++850-2:Pyongyang
+
+
++82:[KR]Korea (Republik)
++82-64:Cheju
++82-431:Chongju
++82-652:Chonju
++82-361:Chunchon
++82-32:Incheon
++82-62:Kwangju
++82-561:Kyongju
++82-551:Masan
++82-51:Pusan
++82-2:Seoul
++82-331:Suwon
++82-53:Taegu
++82-42:Taejon
++82-351:Uijongbu
+
+
++385:[HR]Kroatien
++385-43:Daruvar
++385-53:Gospic
++385-20:Korcula
++385-34:Nasice
++385-47:Ogulin
++385-31:Osijek
++385-51:Rijeka
++385-52:Rovinj-Rovigno
++385-22:Sibenik
++385-44:Sisak
++385-35:Slavonski Brod
++385-21:Split
++385-42:Varazdin
++385-32:Vukovar
++385-49:Zabok
++385-23:Zadar
++385-1:Zagreb
+
+
++53:[CU]Kuba
++53-322:Camagüey
++53-7:Havanna
++53-24:Holguin
++53-226:Santiago de Cuba
+
+
++965:Kuwait
+
+
++856:[LA]Laos
++856-71:Luangprabang
++856-86:Luoangnamtha
++856-81:Oudomxay
++856-54:Paksane
++856-31:Pakse
++856-41:Svannakhet
++856-51:Thakhek
++856-21:Vientiane
+
+
++266:Lesotho
+
+
++371:[LV]Lettland
++371-51:Aizkraukle
++371-43:Aluksne
++371-45:Balvi
++371-39:Bauska
++371-41:Cesis
++371-54:Daugavpils
++371-37:Dobele
++371-44:Gulbene
++371-52:Jekabpils
++371-30:Jelgava
++371-56:Kraslava
++371-33:Kuldiga
++371-34:Liepaja
++371-40:Limbazi
++371-57:Ludza
++371-48:Madona
++371-50:Ogre
++371-53:Preili
++371-46:Rezekne
++371-2:Riga
++371-38:Saldus
++371-32:Talsi
++371-31:Tukums
++371-47:Valka
++371-42:Valmiera
++371-36:Ventspils
+
+
++961:[LB]Libanon
++961-5:Bei Eddine
++961-1:Beirut
++961-4:Dhour Choueir
++961-9:Jounieh
++961-6:Tripoli
++961-7:Tyrus
++961-8:Zahla
+
+
++231:Liberia
+
+
++218:[LY]Libyen
++218-64:Adjidabia
++218-282:Agilat
++218-63:Benena
++218-22:Bengasher
++218-61:Bengasi
++218-81:Derna
++218-281:Djimail
++218-41:Garyan
++218-44:Jado
++218-421:Jefren
++218-31:Khoms
++218-51:Mesrata
++218-47:Nalot
++218-24:Sabrata
++218-71:Sebha
++218-273:Sorman
++218-21:Tripolis
++218-272:Zahra
++218-23:Zavia
++218-25:Zuara
+
+
++423:Liechtenstein
+
+
++370:[LT]Litauen
++370-35:Alytus
++370-51:Anyksciai
++370-10:Birstonas
++370-20:Birzai
++370-33:Druskininkai
++370-37:Elektrenai
++370-40:Gargzdai
++370-29:Ignalina
++370-19:Jonava
++370-96:Joniskis
++370-48:Jurbarkas
++370-56:Kaisiadorys
++370-7:Kaunas
++370-57:Kedainiai
++370-97:Kelme
++370-6:Klaipeda
++370-58:Kretinga
++370-31:Kupiskis
++370-68:Lazdijai
++370-43:Marijampole
++370-93:Mazeikiai
++370-30:Moletai
++370-95:Naujoji Akmene
++370-59:Nida
++370-91:Pakruojis
++370-36:Palanga
++370-54:Panevezys
++370-71:Pasvalys
++370-18:Plunge
++370-49:Prienai
++370-92:Radviliskis
++370-28:Raseiniai
++370-78:Rokiskis
++370-47:Sakiai
++370-50:Salcininkai
++370-1:Siauliai
++370-69:Silale
++370-41:Silute
++370-32:Sirvintos
++370-16:Skuodas
++370-17:Svencionys
++370-46:Taurage
++370-94:Telsiai
++370-38:Trakai
++370-11:Ukmerge
++370-39:Utena
++370-60:Varena
++370-42:Vilkaviskis
++370-2:Vilnius
++370-66:Visaginas
++370-70:Zarasai
+
+
++352:Luxemburg
+
+
++853:Macau
+
+
++261:[MG]Madagaskar
++261-47:Ambositra
++261-88:Antalaha
++261-22:Antananarivo
++261-44:Antsirabe
++261-82:Antsiranana
++261-75:Fianarantsoa
++261-62:Mahajanga
++261-48:Moyen Ouest
++261-53:Toamasina
++261-92:Tolagnaro
++261-94:Toliary
+
+
++265:Malawi
+
+
++60:[MY]Malaysia (einschl. Sabah und Sarawak)
++60-5:Ipoh
++60-7:Johor Bahru
++60-88:Kota Kinabalu
++60-3:Kuala Lumpur
++60-9:Kuantan
++60-82:Kuching
++60-87:Labuan
++60-4:Penang
++60-6:Seremban
+
+
++960:Malediven
+
+
++223:Mali
+
+
++356:Malta
+
+
++1670:Marianen, Nördliche
+
+
++212:[MA]Marokko
++212-2:Casablanca
++212-5:Meknes
++212-6:Oujda
++212-4:Safi
++212-3:Settat
++212-7:Sidi Kacem
++212-9:Tetouan
++212-8:Tiznit
+
+
++692:Marshallinseln
+
+
++596:Martinique
+
+
++222:Mauretanien
++222-261:Akjoujt
++222-245:Nouadhibou
++222-25:Nouakchott
++222-269:Rosso
+
+
++230:Mauritius
+
+
++26971:Mayotte
+
+
++389:[MK]Mazedonien
++389-97:Bitola
++389-95:Kicevo
++389-903:Kocani
++389-901:Kumanovo
++389-96:Ohrid
++389-98:Prilep
++389-91:Skopje
++389-92:Stip
++389-902:Strumica
++389-94:Tetovo
++389-93:Titov Veles
+
+
++52:[MX]Mexiko
++52-74:Acapulco
++52-633:Agua Prieta
++52-49:Aguascalientes
++52-981:Campeche
++52-98:Cancun
++52-14:Chihuahua
++52-877:Ciudad Acuna
++52-16:Ciudad Juarez
++52-73:Cuernavaca
++52-67:Culiacan
++52-3:Guadalajara
++52-62:Hermosillo
++52-112:La Paz
++52-47:Leon
++52-88:Matamoros
++52-65:Mexicali
++52-5:Mexico Stadt
++52-8:Monterrey
++52-99:Mérida
++52-631:Nogales
++52-87:Nuevo Laredo
++52-878:Piedras Negras
++52-22:Puebla
++52-42:Queretaro
++52-89:Reynosa
++52-84:Saltillo
++52-48:San Luis Potosi
++52-12:Tampico
++52-665:Tecate
++52-66:Tijuana
++52-17:Torreon
+
+
++691:Mikronesien, Föderierte Staaten von
+
+
++373:Moldau Republik
++373-31:Balti (Belzy)
++373-47:Briceni
++373-39:Cahul
++373-2:Chisinau (Kischinew)
++373-38:Comrat
++373-45:Dubasari
++373-35:Orhei
++373-30:Soroca
++373-32:Tighina (Bender/Bendery)
++373-33:Tiraspol
+
+
++377:Monaco
+
+
++976:[MN]Mongolei
++976-65:Arvaikheer
++976-31:Baganuur
++976-51:Baruun-Urt
++976-67:Bulgan
++976-61:Choibalsan
++976-37:Darkhan
++976-35:Erdenet
++976-43:Khovd
++976-33:Nalaikh
++976-49:Sukhbaatar
++976-1:Ulaanbaatar
++976-39:Underkhaan
+
+
++1664:Montserrat
+
+
++258:[MZ]Mosambik
++258-3:Beira
++258-1:Matola
++258-6:Nampula
++258-4:Quelimane
+
+
++95:[MM]Myanmar
++95-2:Mandalay
++95-81:Taunggyi
++95-1:Yangon (Rangoon, Rangun)
+
+
++264:[NA]Namibia
++264-63:Keetmanshoop
++264-6331:Lüderitz
++264-6332:Oranjemund
++264-6751:Oshakati
++264-651:Otjiwarongo
++264-671:Tsumeb
++264-64:Walvis Bay
++264-61:Windhoek Airport
+
+
++674:Nauru
+
+
++977:[NP]Nepal
++977-1:Patan
++977-61:Pokhara
+
+
++687:Neukaledonien
+
+
++64:[NZ]Neuseeland
++64-40:Cluj-Napoca
++64-7:Thames
++64-3:Timaru
++64-6:Wanganui
++64-4:Wellington
++64-9:Whangarei
+
+
++505:[NI]Nicaragua
++505-54:Boaco
++505-341:Chinandega
++505-42:Diriamba
++505-71:Esteli
++505-55:Granada
++505-311:Leon
++505-2:Managua
++505-52:Masaya
++505-61:Matagalpa
++505-46:Rivas
+
+
++31:[NL]Niederlande
++31-10:Rotterdam
++31-111:Zierikzee
++31-113:Goes
++31-114:Hulst
++31-115:Terneuzen
++31-117:Oostburg
++31-118:Middelburg
++31-13:Tilburg
++31-15:Delft
++31-161:Rijen
++31-162:Oosterhout Noord-Brabant
++31-164:Bergen op Zoom
++31-165:Roosendaal
++31-166:Tholen
++31-167:Steenbergen
++31-168:Zevenbergen
++31-172:Alphen ad Rijn
++31-174:Hoek van Holland
++31-180:Ridderkerk, Nieuwerkerk ad Ijssel
++31-181:Spijkenisse
++31-182:Gouda
++31-183:Gorinchem
++31-184:Sliedrecht
++31-186:Oud-Beijerland
++31-187:Middelharnis
++31-20:Amsterdam
++31-222:Texel
++31-223:Den Helder
++31-224:Schagen
++31-226:Noord-Scharwoude
++31-227:Middenmeer
++31-228:Enkhuizen
++31-229:Hoorn
++31-23:Haarlem
++31-24:Nijmegen
++31-251:Beverwijk
++31-252:Kaag, Lisse
++31-255:Ijmuiden
++31-26:Arnhem
++31-294:Weesp
++31-297:Aalsmeer
++31-299:Edam, Purmerend
++31-30:Utrecht
++31-313:Dieren,Eerbeek
++31-314:Doetinchem
++31-315:Terborg
++31-316:Zevenaar
++31-317:Wageningen
++31-318:Ede
++31-320:Lelystad
++31-321:Dronten
++31-33:Amersfoort
++31-341:Harderwijk
++31-342:Barneveld
++31-343:Doorn
++31-344:Tiel
++31-345:Culemborg
++31-346:Maarssen
++31-347:Everdingen
++31-348:Woerden
++31-35:Hilversum
++31-36:Almere
++31-38:Zwolle
++31-40:Eindhoven
++31-411:Boxtel
++31-412:Oss
++31-413:Veghel
++31-416:Waalwijk
++31-418:Zaltbommel
++31-43:Maastricht
++31-45:Heerlen
++31-46:Sittard
++31-475:Roermond
++31-478:Venray
++31-481:Bemmel
++31-485:Boxmeer
++31-486:Grave
++31-487:Druten
++31-488:Zetten
++31-492:Helmond
++31-493:Deurne
++31-495:Weert
++31-497:Eersel
++31-499:Best
++31-50:Groningen
++31-511:Veenwouden
++31-512:Drachten
++31-513:Heerenveen
++31-514:Balk
++31-515:Sneek
++31-516:Oosterwolde
++31-517:Franeker, Harlingen
++31-518:St.Annaparochie
++31-519:Dokkum
++31-521:Steenwijk
++31-522:Meppel
++31-523:Dedemsvaart
++31-524:Coevorden
++31-525:Elburg
++31-527:Emmeloord
++31-528:Hoogeveen
++31-529:Ommen
++31-53:Enschede
++31-541:Oldenzaal
++31-543:Winterswijk
++31-544:Groenlo
++31-545:Neede
++31-546:Almelo
++31-547:Goor
++31-548:Rijssen
++31-55:Apeldoorn
++31-561:Wolvega
++31-562:Terschelling
++31-566:Grouw
++31-570:Deventer
++31-571:Twello
++31-572:Raalte
++31-573:Lochem
++31-575:Zutphen
++31-577:Uddel
++31-578:Epe
++31-58:Leeuwarden
++31-591:Emmen
++31-592:Assen
++31-593:Beilen
++31-594:Zuidhorn
++31-595:Warffum
++31-596:Delfzijl
++31-597:Winschoten
++31-598:Hoogezand
++31-599:Stadskanaal
++31-6:GSM-Netze
++31-70:Den Haag
++31-71:Leiden
++31-72:Alkmaar
++31-73:Den Bosch
++31-74:Hengelo Overijssel
++31-75:Zaandam
++31-76:Breda
++31-77:Venlo
++31-78:Dordrecht
++31-79:Zoetermeer
++31-80:Sonderdienste (gratis)
++31-90:Sonderdienste (bezahlt)
+
+
++599:[AN]Niederländische Antillen
++599-7:Bonaire
++599-9:Curacao
++599-4:Saba
++599-3:St.Eustatius
++599-5:St.Maarten
+
+
++227:Niger
+
+
++234:[NG]Nigeria
++234-82:Aba
++234-9:Abuja
++234-52:Benin City
++234-87:Calabar
++234-42:Enugu
++234-2:Ibadan
++234-31:Ilorin
++234-62:Kaduna
++234-64:Kano
++234-1:Lagos
++234-44:Makurdi
++234-34:Ondo
++234-46:Onitsha
++234-83:Owerri
++234-84:Port Harcourt
++234-60:Sokoto
+
+
++683:Niue
+
+
++6723:Norfolkinsel
+
+
++47:[NO]Norwegen
++47-22:Oslo
+
+
++43:[AT]Österreich
++43-5:private Netze
++43-50:private Netze
++43-517:private Netze
++43-557:private Netze
++43-559:private Netze
++43-650:MOBILTELEFONNETZ TELERING
++43-663:MOBILNETZ C und D   
++43-664:MOBILNETZ GSM (A1)
++43-676:MOBILNETZ GSM (MAX. MOBIL)
++43-699:MOBILNETZ GSM (ONE)
++43-70:Personenbezogene Dienste
++43-1:Wien
++43-2142:Gattendorf
++43-2143:Kittsee
++43-2144:Deutsch Jahrndorf
++43-2145:Deutsch Haslau
++43-2146:Nickelsdorf
++43-2147:Zurndorf
++43-2160:Winden am See
++43-2162:Bruck an der Leitha
++43-2163:Petronell-Carnuntum
++43-2164:Rohrau
++43-2165:Hainburg an der Donau
++43-2166:Parndorf
++43-2167:Neusiedl am See
++43-2169:Götzendorf an der Leitha
++43-2172:Frauenkirchen
++43-2173:Gols
++43-2174:Pamhagen
++43-2175:Apetlon
++43-2176:St. Andrä am Zicksee
++43-2177:Podersdorf am See
++43-2212:Orth an der Donau
++43-2213:Schönfeld im Marchfeld
++43-2214:Engelhartstetten
++43-2215:Oberhausen
++43-2216:Leopoldsdorf im Marchfeld
++43-222:Wien
++43-2230:Schwadorf bei Wien
++43-2231:Purkersdorf
++43-2232:Fischamend
++43-2233:Pressbaum
++43-2234:Gramatneusiedl
++43-2235:Lanzendorf
++43-2236:Mödling
++43-2237:Sittendorf bei Wien
++43-2238:Dornbach im Wienerwald
++43-2239:Breitenfurt bei Wien
++43-2242:Königstetten
++43-2243:Klosterneuburg
++43-2244:Langenzersdorf
++43-2245:Großebersdorf
++43-2246:Gerasdorf bei Wien
++43-2247:Deutsch Wagram
++43-2248:Parbasdorf
++43-2249:Oberhausen
++43-2252:Baden bei Wien
++43-2253:Teesdorf
++43-2254:Ebreichsdorf
++43-2255:Seibersdorf, Leitha
++43-2256:Leobersdorf
++43-2257:Klausen-Leopoldsdorf
++43-2258:Alland
++43-2259:Münchendorf
++43-2262:Korneuburg
++43-2263:Kreuzstetten
++43-2264:Leobendorf
++43-2265:Hausleiten
++43-2266:Stockerau
++43-2267:Sierndorf
++43-2268:Großmugl
++43-2269:Niederhollabrunn
++43-2271:Weinzierl
++43-2272:Freundorf bei Tulln
++43-2273:Tulln
++43-2274:Pressbaum
++43-2275:Michelhausen
++43-2276:Herzogenburg
++43-2277:Zwentendorf an der Donau
++43-2278:Absdorf
++43-2279:Kirchberg am Wagram
++43-2282:Gänserndorf
++43-2283:Angern an der March
++43-2284:Oberweiden
++43-2285:Groißenbrunn
++43-2286:Obersiebenbrunn
++43-2287:Bockfließ
++43-2288:Auersthal
++43-2289:Groß Schweinbarth
++43-2522:Laa an der Thaya
++43-2523:Kirchstetten
++43-2524:Hagenberg
++43-2525:Gnadendorf
++43-2526:Großharras, Unterstinkenbrunn
++43-2527:Zwingendorf
++43-2532:Zistersdorf
++43-2533:Palterndorf
++43-2534:Obersulz
++43-2535:Hohenau an der March
++43-2536:Drösing
++43-2538:Dürnkrut
++43-2552:Poysdorf
++43-2554:Drasenhofen
++43-2555:Herrnbaumgarten
++43-2556:Großkrut
++43-2557:Altlichtenwarth
++43-2572:Eibesthal
++43-2573:Kettlasbrunn
++43-2574:Bad Pirawarth
++43-2575:Eggersdorf
++43-2576:Ernstbrunn
++43-2577:Asparn an der Zaya
++43-2610:Horitschon
++43-2611:Klostermarienberg
++43-2612:Oberpullendorf
++43-2613:Deutschkreutz
++43-2614:Großwarasdorf
++43-2615:Frankenau
++43-2616:Deutsch Gerisdorf
++43-2617:Draßmarkt
++43-2618:Kobersdorf
++43-2619:Lackenbach
++43-2620:Höflein an der Hohen Wand
++43-2621:Sieggraben
++43-2622:Wiener Neustadt
++43-2623:Landegg
++43-2624:Ebenfurth
++43-2625:Bad Sauerbrunn
++43-2626:Forchtenstein
++43-2627:Bromberg
++43-2628:Blumau-Neurißhof
++43-2629:Warth
++43-2630:Buchbach
++43-2631:Lichtenwörth-Nadelburg
++43-2632:Miesenbach
++43-2633:Alkersdorf
++43-2634:Gutenstein
++43-2635:Neunkirchen
++43-2636:Gutenstein
++43-2637:Grünbach am Schneeberg
++43-2638:Breitenau am Steinfelde
++43-2639:Bad Fischau-Brunn
++43-2641:Aspangberg
++43-2642:Aspang-Markt
++43-2643:Lichtenegg
++43-2644:Aspangberg
++43-2645:Blumau, Gde. Hollenthon
++43-2646:Kirchschlag in der Buckligen Welt
++43-2647:Krumbach
++43-2648:Aschau
++43-2649:Aspangberg
++43-2662:Altendorf
++43-2663:Breitenstein am Semmering
++43-2664:Semmering
++43-2665:Breitenstein am Semmering
++43-2666:Edlach an der Rax
++43-2667:Naßwald
++43-2672:Berndorf
++43-2673:Altenmarkt-Thenneberg
++43-2674:Altenmarkt-Thenneberg
++43-2680:St. Margarethen
++43-2682:Eisenstadt
++43-2683:Purbach am Neusiedlersee
++43-2684:Oslip
++43-2685:Rust
++43-2686:Draßburg
++43-2687:Antau
++43-2688:Großhöflein
++43-2689:Wimpassing an der Leitha
++43-2711:Dürnstein
++43-2712:Aggsbach
++43-2713:Spitz
++43-2714:Rossatz
++43-2715:Weißenkirchen in der Wachau
++43-2716:Eisenbergeramt
++43-2717:Gföhl
++43-2718:Allentsgschwendt
++43-2719:Droß
++43-2722:Kilb
++43-2723:Hofstetten, Pielach
++43-2724:Schwarzenbach an der Pielach
++43-2725:Frankenfels
++43-2726:Frankenfels
++43-2728:Annaberg
++43-2731:Altpölla
++43-2732:Krems an der Donau
++43-2733:Schönberg am Kamp
++43-2734:Langenlois
++43-2735:Brunn im Felde
++43-2736:Paudorf
++43-2738:Fels am Wagram
++43-2739:Angern
++43-2741:Afing
++43-2742:St. Pölten
++43-2743:Böheimkirchen
++43-2744:St. Christophen
++43-2745:Wilhelmsburg an der Traisen
++43-2746:Traisen
++43-2747:Bischofstetten
++43-2748:Texing
++43-2749:Gerersdorf
++43-2752:Melk
++43-2753:Aggsbach Dorf
++43-2754:Loosdorf, Bez. Melk
++43-2755:Mank
++43-2756:Ruprechtshofen
++43-2757:Pöchlarn
++43-2758:Artstetten-Pöbring
++43-2762:Freiland
++43-2763:Lilienfeld
++43-2764:Hainfeld
++43-2765:Kaumberg
++43-2766:Kleinzell bei Hainfeld
++43-2767:Rohr im Gebirge
++43-2768:St. Aegyd am Neuwalde, Markt
++43-2769:Schwarzenbach an der Pielach
++43-2772:Neulengbach
++43-2773:Pressbaum
++43-2774:Altlengbach
++43-2782:Anzenberg, Bez. St. Pölten
++43-2783:Traismauer
++43-2784:Langmannersdorf
++43-2786:Oberwölbling
++43-2812:Groß Gerungs
++43-2813:Altmelon
++43-2814:Groß Gerungs
++43-2815:Großschönau
++43-2816:Karlstift
++43-2822:Zwettl
++43-2823:Großglobnitz
++43-2824:Allentsteig
++43-2825:Göpfritz an der Wild
++43-2826:Gföhl
++43-2827:Altmelon
++43-2828:Groß Gerungs
++43-2829:Jagenbach
++43-2841:Vitis
++43-2842:Waidhofen an der Thaya
++43-2843:Thaya
++43-2844:Karlstein an der Thaya
++43-2845:Weikertschlag an der Thaya
++43-2846:Aigen
++43-2847:Blumau an der Wild
++43-2848:Heidenreichstein
++43-2849:Schwarzenau
++43-2852:Gmünd
++43-2853:Schrems
++43-2854:Großglobnitz
++43-2855:Nondorf
++43-2856:Weitra
++43-2857:St. Martin
++43-2858:Moorbad Harbach
++43-2859:Litschau
++43-2862:Langegg
++43-2863:Eggern
++43-2864:Dobersberg
++43-2865:Eisgarn
++43-2872:Ottenschlag
++43-2873:Kottes
++43-2874:Bärnkopf
++43-2875:Engelbrechts
++43-2876:Albrechtsberg an der Großen Krems
++43-2877:Gloden
++43-2878:Spielberg
++43-2912:Geras
++43-2913:Hötzelsdorf
++43-2914:Japons
++43-2915:Drosendorf an der Thaya
++43-2916:Mallersbach
++43-2942:Retz
++43-2943:Hadres, Mailberg
++43-2944:Haugsdorf
++43-2945:Deinzendorf
++43-2946:Pillersdorf
++43-2947:Heinrichsdorf
++43-2948:Pleißing
++43-2949:Hardegg
++43-2951:Guntersdorf
++43-2952:Hollabrunn
++43-2953:Eggendorf im Thale
++43-2954:Breitenwaida
++43-2955:Großweikersdorf
++43-2956:Glaubendorf
++43-2957:Hohenwarth, Manhartsberg
++43-2958:Burgschleinitz
++43-2959:Braunsdorf
++43-2982:Horn
++43-2983:Kainreith
++43-2984:Eggenburg
++43-2985:Freischling
++43-2986:Irnfritz
++43-2987:St. Leonhard am Hornerwald
++43-2988:Neupölla
++43-2989:Brunn an der Wild
++43-3112:Gleisdorf
++43-3113:Albersdorf-Prebuch
++43-3114:Auersbach
++43-3115:Edelsbach bei Feldbach
++43-3116:Allerheiligen bei Wildon
++43-3117:Brodingberg
++43-3118:Gersdorf an der Feistritz
++43-3119:Krumegg
++43-3123:Eisbach
++43-3124:Gratkorn
++43-3125:Deutschfeistritz
++43-3126:Frohnleiten
++43-3127:Peggau
++43-3132:Kumberg
++43-3133:Edelsgrub
++43-3134:Allerheiligen bei Wildon
++43-3135:Karlsdorf bei Graz
++43-3136:Dobl
++43-3137:Mooskirchen
++43-3140:Köflach
++43-3142:Voitsberg
++43-3143:Greisdorf
++43-3144:Köflach
++43-3145:Edelschrott
++43-3146:Modriach
++43-3147:Graden
++43-3148:Bärnbach
++43-3149:Eisbach
++43-3150:Baumgarten bei Gnas
++43-3151:Aug-Radisch
++43-3152:Feldbach
++43-3153:Auersbach
++43-3155:Stein
++43-3157:Kapfenstein
++43-3158:Bairisch Kölldorf
++43-3159:Bad Gleichenberg
++43-316:Graz
++43-3170:Fischbach
++43-3171:Gasen
++43-3172:Weiz
++43-3173:Ratten
++43-3174:Birkfeld
++43-3175:Anger
++43-3176:Stubenberg
++43-3177:Etzersdorf-Rollsdorf
++43-3178:Albersdorf-Prebuch
++43-3179:Arzberg
++43-3182:Wildon
++43-3183:Allerheiligen bei Wildon
++43-3184:Wolfsberg im Schwarzautal
++43-3185:Hengsberg
++43-3322:Güssing
++43-3323:Deutsch Ehrensdorf
++43-3324:Deutsch Bieling
++43-3325:Deutsch Minihof
++43-3326:Bocksdorf
++43-3327:Deutsch Tschantschendorf
++43-3328:Eisenhüttl
++43-3329:Jennersdorf
++43-3331:Mönichwald
++43-3332:Hartberg
++43-3333:Sebersdorf
++43-3334:Ebersdorf
++43-3335:Greinbach
++43-3336:Mönichwald
++43-3337:Kleinschlag
++43-3338:Dechantskirchen
++43-3339:Friedberg
++43-3352:Oberwart
++43-3353:Bad Tatzmannsdorf
++43-3354:Bernstein
++43-3355:Allersdorf
++43-3356:Buchschachen
++43-3357:Pinkafeld
++43-3358:Hackerberg
++43-3359:Grafenschachen
++43-3362:Großpetersdorf
++43-3363:Rechnitz
++43-3364:Burg
++43-3365:Deutsch Schützen
++43-3366:Badersdorf
++43-3382:Fürstenfeld
++43-3383:Burgau
++43-3385:Bad Waltersdorf
++43-3386:Blaindorf
++43-3387:Hatzendorf
++43-3452:Leibnitz
++43-3453:Vogau
++43-3454:Großklein
++43-3455:Arnfels
++43-3456:Eichberg-Trautenburg
++43-3457:Gleinstätten
++43-3460:Soboth
++43-3461:Garanas
++43-3462:Deutschlandsberg
++43-3463:Bad Gams
++43-3464:Groß St. Florian
++43-3465:Limberg bei Wies
++43-3466:Aibl
++43-3467:Garanas
++43-3468:St. Oswald ob Eibiswald
++43-3469:Osterwitz
++43-3472:Mureck
++43-3473:Grabersdorf
++43-3474:Deutsch Goritz
++43-3475:Tieschen
++43-3476:Bad Radkersburg
++43-3477:Aug-Radisch
++43-3512:Knittelfeld
++43-3513:Gaal
++43-3514:Kobenz
++43-3515:Feistritz bei Knittelfeld
++43-3516:Großlobming
++43-3532:Murau
++43-3533:Turrach
++43-3534:Falkendorf
++43-3535:Krakaudorf
++43-3536:St. Peter am Kammersberg
++43-3537:St. Georgen ob Murau
++43-3571:Bretstein
++43-3572:Judenburg
++43-3573:Fohnsdorf
++43-3574:Pusterwald
++43-3575:St. Johann am Tauern
++43-3576:Bretstein
++43-3577:Zeltweg
++43-3578:Amering
++43-3579:Oberkurzheim
++43-3581:Oberwölz-Stadt
++43-3582:Scheifling
++43-3583:St. Georgen ob Judenburg
++43-3584:Kulm am Zirbitz
++43-3585:St. Blasen
++43-3586:Kulm am Zirbitz
++43-3587:Schönberg-Lachtal
++43-3588:Frojach-Katsch
++43-3611:Admont
++43-3612:Liezen
++43-3613:Hall
++43-3614:Rottenmann
++43-3615:Trieben
++43-3617:Treglwang
++43-3618:Hohentauern
++43-3619:Oppenberg
++43-3622:Bad Aussee
++43-3623:Bad Mitterndorf
++43-3624:Pichl-Kainisch
++43-3631:Weyer
++43-3632:Weißenbach an der Enns
++43-3633:Landl
++43-3634:Hieflau
++43-3635:Radmer
++43-3636:Wildalpen
++43-3637:Gams bei Hieflau
++43-3638:Palfau
++43-3680:Donnersbachwald
++43-3682:Aigen im Ennstal
++43-3683:Donnersbach
++43-3684:Irdning
++43-3685:Gröbming
++43-3686:Aich
++43-3687:Schladming
++43-3688:Tauplitz
++43-3689:St. Nikolai, Sölktal
++43-3832:Kraubath an der Mur
++43-3833:Traboch
++43-3834:Wald am Schoberpaß
++43-3842:Leoben
++43-3843:St. Michael in Obersteiermark
++43-3844:Kammern im Liesingtal
++43-3845:Mautern
++43-3846:Kalwang
++43-3847:Trofaiach
++43-3848:Eisenerz
++43-3849:Vordernberg
++43-3852:Mürzzuschlag
++43-3853:Spital am Semmering
++43-3854:Krieglach
++43-3855:Alpl
++43-3856:Veitsch
++43-3857:Altenberg an der Rax
++43-3858:Mitterdorf im Mürztal
++43-3859:Mürzsteg
++43-3861:Aflenz
++43-3862:Kapfenberg
++43-3863:Seewiesen
++43-3864:Allerheiligen im Mürztal
++43-3865:Kindberg
++43-3866:Breitenau am Hochlantsch
++43-3867:Pernegg an der Mur
++43-3868:Hafning bei Trofaiach
++43-3869:St. Katharein an der Laming
++43-3882:Mariazell
++43-3883:Halltal
++43-3884:Gußwerk
++43-3885:Gußwerk
++43-3886:Gußwerk
++43-4212:St. Veit an der Glan
++43-4213:Kappel am Krappfeld
++43-4214:Brückl
++43-4215:Liebenfels
++43-4220:Köttmannsdorf
++43-4221:Gallizien
++43-4223:Maria Saal
++43-4224:Pischeldorf
++43-4225:Grafenstein
++43-4226:St. Margareten im Rosental
++43-4227:Ferlach
++43-4228:Feistritz im Rosental
++43-4229:Krumpendorf am Wörther See
++43-4230:Globasnitz
++43-4231:Diex
++43-4232:Völkermarkt
++43-4233:Griffen
++43-4234:Ruden
++43-4235:Bleiburg
++43-4236:Eberndorf
++43-4237:Miklauzhof
++43-4238:Bad Eisenkappel
++43-4239:St. Kanzian am Klopeiner See
++43-4240:Bad Kleinkirchheim
++43-4242:Villach
++43-4243:Bodensdorf
++43-4244:Bad Bleiberg
++43-4245:Feistritz an der Drau
++43-4246:Radenthein
++43-4247:Afritz
++43-4248:Annenheim
++43-4252:Wernberg
++43-4253:Maria Elend
++43-4254:Faak am See
++43-4255:Arnoldstein
++43-4256:Feistritz an der Gail
++43-4257:Fürnitz
++43-4258:Gummern
++43-4262:Althofen
++43-4263:Hüttenberg
++43-4264:Eberstein
++43-4265:Deutsch Griffen
++43-4266:Straßburg
++43-4267:Grades
++43-4268:Friesach
++43-4269:Flattnitz
++43-4271:Steuerberg
++43-4272:Pörtschach am Wörther See
++43-4273:Reifnitz
++43-4274:Velden am Wörther See
++43-4275:Ebene Reichenau
++43-4276:Feldkirchen in Kärnten
++43-4277:Glanegg
++43-4278:Gnesau
++43-4279:Deutsch Griffen, Sirnitz
++43-4282:Egg bei Hermagor
++43-4283:Förolach
++43-4284:Kirchbach
++43-4285:Rattendorf
++43-4286:St. Lorenzen im Gitschtal
++43-4350:Bad St. Leonhard im Lavanttal, Klippitztörl
++43-4352:Wolfsberg
++43-4353:Prebl
++43-4354:Preitenegg
++43-4355:Eitweg
++43-4356:Lavamünd
++43-4357:St. Georgen, Lavanttal
++43-4358:St. Andrä, Lavanttal
++43-4359:Reichenfels
++43-463:Klagenfurt
++43-4710:Oberdrauburg
++43-4712:Greifenburg
++43-4713:Techendorf, Weißensee
++43-4714:Dellach im Drautal
++43-4715:Kötschach-Mauthen
++43-4716:Birnbaum
++43-4717:Steinfeld
++43-4718:Dellach im Gailtal
++43-4732:Gmünd
++43-4733:Malta
++43-4734:Rennweg
++43-4735:Kremsbrücke
++43-4736:Innerkrems
++43-4761:Stockenboi
++43-4762:Spittal an der Drau
++43-4766:Millstatt
++43-4767:Ferndorf
++43-4768:Kleblach-Lind
++43-4769:Lendorf
++43-4782:Obervellach
++43-4783:Kolbnitz
++43-4784:Mallnitz
++43-4785:Flattach
++43-4822:Winklern, Mölltal
++43-4823:Rangersdorf
++43-4824:Heiligenblut
++43-4825:Großkirchheim
++43-4826:Mörtschach
++43-4842:Sillian
++43-4843:Außervillgraten
++43-4846:Abfaltersbach
++43-4847:Obertilliach
++43-4848:Kartitsch
++43-4852:Lienz, Osttirol
++43-4853:Ainet
++43-4855:Assling
++43-4858:Nikolsdorf
++43-4872:St. Johann im Walde
++43-4873:St. Jakob in Defereggen
++43-4874:Virgen, Osttirol
++43-4875:Matrei in Osttirol
++43-4876:Kals am Großglockner
++43-4877:Prägraten
++43-4879:St. Veit in Defereggen
++43-512:Innsbruck
++43-5212:Seefeld in Tirol
++43-5213:Scharnitz
++43-5214:Leutasch
++43-5223:Hall in Tirol
++43-5224:Wattens
++43-5225:Fulpmes
++43-5226:Neustift im Stubaital
++43-5230:Sellrain
++43-5232:Kematen in Tirol
++43-5234:Götzens
++43-5236:Gries im Sellrain
++43-5238:Zirl
++43-5239:Kühtai
++43-5242:Schwaz
++43-5243:Maurach
++43-5244:Jenbach
++43-5245:Hinterriß
++43-5246:Achenkirch
++43-5248:Steinberg am Rofan
++43-5252:Oetz, Tirol
++43-5253:Längenfeld
++43-5254:Sölden
++43-5255:Umhausen
++43-5256:Untergurgl
++43-5262:Telfs
++43-5263:Silz, Tirol
++43-5264:Mieming
++43-5265:Nassereith
++43-5266:Ötztal-Bahnhof
++43-5272:Steinach am Brenner
++43-5273:Matrei am Brenner
++43-5274:Gries am Brenner
++43-5275:Trins
++43-5276:Gschnitz
++43-5278:Navis
++43-5279:Steinach am Brenner
++43-5280:Fügenberg
++43-5282:Zell am Ziller
++43-5283:Kaltenbach, Zillertal
++43-5284:Gerlos
++43-5285:Mayrhofen
++43-5286:Ginzling
++43-5287:Tux
++43-5288:Fügen
++43-5289:Brandberg im Zillertal
++43-5331:Brandenberg, Tirol
++43-5332:Wörgl
++43-5333:Söll
++43-5334:Brixen im Thale
++43-5335:Hopfgarten im Brixental
++43-5336:Alpbach
++43-5337:Brixlegg
++43-5338:Kundl
++43-5339:Wildschönau
++43-5352:St. Johann in Tirol
++43-5353:Waidring
++43-5354:Fieberbrunn
++43-5355:Jochberg
++43-5356:Kitzbühel
++43-5357:Kirchberg in Tirol
++43-5358:Ellmau
++43-5359:Hochfilzen
++43-5372:Kufstein
++43-5373:Ebbs
++43-5374:Walchsee
++43-5375:Kössen
++43-5376:Thiersee
++43-5412:Imst
++43-5413:St. Leonhard im Pitztal
++43-5414:Wenns
++43-5417:Roppen
++43-5418:Mils bei Imst
++43-5441:Kappl
++43-5442:Zams
++43-5443:Galtür
++43-5444:Ischgl
++43-5445:Landeck
++43-5446:St. Anton am Arlberg
++43-5447:Flirsch
++43-5448:Pettneu am Arlberg
++43-5449:Fließ
++43-5472:Prutz
++43-5473:Nauders
++43-5474:Pfunds
++43-5475:Feichten im Kaunertal
++43-5476:Serfaus
++43-5477:Tösens
++43-5510:Damüls
++43-5512:Egg
++43-5513:Hittisau
++43-5514:Bezau
++43-5515:Au, Bregenzerwald
++43-5516:Doren
++43-5517:Riezlern, Kleinwalsertal
++43-5518:Mellau
++43-5519:Schröcken
++43-5522:Feldkirch
++43-5523:Götzis
++43-5524:Satteins
++43-5525:Bludesch
++43-5526:Laterns
++43-5550:Thüringen
++43-5552:Bludenz
++43-5553:Raggal
++43-5554:Buchboden
++43-5556:Schruns
++43-5557:St. Gallenkirch
++43-5558:Gaschurn
++43-5559:Brand
++43-5572:Dornbirn
++43-5573:Hörbranz
++43-5574:Bregenz
++43-5575:Langen, Bregenz
++43-5576:Hohenems
++43-5577:Lustenau
++43-5578:Höchst
++43-5579:Alberschwende
++43-5582:Klösterle
++43-5583:Lech
++43-5585:Dalaas
++43-5632:Stanzach
++43-5633:Bach, Lechtal
++43-5634:Elbigenalp
++43-5635:Boden, Lechtal
++43-5672:Reutte
++43-5673:Ehrwald
++43-5674:Bichlbach
++43-5675:Tannheim
++43-5676:Jungholz
++43-5677:Vils
++43-5678:Rieden bei Reutte
++43-6131:Obertraun
++43-6132:Bad Ischl
++43-6133:Ebensee
++43-6134:Hallstatt
++43-6135:Bad Goisern
++43-6136:Gosau
++43-6137:Abtenau
++43-6138:St. Wolfgang im Salzkammergut
++43-6210:Lochen
++43-6212:Eugendorf
++43-6213:Straßwalchen
++43-6214:Eugendorf
++43-6215:Lengau
++43-6216:Neumarkt am Wallersee
++43-6217:Berndorf bei Salzburg
++43-6218:Pöndorf
++43-6219:Mattsee
++43-6221:Ebenau
++43-6223:Anthering
++43-6224:Hintersee bei Faistenau
++43-6225:Eugendorf
++43-6226:Fuschl am See
++43-6227:Abersee
++43-6228:Faistenau
++43-6229:Thalgau
++43-6232:Mondsee
++43-6233:Oberwang
++43-6234:Oberhofen am Irrsee
++43-6235:Thalgau
++43-6240:Adnet
++43-6241:St. Koloman
++43-6242:Rußbach am Paß Gschütt
++43-6243:Abtenau
++43-6244:Golling an der Salzach
++43-6245:Hallein
++43-6246:Grödig
++43-6247:Großgmain
++43-6272:Oberndorf bei Salzburg
++43-6274:Lamprechtshausen
++43-6276:Nußdorf am Haunsberg
++43-6277:Franking
++43-6278:Geretsberg
++43-6412:St. Johann im Pongau
++43-6413:Wagrain
++43-6414:Großarl
++43-6415:Schwarzach im Pongau
++43-6416:Lend
++43-6417:Hüttschlag
++43-6418:Kleinarl
++43-6432:Bad Hofgastein
++43-6433:Dorfgastein
++43-6434:Bad Gastein
++43-6452:Altenmarkt im Pongau
++43-6453:Filzmoos
++43-6454:Mandling [Sbg/St]
++43-6455:Untertauern
++43-6456:Obertauern
++43-6457:Flachau
++43-6458:Flachau
++43-6461:Dienten am Hochkönig
++43-6462:Bischofshofen
++43-6463:Abtenau
++43-6464:Eben im Pongau
++43-6466:Werfenweng
++43-6467:Mühlbach am Hochkönig
++43-6468:Werfen
++43-6470:Tamsweg
++43-6471:Tweng
++43-6472:Mauterndorf, Lungau
++43-6473:Weißpriach
++43-6474:St. Andrä im Lungau
++43-6475:Ramingstein
++43-6476:St. Margarethen im Lungau
++43-6477:Muhr
++43-6478:Zederhaus
++43-6479:Muhr
++43-6483:Göriach, Salzburg
++43-6484:Lessach, Salzburg
++43-6541:Saalbach
++43-6542:Zell am See
++43-6543:Taxenbach
++43-6544:Rauris
++43-6545:Bruck an der Großglocknerstraße
++43-6546:Fusch an der Großglocknerstraße
++43-6547:Kaprun
++43-6548:Niedernsill
++43-6549:Piesendorf
++43-6562:Mittersill
++43-6563:Uttendorf, Pinzgau
++43-6564:Krimml
++43-6565:Neukirchen am Großvenediger
++43-6566:Mühlbach, Oberpinzgau
++43-6582:Leogang
++43-6583:Saalfelden am Steinernen Meer
++43-6584:Maria Alm am Steinernen Meer
++43-6588:Lofer
++43-6589:Unken
++43-662:Salzburg
++43-7:Linz KW[OÖ] 
++43-7211:Reichenau im Mühlkreis
++43-7212:Zwettl an der Rodl
++43-7213:Bad Leonfelden
++43-7214:Reichenthal
++43-7215:Hellmonsödt
++43-7216:Helfenberg
++43-7217:St. Veit im Mühlkreis
++43-7218:Traberg
++43-7219:Vorderweißenbach
++43-7221:Hörsching
++43-7223:Enns
++43-7224:Asten
++43-7225:Hargelsberg
++43-7226:Wilhering
++43-7227:Neuhofen an der Krems
++43-7228:Kematen an der Krems
++43-7229:Traun
++43-7230:Alberndorf in der Riedmark
++43-7231:Herzogsdorf
++43-7232:St. Martin im Mühlkreis
++43-7233:Feldkirchen an der Donau
++43-7234:Ottensheim
++43-7235:Gallneukirchen
++43-7236:Pregarten
++43-7237:St. Georgen an der Gusen
++43-7238:Mauthausen
++43-7239:Lichtenberg bei Linz
++43-7240:Kremsmünster
++43-7241:Steinerkirchen an der Traun
++43-7242:Wels
++43-7243:Marchtrenk
++43-7244:Sattledt
++43-7245:Lambach
++43-7246:Gunskirchen
++43-7247:Kematen am Innbach
++43-7248:Grieskirchen
++43-7249:Bad Schallerbach
++43-7250:Maria-Neustift
++43-7251:Schiedlberg
++43-7252:Steyr
++43-7253:Wolfern
++43-7254:Großraming
++43-7255:Losenstein
++43-7256:Ternberg
++43-7257:Grünburg
++43-7258:Bad Hall
++43-7259:Sierning
++43-7261:Bad Zell
++43-7262:Perg
++43-7263:Allerheiligen bei Perg
++43-7264:Rechberg
++43-7265:Pabneukirchen
++43-7266:Bad Kreuzen
++43-7267:Königswiesen
++43-7268:Bad Kreuzen
++43-7269:Münzbach
++43-7272:Eferding
++43-7273:Aschach an der Donau
++43-7274:Alkoven, Wilhering
++43-7276:Peuerbach
++43-7277:Waizenkirchen
++43-7278:Neukirchen am Walde
++43-7279:Haibach ob der Donau
++43-7280:Schwarzenberg am Böhmerwald
++43-7281:Aigen im Mühlkreis
++43-7282:Neufelden
++43-7283:Sarleinsbach
++43-7284:Oberkappel
++43-7285:Hofkirchen im Mühlkreis
++43-7286:Lembach im Mühlkreis
++43-7287:Kollerschlag
++43-7288:Klaffer am Hochficht
++43-7289:Rohrbach in
++43-732:Linz
++43-7353:Gaflenz
++43-7355:Gaflenz
++43-7357:Weyer
++43-7412:Ybbs an der Donau
++43-7413:Artstetten-Pöbring
++43-7414:Hofamt Priel
++43-7415:Yspertal
++43-7416:Ruprechtshofen
++43-7418:Dimbach
++43-7432:Strengberg
++43-7433:Wallsee
++43-7434:Haag
++43-7435:Ernsthofen
++43-7442:Waidhofen an der Ybbs
++43-7443:Ybbsitz
++43-7444:Opponitz
++43-7445:Hollenstein an der Ybbs
++43-7446:Maria-Neustift
++43-7447:Gaflenz
++43-7449:Weyer
++43-7471:Kollmitzberg
++43-7472:Amstetten
++43-7473:Blindenmarkt
++43-7474:Neuhofen an der Ybbs
++43-7475:Öhling
++43-7476:Seitenstetten
++43-7477:Haidershofen
++43-7478:Wallsee
++43-7479:Zeillern
++43-7480:St. Sebastian
++43-7482:Frankenfels
++43-7483:Wieselburg an der Erlauf
++43-7484:St. Georgen am Reith
++43-7485:Lunz am See
++43-7486:Göstling an der Ybbs
++43-7487:Scheibbs
++43-7488:Wolfpassing
++43-7489:Purgstall an der Erlauf
++43-7562:Windischgarsten
++43-7563:Spital am Pyhrn
++43-7564:Hinterstoder
++43-7565:Klaus an der Pyhrnbahn
++43-7566:Spital am Pyhrn
++43-7582:Kirchdorf an der Krems
++43-7583:Kremsmünster
++43-7584:Molln
++43-7585:Klaus an der Pyhrnbahn
++43-7586:Pettenbach
++43-7587:Wartberg an der Krems
++43-7588:Ried im Traunkreis
++43-7612:Gmunden
++43-7613:Laakirchen
++43-7614:Vorchdorf
++43-7615:Scharnstein
++43-7616:Grünau im Almtal
++43-7617:Traunkirchen
++43-7618:Altmünster
++43-7619:Kirchham
++43-7662:Lenzing
++43-7663:Steinbach am Attersee
++43-7664:Schörfling am Attersee
++43-7665:Nußdorf am Attersee
++43-7666:Attersee
++43-7667:St. Georgen im Attergau
++43-7672:Vöcklabruck
++43-7673:Schwanenstadt
++43-7674:Attnang-Puchheim
++43-7675:Ampflwang im Hausruckwald
++43-7676:Ottnang am Hausruck
++43-7682:Vöcklamarkt
++43-7683:Frankenburg
++43-7684:Vöcklamarkt
++43-7711:Suben
++43-7712:Schärding
++43-7713:Schardenberg
++43-7714:Vichtenstein
++43-7716:Münzkirchen
++43-7717:Engelhartszell
++43-7718:Waldkirchen am Wesen
++43-7719:Taufkirchen an der Pram
++43-7722:Braunau am Inn
++43-7723:Altheim
++43-7724:Burgkirchen
++43-7727:Überackern
++43-7728:Geretsberg
++43-7729:Pischelsdorf am Engelbach
++43-7732:Haag am Hausruck
++43-7733:Kallham
++43-7734:Hofkirchen an der Trattnach
++43-7735:Gaspoltshofen
++43-7736:Pram
++43-7742:Mattighofen
++43-7743:Uttendorf
++43-7744:Lengau
++43-7745:Lochen
++43-7746:Lengau
++43-7747:Auerbach
++43-7748:Eggelsberg
++43-7750:Hohenzell
++43-7751:Ort im Innkreis
++43-7752:Aurolzmünster
++43-7753:Eberschwang
++43-7754:Lohnsburg am Kobernaußerwald
++43-7755:Aspach, Innkreis
++43-7757:Gurten
++43-7758:Kirchdorf am Inn
++43-7759:Antiesenhofen
++43-7762:Raab, St. Willibald
++43-7763:St. Aegidi
++43-7764:Riedau
++43-7765:Lambrechten
++43-7766:Andorf
++43-7767:Eggerding
++43-7941:Kefermarkt
++43-7942:Freistadt
++43-7943:Grünbach
++43-7944:Sandl
++43-7945:St. Oswald bei Freistadt
++43-7946:Bad Zell
++43-7947:Gutau
++43-7948:Hirschbach im Mühlkreis
++43-7949:Leopoldschlag
++43-7952:Gutau
++43-7953:Kaltenberg
++43-7954:Dimbach
++43-7955:Mönchdorf
++43-7956:Kaltenberg
+
++968:Oman
+
+
++92:[PK]Pakistan
++92-41:Faisalabad
++92-431:Gujranwala
++92-221:Hyderabad
++92-21:Karachi
++92-42:Lahore
++92-61:Multan
++92-91:Peshawar
++92-81:Quetta
++92-51:Rawalpindi
++92-432:Sialkot
++92-71:Sukkur
+
+
++680:Palau
+
+
++507:Panama
+
+
++675:Papua-Neuguinea
+
+
++595:[PY]Paraguay
++595-291:Aregúa
++595-511:Caacupé
++595-28:Capiatá
++595-61:Ciudad del Este
++595-548:Colonia Independencia
++595-31:Concepción
++595-521:Coronel Oviedo
++595-71:Encarnación
++595-21:Fernando de la Mora
++595-91:Filadelfia
++595-75:Hohenau
++595-294:Itauguá
++595-36:Pedro Juan Caballero
++595-86:Pilar
++595-512:San Bernardino
++595-541:Villarrica
++595-513:Ypacarai
+
+
++51:[PE]Peru
++51-84:Cuzco
++51-64:Huancayo
++51-94:Iquitos
++51-1:Lima
++51-74:Piura
++51-54:Puno
++51-44:Trujillo
+
+
++63:[PH]Philippinen
++63-45:Angeles
++63-34:Bacolod
++63-74:Baguio
++63-8822:Cagayan de Oro
++63-46:Cavite
++63-32:Cebu
++63-64:Cotabato
++63-82:Davao
++63-83:General Santos
++63-33:Iloilo City
++63-43:Lipa
++63-56:Masbate
++63-88:Ozamis
++63-2:Manila
++63-49:San Pablo
++63-53:Tacloban
++63-452:Tarlac
++63-62:Zamboanga
++63-918:Mobilfunk
+
+
++48:[PL]Polen
++48-83:Biala Podlaska
++48-85:Bialystok
++48-52:Bydgoszcs
++48-82:Chelm
++48-23:Ciechanow
++48-34:Czestochowa
++48-55:Elblag
++48-75:Jelenia Gora
++48-62:Kalisz
++48-41:Kielce
++48-63:Konin
++48-94:Koszalin
++48-65:Leszno
++48-42:Lodz
++48-76:Lubin
++48-17:Mielec
++48-89:Olsztyn
++48-77:Opole
++48-33:Oswiecim
++48-67:Pila
++48-24:Plock
++48-61:Poznan
++48-48:Radom
++48-25:Siedlce
++48-95:Slubice
++48-59:Slupsk
++48-58:Sopot
++48-47:Starachowice
++48-87:Suwalki
++48-81:Swidnik
++48-91:Szczecin
++48-15:Tarnobrzeg
++48-14:Tarnow
++48-56:Torun
++48-74:Walbrzych
++48-22:Warschau
++48-12:Wieliczka
++48-54:Wloclawek
++48-71:Wroclaw
++48-32:Zabrze
++48-18:Zakopane
++48-84:Zamosc
++48-68:Zielona Gora
+
+
++351:[PT]Portugal (einschl. Azoren und Madeira)
++351-41:Abrantes
++351-95:Angra do Heroismo
++351-35:Arganil
++351-34:Aveiro
++351-84:Beja
++351-53:Braga
++351-73:Braganca
++351-62:Caldas da Rainha
++351-72:Castelo Branco
++351-86:Castro Verde
++351-76:Chaves
++351-39:Coimbra
++351-75:Covilha
++351-68:Estremoz
++351-66:Evora
++351-89:Faro
++351-49:Fatima
++351-33:Figueira da Foz
++351-91:Funchal
++351-71:Guarda
++351-92:Horta
++351-77:Idanha-a-Nova
++351-44:Leiria
++351-1:Lissabon
++351-31:Mealhada
++351-78:Mirandela
++351-85:Moura
++351-83:Odemira
++351-55:Penafiel
++351-54:Peso da Regua
++351-36:Pombal
++351-96:Ponta Delgada
++351-42:Ponte de Sor
++351-45:Portalegre
++351-82:Portimao
++351-2:Porto
++351-74:Proenca-a-Nova
++351-43:Santarem
++351-69:Santiago do Cacem
++351-56:Sao Joao da Madeira
++351-38:Seia
++351-65:Setubal
++351-81:Tavira
++351-79:Torre de Moncorvo
++351-149:Torres Novas
++351-61:Torres Vedras
++351-51:Valenca
++351-58:Viana do Castelo
++351-63:Vila Franca de Xira
++351-59:Vila Real
++351-32:Viseu
+
+
++1787:Puerto Rico
+
+
++250:Ruanda
+
+
++40:[RO]Rumänien
++40-257:Arad
++40-234:Bacau
++40-262:Baia Mare
++40-233:Bicaz
++40-239:Braila
++40-268:Brasov
++40-21:Bukarest
++40-238:Buzau
++40-251:Craiova
++40-236:Galati
++40-232:Iasi
++40-241:Mangalia
++40-259:Oradea
++40-244:Ploiesti
++40-255:Resita
++40-261:Satu Mare
++40-269:Sibiu
++40-256:Timisoara
++40-265:Tirgu Mures
++40-240:Tulcea
++40-7:Mobilfunk
++40-57:Arad
++40-34:Bacau
++40-62:Baia Mare
++40-33:Bicaz
++40-39:Braila
++40-68:Brasov
++40-1:Bukarest
++40-38:Buzau
++40-51:Craiova
++40-36:Galati
++40-32:Iasi
++40-41:Mangalia
++40-59:Oradea
++40-44:Ploiesti
++40-55:Resita
++40-61:Satu Mare
++40-69:Sibiu
++40-56:Timisoara
++40-65:Tirgu Mures
++40-40:Tulcea
+
+
++7:[RU]Russische Föderation
++7-39022:Abakan
++7-818:Archangelsk
++7-8512:Astrachan
++7-3852:Barnaul
++7-0722:Belgorod
++7-42622:Birobidshan
++7-4162:Blagoweschtschensk
++7-0832:Brjansk
++7-4212:Chabarowsk
++7-84722:Elista
++7-38822:Gorno-Altaisk
++7-8712:Grosny
++7-3952:Irkutsk
++7-3412:Ishewsk
++7-0932:Iwanowo
++7-4112:Jakutsk
++7-0852:Jaroslawl
++7-3432:Jekaterinburg
++7-8362:Joschkar-Ola
++7-4242:Jushno-Sachalinsk
++7-0112:Kaliningrad
++7-0842:Kaluga
++7-8432:Kasan
++7-3842:Kemerowo
++7-0942:Kostroma
++7-8612:Krasnodar
++7-3912:Krasnojarsk
++7-3522:Kurgan
++7-0712:Kursk
++7-0742:Lipezk
++7-8722:Machatschkala
++7-41322:Magadan
++7-87722:Maikop
++7-095:Moskau
++7-096:Moskau (Umland)
++7-8152:Murmansk
++7-86622:Naltschik
++7-8312:Nishni Nowgorod
++7-8162:Nowgorod
++7-3832:Nowosibirsk
++7-3812:Omsk
++7-3532:Orenburg
++7-0862:Orjol
++7-8412:Pensa
++7-3422:Perm
++7-4152:Petropawlowsk-Kamchatsky
++7-8142:Petrosawodsk
++7-8112:Pskow
++7-0912:Rjasan
++7-8632:Rostow-na-Donu
++7-8462:Samara
++7-8342:Saransk
++7-8452:Saratow
++7-0812:Smolensk
++7-8622:Sotschi
++7-812:St. Petersburg
++7-86522:Stawropol
++7-3462:Surgut
++7-8212:Syktywkar
++7-0752:Tambow
++7-3452:Tjumen
++7-8482:Togliatti
++7-3822:Tomsk
++7-8352:Tscheboksary
++7-3512:Tscheljabinsk
++7-8202:Tscherepowez
++7-87822:Tscherkessk
++7-3022:Tschita
++7-0872:Tula
++7-0822:Twer
++7-3472:Ufa
++7-3012:Ulan-Ude
++7-8422:Uljanowsk
++7-8672:Wladikawkas
++7-0922:Wladimir
++7-4232:Wladiwostok
++7-8442:Wolgograd
++7-8172:Wologda
++7-0732:Woronesh
+
+
++262:Réunion
+
+
++677:Salomonen
+
+
++260:Sambia
++260-3:Livingstone
++260-1:Lusaka
++260-2:Ndola
+
+
++685:Samoa (Westsamoa)
+
+
++378:San Marino
+
+
++259:Sansibar
+
+
++239:Sao Tomé und Príncipe
+
+
++966:[SA]Saudi Arabien
++966-3:Jubel
++966-7:Najran
++966-6:Qassim
++966-1:Riyadh
++966-4:Tabuk
++966-2:Taif
+
+
++46:[SE]Schweden
++46-271:Alfta
++46-690:Ange
++46-583:Askersund
++46-431:Bastad
++46-531:Bengtsfors
++46-921:Boden
++46-33:Boras
++46-571:Charlottenberg
++46-171:Enköping
++46-16:Eskilstuna
++46-223:Fagersta
++46-23:Falun
++46-493:Gamleby
++46-497:Gotland
++46-31:Göteborg
++46-35:Halmstad
++46-696:Hammarstrand
++46-922:Haparanda
++46-225:Hedemora
++46-42:Höganäs
++46-415:Hörby
++46-36:Jönköping
++46-480:Kalmar
++46-454:Karlshamm
++46-586:Karlskoga
++46-455:Karlskrona
++46-54:Karlstad
++46-980:Kiruna
++46-44:Kristianstad
++46-418:Landskrona
++46-13:Linköping
++46-920:Lulea
++46-46:Lund
++46-40:Malmö
++46-530:Mellerud
++46-141:Motala
++46-11:Norrköping
++46-155:Nyköping
++46-457:Ronneby
++46-26:Sandviken
++46-511:Skara
++46-8:Stockholm
++46-152:Strängnäs
++46-60:Sundsvall
++46-293:Söderfors
++46-270:Söderhamm
++46-410:Trelleborg
++46-520:Trollhättan
++46-5222:Uddevalla
++46-321:Ulricehamm
++46-90:Umea
++46-18:Uppsala
++46-21:Västeras
++46-490:Västervik
++46-411:Ystad
++46-251:Älvdalen
++46-485:Öland
++46-19:Örebro
++46-63:Östersund
+
+
++41:[CH]Schweiz
++41-3:Aarberg
++41-26:Murten
++41-31:Riggisberg
++41-91:S.Bernardino-Passo Sud
++41-22:Satigny
++41-61:Therwil
++41-81:Thusis
++41-21:Vevey
++41-55:Vorderthal
++41-34:Wasen
++41-32:Wengi
++41-71:Wil
++41-52:Winterthur
++41-56:Wohlen
++41-24:Yverdon
++41-27:Zermatt
++41-62:Zofingen
++41-41:Zug
++41-33:Zweisimmen
++41-1:Zürich
+
+
++221:[SN]Senegal
++221-8:Dakar
++221-9:Restliche Orte
+
+
++248:Seychellen
+
+
++232:[SL]Sierra Leone
++232-32:Bo
++232-2:Freetown
++232-24:Juba
++232-42:Kenema
++232-53:Koidu
++232-25:Lungi
++232-54:Magburaka
++232-52:Makeni
+
+
++263:[ZW]Simbabwe
++263-9:Bulawayo
++263-54:Gweru
++263-4:Harare
++263-68:Kadoma
++263-20:Mutare
++263-13:Victoria Falls
+
+
++65:Singapur
+
+
++421:[SK]Slowakische Republik
++421-832:Banovce n.B.
++421-88:Banska Bystrica
++421-859:Banska Stiavnica
++421-935:Bardejov
++421-7:Bratislava
++421-867:Brezno
++421-821:Bytca
++421-824:Cadca
++421-845:Dolny Kubin
++421-827:Dubnica n. Vahom
++421-709:Dunajska Streda
++421-707:Galanta
++421-944:Gelnica
++421-936:Giraltovce
++421-804:Hlohovec
++421-865:Hnusta
++421-801:Holic
++421-933:Humenne
++421-818:Hurbanovo
++421-968:Kezmarok
++421-819:Komarno
++421-95:Kosice
++421-856:Krupina
++421-826:Kysucke Nove Mesto
++421-813:Levice
++421-966:Levoca
++421-844:Liptovsky Hradok
++421-849:Liptovsky Mikulas
++421-863:Lucenec
++421-703:Malacky
++421-842:Martin
++421-939:Medzilaborce
++421-946:Michalovce
++421-943:Moldava n.Bodvou
++421-846:Namestovo
++421-87:Nitra
++421-834:Nove Mesto nad Vahom
++421-817:Nove Zamky
++421-704:Pezinok
++421-838:Piestany
++421-864:Poltar
++421-92:Poprad
++421-822:Povazska Bystrica
++421-91:Presov
++421-862:Prievidza
++421-825:Puchov
++421-823:Rajec n.Rajc.
++421-941:Revuca
++421-866:Rimavska Sobota
++421-942:Roznava
++421-848:Ruzomberok
++421-934:Sabinov
++421-812:Sahy
++421-706:Sala
++421-708:Samorin
++421-802:Senica n.Myj.
++421-932:Snina
++421-947:Sobrance
++421-965:Spisska Nova Ves
++421-964:Spisska Stara Ves
++421-963:Stara Lubovna
++421-969:Stary Smokovec
++421-938:Stropkov
++421-810:Sturovo
++421-816:Surany
++421-937:Svidnik
++421-815:Topolcany
++421-868:Tornala
++421-948:Trebisov
++421-831:Trencin
++421-805:Trnava
++421-841:Turcianske Teplice
++421-847:Tvrdosin
++421-854:Velky Krtis
++421-931:Vranov n. Toplou
++421-858:Zarnovica
++421-811:Zeliezovce
++421-89:Zilina
++421-814:Zlate Moravce
++421-855:Zvolen
+
+
++386:[SI]Slowenien
++386-66:Koper [alt]
++386-64:Kranj [alt]
++386-608:Krsko [alt]
++386-61:Ljubljana [alt]
++386-69:Murska Sobota [alt]
++386-65:Nova Gorica [alt]
++386-68:Novo Mesto [alt]
++386-67:Postojna [alt]
++386-602:Ravne na Koroskem [alt]
++386-62:Slovenska Bistrica [alt]
++386-601:Trbovlje [alt]
++386-63:Velenje [alt]
++386-1:Ljubljana
++386-2:Maribor
++386-3:Celje
++386-31:Mobilfunk
++386-4:Kranj
++386-40:Mobilfunk
++386-41:Mobilfunk
++386-5:Koper
++386-50:Mobilfunk
++386-7:Novo Mesto
+
++252:[SO]Somalia
++252-2:Hargeysa
++252-3:Kismayo
++252-1:Mogadishu
+
+
++34:[ES]Spanien
++34-6:Mobilfunk
++34-606:Mobilfunk
++34-607:Mobilfunk
++34-608:Mobilfunk
++34-609:Mobilfunk
++34-610:Mobilfunk
++34-616:Mobilfunk
++34-617:Mobilfunk
++34-619:Mobilfunk
++34-629:Mobilfunk
++34-630:Mobilfunk
++34-639:Mobilfunk
++34-649:Mobilfunk
++34-654:Mobilfunk
++34-670:Mobilfunk
++34-689:Mobilfunk
++34-967:Albacete
++34-950:Almería
++34-920:Avila
++34-926:Ciudad Real
++34-969:Cuenca
++34-957:Córdoba
++34-94:Durango
++34-958:Granada
++34-949:Guadalajara
++34-959:Huelva
++34-974:Huesca
++34-953:Jaén
++34-987:León
++34-973:Lleida
++34-941:Logroño
++34-982:Lugo
++34-947:Miranda del Ebro
++34-968:Murcia
++34-924:Mérida
++34-988:Orense
++34-98:Oviedo
++34-979:Palencia
++34-948:Pamplona
++34-927:Plasencia
++34-928:Puerto del Rosario
++34-923:Salamanca
++34-956:San Fernando
++34-91:San Lorenzo de el Escorial
++34-943:San Sebastian
++34-922:Santa Cruz de Tenerife
++34-942:Santander
++34-981:Santiago de Compostela
++34-921:Segovia
++34-975:Soria
++34-971:Sóller
++34-978:Teruel
++34-925:Toledo
++34-95:Torremolinos
++34-977:Tortosa
++34-972:Tossa de Mar
++34-963:Valencia
++34-983:Valladolid
++34-93:Vic
++34-986:Vigo
++34-964:Vinarós
++34-945:Vitoria-Gasteiz
++34-96:Xàtiva
++34-980:Zamora
++34-976:Zaragoza
+
+
++94:[LK]Sri Lanka
++94-25:Anuradhapura
++94-57:Bandarawela
++94-1:Colombo
++94-9:Galle
++94-33:Gampaha
++94-8:Kandy
++94-31:Negombo
+
+
++290:St.Helena
+
+
++1869:St.Kitts und Nevis
+
+
++1758:St.Lucia
+
+
++508:St.Pierre und Miquelon
+
+
++1784:St.Vincent und die Grenadinen
+
+
++249:[SD]Sudan
++249-21:Atbara
++249-81:El Obied
++249-441:Gedarif
++249-41:Kassala
++249-11:Khartoum
++249-31:Port Sudan
++249-51:Wad Medani
+
+
++597:Suriname
+
+
++268:Swasiland
+
+
++963:[SY]Syrien
++963-52:Al-Qameshli
++963-13:Al-Zabadani
++963-21:Aleppo
++963-11:Damascus
++963-51:Deir al Zour
++963-33:Hama
++963-31:Homs
++963-41:Lattakia
++963-43:Tartous
+
+
++27:[ZA]Südafrika
++27-149:Carltonville
++27-31:Durban
++27-431:East London
++27-461:Grahamstown
++27-11:Kempton Park
++27-531:Kimberley
++27-433:King William's Town
++27-562:Kroonstad
++27-443:Oudtshoorn
++27-331:Pietermaritzburg
++27-4457:Plettenberg Bay
++27-41:Port Elizabeth
++27-12:Pretoria
++27-3931:Ramsgate
++27-21:Stellenbosch
++27-358:Ulundi
++27-54:Upington
++27-16:Vereeniging
++27-171:Welkom
+
+
++997:[TJ]Tadschikistan
++997-65:Chorog
++997-2:Duschanbe
++997-31:Garm
++997-13:Kuljab
++997-44:Kurgan-Tjube
++997-73:Ura-Tjube
+
+
++886:[TW]Taiwan
++886-47:Changhua
++886-5:Chiai
++886-38:Hualien
++886-7:Kaohsiung
++886-37:Miaoli
++886-69:Penghu
++886-4:Taichung
++886-6:Tainan
++886-2:Taipei
++886-89:Taitung
++886-3:Taoynan
+
+
++255:[TZ]Tansania
++255-57:Arusha
++255-51:Dar Es Salaam
++255-61:Dodoma
++255-695:Kigoma
++255-55:Moshi
++255-68:Mwanza
++255-53:Tanga
++255-54:Zanzibar
+
+
++66:[TH]Thailand
++66-2:Bangkok
++66-53:Chiang Mai
++66-38:Chon Buri
++66-34:Kanchanaburi
++66-44:Nakhon Ratchasima
++66-42:Nong Khai
++66-55:Phitsanulok
++66-76:Phuket
++66-74:Songkhla
++66-77:Surat Thani
+
+
++228:Togo
+
+
++690:Tokelau
+
+
++676:Tonga
+
+
++1868:Trinidad und Tobago
+
+
++235:Tschad
+
+
++420:[CZ]Tschechische Republik
++420-301:Benesov u Prahy
++420-311:Beroun
++420-655:Bilovec
++420-506:Blansko
++420-344:Blatna
++420-185:Blovice
++420-6992:Bohumin
++420-501:Boskovice
++420-202:Brandys n. L.
++420-627:Breclav
++420-5:Brno
++420-447:Broumov
++420-505:Bystrice n. Per.
++420-322:Caslav
++420-4205:Ceska Lipa
++420-38:Ceske Budejovice
++420-203:Cesky Brod
++420-337:Cesky Krumlov
++420-453:Chotebor
++420-455:Chrudim
++420-332:Dacice
++420-412:Decin
++420-305:Dobris
++420-443:Dobruska
++420-189:Domazlice
++420-437:Dvur Kralove n. L.
++420-166:Frantiskovy Lazne
++420-658:Frydek-Mistek
++420-427:Frydlant v Cechach
++420-6994:Havirov
++420-451:Havlickuv Brod
++420-454:Hlinsko v Cechach
++420-628:Hodonin
++420-635:Holesov
++420-456:Holice v Cechach
++420-396:Hora Svatého Sebastiána
++420-435:Horice v Podkrkonosi
++420-316:Horovice
++420-188:Horsovsky Tyn
++420-6420:Hranice
++420-367:Humpolec
++420-626:Hustopece u Brna
++420-428:Jablonec n. Nisou
++420-442:Jaromer
++420-433:Jicin
++420-66:Jihlava
++420-432:Jilemnice
++420-331:Jindrichuv Hradec
++420-398:Kadan
++420-364:Kamenice nad Lipou
++420-336:Kaplice
++420-17:Karlovy Vary
++420-6993:Karvina
++420-312:Kladno
++420-321:Kolin
++420-444:Kostelec nad Orlici
++420-205:Kralupy nad Vltavou
++420-652:Krnov
++420-634:Kromeriz
++420-327:Kutna Hora
++420-629:Kyjov
++420-467:Lanskroun
++420-452:Ledec nad Sazavou
++420-48:Liberec
++420-416:Litomerice
++420-464:Litomysl
++420-395:Louny
++420-419:Lovosice
++420-165:Marianske Lazne
++420-206:Melnik
++420-625:Mikulov na Morave
++420-368:Milevsko
++420-326:Mlada Boleslav
++420-329:Mnichovo Hradiste
++420-462:Moravska Trebova
++420-617:Moravske Budejovice
++420-621:Moravsky Krumlov
++420-35:Most
++420-441:Nachod
++420-509:Namest n. Osl.
++420-434:Nova Paka
++420-424:Novy Bor
++420-448:Novy Bydzov
++420-656:Novy Jicin
++420-325:Nymburk
++420-68:Olomouc
++420-653:Opava
++420-6995:Orlova
++420-69:Ostrava
++420-164:Ostrov n. Ohri
++420-365:Pacov
++420-40:Pardubice
++420-366:Pelhrimov
++420-362:Pisek
++420-182:Plasy
++420-19:Plzen
++420-399:Podborany
++420-324:Podebrady
++420-463:Policka
++420-338:Prachatice
++420-2:Praha
++420-457:Prelouc
++420-641:Prerov
++420-306:Pribram
++420-508:Prostejov
++420-313:Rakovnik
++420-204:Ricany u Prahy
++420-181:Rokycany
++420-502:Rosice u Brna
++420-411:Roudnice n. L.
++420-445:Rychnov n. Kneznou
++420-304:Sedlcany
++420-431:Semily
++420-314:Slany
++420-363:Sobeslav
++420-168:Sokolov
++420-342:Strakonice
++420-183:Stribro
++420-649:Sumperk
++420-187:Susice
++420-461:Svitavy
++420-361:Tabor
++420-184:Tachov
++420-417:Teplice
++420-504:Tisnov
++420-169:Touzim
++420-618:Trebic
++420-333:Trebon
++420-335:Trhove Sviny
++420-659:Trinec
++420-439:Trutnov
++420-436:Turnov
++420-334:Tyn n. Vltavou
++420-632:Uherske Hradiste
++420-633:Uhersky Brod
++420-328:Uhlirske Janovice
++420-47:Usti nad Labem
++420-465:Usti nad Orlici
++420-636:Valasske Klobouky
++420-651:Valasske Mezirici
++420-413:Varnsdorf
++420-619:Velke Mezirici
++420-631:Veseli n. Moravou
++420-339:Vimperk
++420-654:Vitkov
++420-303:Vlasim
++420-302:Votice
++420-438:Vrchlabi
++420-657:Vsetin
++420-507:Vyskov
++420-468:Vysoke Myto
++420-648:Zabreh
++420-446:Zamberk
++420-397:Zatec
++420-616:Zdar n. Sazavou
++420-186:Zelezná Ruda
++420-67:Zlin
++420-624:Znojmo
+
+
++216:[TN]Tunesien
++216-7:Kasserine
++216-4:Sfax
++216-8:Siliana
++216-3:Sousse
++216-5:Tataouine
++216-6:Tozeur
++216-1:Tunis
++216-2:Zaghouan
+
+
++993:[TM]Turkmenistan
++993-12:Aschchabat
++993-564:Bajram-Ali
++993-444:Kerki
++993-246:Kisyl-Arwat
++993-522:Mary
++993-222:Nebit-Dag
++993-422:Schardjew
++993-322:Taschaus
++993-243:Turkmenbaschi
+
+
++1649:Turks- und Caicos-Inseln
+
+
++688:Tuvalu
+
+
++90:[TR]Türkei
++90-416:Adiyaman
++90-272:Afyon
++90-472:Agri
++90-382:Aksaray
++90-358:Amasya
++90-312:Ankara
++90-242:Antalya
++90-478:Ardahan
++90-466:Artvin
++90-256:Aydin
++90-266:Balikesir
++90-378:Bartin
++90-488:Batman
++90-458:Bayburt
++90-228:Bilecik
++90-426:Bingöl
++90-434:Bitlis
++90-374:Bolu
++90-248:Burdur
++90-224:Bursa
++90-286:Canakkale
++90-376:Cankiri
++90-364:Corum
++90-258:Denizli
++90-412:Diyarbakir
++90-284:Edirne
++90-424:Elazig
++90-446:Erzincan
++90-442:Erzurum
++90-222:Eskisehir
++90-342:Gaziantep
++90-454:Giresun
++90-456:Gümüshane
++90-438:Hakkari
++90-326:Hatay
++90-476:Igdir
++90-246:Isparta
++90-212:Istanbul
++90-232:Izmir
++90-344:K.Maras
++90-338:Karaman
++90-474:Kars
++90-366:Kastamonu
++90-352:Kayseri
++90-318:Kirikkale
++90-288:Kirklareli
++90-386:Kirsehir
++90-262:Kocaeli
++90-332:Konya
++90-274:Kütahya
++90-422:Malatya
++90-236:Manisa
++90-482:Mardin
++90-324:Mersin
++90-252:Mugla
++90-436:Mus
++90-384:Nevsehir
++90-388:Nigde
++90-452:Ordu
++90-322:Osmaniye
++90-464:Rize
++90-264:Sakarya
++90-362:Samsun
++90-414:Sanliurfa
++90-484:Siirt
++90-368:Sinop
++90-486:Sirnak
++90-346:Sivas
++90-282:Tekirdag
++90-356:Tokat
++90-462:Trabzon
++90-428:Tunceli
++90-276:Usak
++90-432:Van
++90-226:Yalova
++90-354:Yozgat
++90-372:Zonguldak
+
+
++256:[UG]Uganda
++256-42:Entebbe
++256-486:Kabale
++256-41:Kawempe
++256-43:Lugazi
++256-481:Masaka
++256-45:Tororo
+
+
++380:[UA]Ukraine
++380-6565:Armjansk
++380-6554:Bachtschyssaraj
++380-572:Charkiw
++380-552:Cherson
++380-382:Chmelnyzkyj
++380-562:Dnipropetrowsk
++380-622:Donezk
++380-6564:Dshankoj
++380-6562:Feodossija
++380-342:Iwano-Frankiwsk
++380-654:Jalta
++380-6569:Jewpatorija
++380-6561:Kertsch
++380-44:Kiew
++380-522:Kirowohrad
++380-6556:Krasnohwardijske
++380-642:Luhansk
++380-3322:Luzk
++380-322:Lwiw
++380-3131:Mukatschewe
++380-512:Mykolajiw
++380-6550:Nyshnjohirskyj
++380-482:Odessa
++380-532:Poltawa
++380-362:Riwne
++380-6563:Saky
++380-612:Saporishshja
++380-692:Sewastopol
++380-412:Shytomyr
++380-652:Simferopol
++380-6566:Sudak
++380-542:Sumy
++380-352:Ternopil
++380-472:Tscherkassy
++380-4622:Tschernihiw
++380-3722:Tscherniwzi
++380-6558:Tschornomorske
++380-312:Ushhorod
++380-432:Winnyzja
+
+
++36:[HU]Ungarn
++36-79:Baja
++36-35:Balassagyarmat
++36-1:Budapest
++36-53:Cegléd
++36-63:Csongrád
++36-25:Dunaújváros
++36-33:Esztergom
++36-36:Füzesabony
++36-28:Gödöllö
++36-52:Hajdúszoboszló
++36-57:Jászberény
++36-82:Kaposvár
++36-59:Karcag
++36-76:Kecskemét
++36-77:Kiskunhalas
++36-78:Kiskörös
++36-85:Marcali
++36-46:Miskolc
++36-69:Mohács
++36-96:Mosonmagyaróvár
++36-37:Mátraháza
++36-44:Mátészalka
++36-93:Nagykanizsa
++36-42:Nyiregyháza
++36-68:Orosháza
++36-48:Ozd
++36-75:Paks
++36-89:Pápa
++36-32:Salgótarján
++36-72:Siklós
++36-99:Sopron
++36-66:Szarvas
++36-62:Szeged
++36-74:Szekszárd
++36-24:Szigetszentmiklós
++36-73:Szigetvár
++36-56:Szolnok
++36-94:Szombathely
++36-22:Székesfehérvár
++36-47:Sátoraljaújhely
++36-34:Tatabánya
++36-87:Tihany
++36-49:Tiszaújváros
++36-88:Veszprém
++36-26:Visegrád
++36-92:Zalakaros
++36-83:Zalaszentgrót
++36-84:Zamárdi
++36-27:Zebegény
++36-23:Zsámbék
+
+
++598:[UY]Uruguay
++598-542:Carmelo
++598-522:Colonia
++598-352:Florida
++598-473:La Paloma
++598-2:Montevideo
++598-72:Paysandu
++598-42:Punta del Este
++598-73:Salto
++598-342:San Jose
+
+
++998:[UZ]Usbekistan
++998-7161:Almalyk
++998-742:Andishan
++998-7166:Angren
++998-652:Buchara
++998-7222:Dshisak
++998-73:Fergana
++998-672:Gulistan
++998-7522:Karschi
++998-7355:Kokand
++998-732:Margilan
++998-6922:Namangan
++998-7922:Nawoi
++998-6122:Nukus
++998-662:Samarkand
++998-71:Taschkent
++998-7622:Termes
++998-7171:Tschirtschik
++998-6222:Urgentsch
+
+
++678:Vanuatu
+
+
++379:Vatikanstadt
+
+
++58:[VE]Venezuela
++58-51:Barquisimeto
++58-64:Cabimas
++58-2:Caracas
++58-94:Carupano
++58-85:Ciudad Bolívar
++58-33:Colonia Tovar
++58-68:Coro
++58-93:Cumana
++58-57:Guanare
++58-32:Los Teques
++58-31:Maiquetía
++58-61:Maracaibo
++58-43:Maracay
++58-91:Maturín
++58-74:Merida
++58-95:Porlamar
++58-48:Puerto Ayacucho
++58-42:Puerto Cabello
++58-86:Puerto Ordaz
++58-81:Puerto la Cruz
++58-58:San Carlos
++58-76:San Cristobal
++58-46:San Juan de los Morros
++58-72:Trujillo
++58-87:Tucupita
++58-41:Valencia
+
+
++971:[AE]Vereinigte Arabische Emirate
++971-2:Abu Dhabi
++971-3:Al Ain
++971-4:Dubai
++971-9:Fujairah
++971-84:Jebel Ali
++971-7:Ras Al Khaimah
++971-6:Umm Al Quwain
+
+
++84:[VN]Vietnam
++84-64:Ba Ria Vung Tau
++84-71:Can Tho
++84-511:Da Nang
++84-31:Hai Phong
++84-4:Hanoi
++84-8:Ho-Chi-Minh-Stadt
++84-58:Khanh Hoa
++84-35:Nam Ha
++84-510:Quang Nam
++84-33:Quang Ninh
++84-54:Thua Thien Hue
+
+
++6993:Wake Island
+
+
++681:Wallis & Futuna
+
+
++236:Zentralafrikanische Republik
+
+
++357:[CY]Zypern
++357-3:Agia Napa
++357-4:Larnaca
++357-5:Limassol
++357-2:Nicosia
++357-6:Paphos
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/callbycall_world.xml
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/callbycall_world.xml	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/callbycall_world.xml	(revision 12232)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- the syntax of this file is fairly self-explanatory
+     However, one thing needs to be said. Entries are
+     processed in the order they are placed. This is important
+     when there are overlapping prefixes, e.g. 010 and 0100, in
+     this case 0100 must be placed before 010 or else 010 will
+     be used instead causing errors.-->
+
+<callbycalls>
+	<country code="+31">
+		<callbycall>
+			<prefix>16</prefix>
+			<length>4</length>
+		</callbycall>
+	</country>
+	<country code="+39">
+		<callbycall>
+			<prefix>10</prefix>
+			<length>4</length>
+		</callbycall>
+	</country>
+	<country code="+41">
+		<callbycall>
+			<prefix>10</prefix>
+			<length>5</length>
+		</callbycall>
+	</country>
+	<country code="+49">
+	        <callbycall>
+		        <prefix>0100</prefix>
+	                <length>6</length>
+	        </callbycall>
+		<callbycall>
+		        <prefix>010</prefix>
+			<length>5</length>
+		</callbycall>
+	</country>
+</callbycalls>
+	
+
+	
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/ldif.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/ldif.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/ldif.py	(revision 12232)
@@ -0,0 +1,457 @@
+#@PydevCodeAnalysisIgnore
+# pylint: disable-msg=W0312,C0324,C0322
+
+"""
+ldif - generate and parse LDIF data (see RFC 2849)
+
+See http://python-ldap.sourceforge.net for details.
+
+$Id: ldif.py 505 2009-12-05 17:53:32Z michael $
+
+Python compability note:
+Tested with Python 2.0+, but should work with Python 1.5.2+.
+"""
+
+__version__ = '0.5.5'
+
+__all__ = [
+  # constants
+  'ldif_pattern',
+  # functions
+  'AttrTypeandValueLDIF','CreateLDIF','ParseLDIF',
+  # classes
+  'LDIFWriter',
+  'LDIFParser',
+  'LDIFRecordList',
+  'LDIFCopy',
+]
+
+import urlparse,urllib,base64,re,types
+
+try:
+  from cStringIO import StringIO
+except ImportError:
+  from StringIO import StringIO
+
+attrtype_pattern = r'[\w;.]+(;[\w_-]+)*'
+attrvalue_pattern = r'(([^,]|\\,)+|".*?")'
+rdn_pattern = attrtype_pattern + r'[ ]*=[ ]*' + attrvalue_pattern
+dn_pattern   = rdn_pattern + r'([ ]*,[ ]*' + rdn_pattern + r')*[ ]*'
+dn_regex   = re.compile('^%s$' % dn_pattern)
+
+ldif_pattern = '^((dn(:|::) %(dn_pattern)s)|(%(attrtype_pattern)s(:|::) .*)$)+' % vars()
+
+MOD_OP_INTEGER = {
+  'add':0,'delete':1,'replace':2
+}
+
+MOD_OP_STR = {
+  0:'add',1:'delete',2:'replace'
+}
+
+CHANGE_TYPES = ['add','delete','modify','modrdn']
+valid_changetype_dict = {}
+for c in CHANGE_TYPES:
+  valid_changetype_dict[c]=None
+
+
+SAFE_STRING_PATTERN = '(^(\000|\n|\r| |:|<)|[\000\n\r\200-\377]+|[ ]+$)'
+safe_string_re = re.compile(SAFE_STRING_PATTERN)
+
+def is_dn(s):
+  """
+  returns 1 if s is a LDAP DN
+  """
+  if s=='':
+    return 1
+  rm = dn_regex.match(s)
+  return rm!=None and rm.group(0)==s
+
+
+def needs_base64(s):
+  """
+  returns 1 if s has to be base-64 encoded because of special chars
+  """
+  return not safe_string_re.search(s) is None
+
+
+def list_dict(l):
+  """
+  return a dictionary with all items of l being the keys of the dictionary
+  """
+  return dict([(i,None) for i in l])
+
+
+class LDIFWriter:
+  """
+  Write LDIF entry or change records to file object
+  Copy LDIF input to a file output object containing all data retrieved
+  via URLs
+  """
+
+  def __init__(self,output_file,base64_attrs=None,cols=76,line_sep='\n'):
+    """
+    output_file
+        file object for output
+    base64_attrs
+        list of attribute types to be base64-encoded in any case
+    cols
+        Specifies how many columns a line may have before it's
+        folded into many lines.
+    line_sep
+        String used as line separator
+    """
+    self._output_file = output_file
+    self._base64_attrs = list_dict([a.lower() for a in (base64_attrs or [])])
+    self._cols = cols
+    self._line_sep = line_sep
+    self.records_written = 0
+
+  def _unfoldLDIFLine(self,line):
+    """
+    Write string line as one or more folded lines
+    """
+    # Check maximum line length
+    line_len = len(line)
+    if line_len<=self._cols:
+      self._output_file.write(line)
+      self._output_file.write(self._line_sep)
+    else:
+      # Fold line
+      pos = self._cols
+      self._output_file.write(line[0:min(line_len,self._cols)])
+      self._output_file.write(self._line_sep)
+      while pos<line_len:
+        self._output_file.write(' ')
+        self._output_file.write(line[pos:min(line_len,pos+self._cols-1)])
+        self._output_file.write(self._line_sep)
+        pos = pos+self._cols-1
+    return # _unfoldLDIFLine()
+
+  def _unparseAttrTypeandValue(self,attr_type,attr_value):
+    """
+    Write a single attribute type/value pair
+
+    attr_type
+          attribute type
+    attr_value
+          attribute value
+    """
+    if self._base64_attrs.has_key(attr_type.lower()) or \
+       needs_base64(attr_value):
+      # Encode with base64
+      self._unfoldLDIFLine(':: '.join([attr_type,base64.encodestring(attr_value).replace('\n','')]))
+    else:
+      self._unfoldLDIFLine(': '.join([attr_type,attr_value]))
+    return # _unparseAttrTypeandValue()
+
+  def _unparseEntryRecord(self,entry):
+    """
+    entry
+        dictionary holding an entry
+    """
+    attr_types = entry.keys()[:]
+    attr_types.sort()
+    for attr_type in attr_types:
+      for attr_value in entry[attr_type]:
+        self._unparseAttrTypeandValue(attr_type,attr_value)
+
+  def _unparseChangeRecord(self,modlist):
+    """
+    modlist
+        list of additions (2-tuple) or modifications (3-tuple)
+    """
+    mod_len = len(modlist[0])
+    if mod_len==2:
+      changetype = 'add'
+    elif mod_len==3:
+      changetype = 'modify'
+    else:
+      raise ValueError,"modlist item of wrong length"
+    self._unparseAttrTypeandValue('changetype',changetype)
+    for mod in modlist:
+      if mod_len==2:
+        mod_type,mod_vals = mod
+      elif mod_len==3:
+        mod_op,mod_type,mod_vals = mod
+        self._unparseAttrTypeandValue(MOD_OP_STR[mod_op],mod_type)
+      else:
+        raise ValueError,"Subsequent modlist item of wrong length"
+      if mod_vals:
+        for mod_val in mod_vals:
+          self._unparseAttrTypeandValue(mod_type,mod_val)
+      if mod_len==3:
+        self._output_file.write('-'+self._line_sep)
+
+  def unparse(self,dn,record):
+    """
+    dn
+          string-representation of distinguished name
+    record
+          Either a dictionary holding the LDAP entry {attrtype:record}
+          or a list with a modify list like for LDAPObject.modify().
+    """
+    if not record:
+      # Simply ignore empty records
+      return
+    # Start with line containing the distinguished name
+    self._unparseAttrTypeandValue('dn',dn)
+    # Dispatch to record type specific writers
+    if isinstance(record,types.DictType):
+      self._unparseEntryRecord(record)
+    elif isinstance(record,types.ListType):
+      self._unparseChangeRecord(record)
+    else:
+      raise ValueError, "Argument record must be dictionary or list"
+    # Write empty line separating the records
+    self._output_file.write(self._line_sep)
+    # Count records written
+    self.records_written = self.records_written+1
+    return # unparse()
+
+
+def CreateLDIF(dn,record,base64_attrs=None,cols=76):
+  """
+  Create LDIF single formatted record including trailing empty line.
+  This is a compability function. Use is deprecated!
+
+  dn
+        string-representation of distinguished name
+  record
+        Either a dictionary holding the LDAP entry {attrtype:record}
+        or a list with a modify list like for LDAPObject.modify().
+  base64_attrs
+        list of attribute types to be base64-encoded in any case
+  cols
+        Specifies how many columns a line may have before it's
+        folded into many lines.
+  """
+  f = StringIO()
+  ldif_writer = LDIFWriter(f,base64_attrs,cols,'\n')
+  ldif_writer.unparse(dn,record)
+  s = f.getvalue()
+  f.close()
+  return s
+
+
+class LDIFParser:
+  """
+  Base class for a LDIF parser. Applications should sub-class this
+  class and override method handle() to implement something meaningful.
+
+  Public class attributes:
+  records_read
+        Counter for records processed so far
+  """
+
+  def _stripLineSep(self,s):
+    """
+    Strip trailing line separators from s, but no other whitespaces
+    """
+    if s[-2:]=='\r\n':
+      return s[:-2]
+    elif s[-1:]=='\n':
+      return s[:-1]
+    else:
+      return s
+
+  def __init__(
+    self,
+    input_file,
+    ignored_attr_types=None,
+    max_entries=0,
+    process_url_schemes=None,
+    line_sep='\n'
+  ):
+    """
+    Parameters:
+    input_file
+        File-object to read the LDIF input from
+    ignored_attr_types
+        Attributes with these attribute type names will be ignored.
+    max_entries
+        If non-zero specifies the maximum number of entries to be
+        read from f.
+    process_url_schemes
+        List containing strings with URLs schemes to process with urllib.
+        An empty list turns off all URL processing and the attribute
+        is ignored completely.
+    line_sep
+        String used as line separator
+    """
+    self._input_file = input_file
+    self._max_entries = max_entries
+    self._process_url_schemes = list_dict([s.lower() for s in (process_url_schemes or [])])
+    self._ignored_attr_types = list_dict([a.lower() for a in (ignored_attr_types or [])])
+    self._line_sep = line_sep
+    self.records_read = 0
+
+  def handle(self,dn,entry):
+    """
+    Process a single content LDIF record. This method should be
+    implemented by applications using LDIFParser.
+    """
+
+  def _unfoldLDIFLine(self):
+    """
+    Unfold several folded lines with trailing space into one line
+    """
+    unfolded_lines = [ self._stripLineSep(self._line) ]
+    self._line = self._input_file.readline()
+    while self._line and self._line[0]==' ':
+      unfolded_lines.append(self._stripLineSep(self._line[1:]))
+      self._line = self._input_file.readline()
+    return ''.join(unfolded_lines)
+
+  def _parseAttrTypeandValue(self):
+    """
+    Parse a single attribute type and value pair from one or
+    more lines of LDIF data
+    """
+    # Reading new attribute line
+    unfolded_line = self._unfoldLDIFLine()
+    # Ignore comments which can also be folded
+    while unfolded_line and unfolded_line[0]=='#':
+      unfolded_line = self._unfoldLDIFLine()
+    if not unfolded_line or unfolded_line=='\n' or unfolded_line=='\r\n':
+      return None,None
+    try:
+      colon_pos = unfolded_line.index(':')
+    except ValueError:
+      # Treat malformed lines without colon as non-existent
+      return None,None
+    attr_type = unfolded_line[0:colon_pos]
+    # if needed attribute value is BASE64 decoded
+    value_spec = unfolded_line[colon_pos:colon_pos+2]
+    if value_spec=='::':
+      # attribute value needs base64-decoding
+      attr_value = base64.decodestring(unfolded_line[colon_pos+2:])
+    elif value_spec==':<':
+      # fetch attribute value from URL
+      url = unfolded_line[colon_pos+2:].strip()
+      attr_value = None
+      if self._process_url_schemes:
+        u = urlparse.urlparse(url)
+        if self._process_url_schemes.has_key(u[0]):
+          attr_value = urllib.urlopen(url).read()
+    elif value_spec==':\r\n' or value_spec=='\n':
+      attr_value = ''
+    else:
+      attr_value = unfolded_line[colon_pos+2:].lstrip()
+    return attr_type,attr_value
+
+  def parse(self):
+    """
+    Continously read and parse LDIF records
+    """
+    self._line = self._input_file.readline()
+
+    while self._line and \
+          (not self._max_entries or self.records_read<self._max_entries):
+
+      # Reset record
+      version = None; dn = None; changetype = None; modop = None; entry = {}
+
+      attr_type,attr_value = self._parseAttrTypeandValue()
+
+      while attr_type!=None and attr_value!=None:
+        if attr_type=='dn':
+          # attr type and value pair was DN of LDIF record
+          if dn!=None:
+	    raise ValueError, 'Two lines starting with dn: in one record.'
+          if not is_dn(attr_value):
+	    raise ValueError, 'No valid string-representation of distinguished name %s.' % (repr(attr_value))
+          dn = attr_value
+        elif attr_type=='version' and dn is None:
+          version = 1
+        elif attr_type=='changetype':
+          # attr type and value pair was DN of LDIF record
+          if dn is None:
+	    raise ValueError, 'Read changetype: before getting valid dn: line.'
+          if changetype!=None:
+	    raise ValueError, 'Two lines starting with changetype: in one record.'
+          if not valid_changetype_dict.has_key(attr_value):
+	    raise ValueError, 'changetype value %s is invalid.' % (repr(attr_value))
+          changetype = attr_value
+        elif attr_value!=None and \
+             not self._ignored_attr_types.has_key(attr_type.lower()):
+          # Add the attribute to the entry if not ignored attribute
+          if entry.has_key(attr_type):
+            entry[attr_type].append(attr_value)
+          else:
+            entry[attr_type]=[attr_value]
+
+        # Read the next line within an entry
+        attr_type,attr_value = self._parseAttrTypeandValue()
+
+      if entry:
+        # append entry to result list
+        self.handle(dn,entry)
+        self.records_read = self.records_read+1
+
+    return # parse()
+
+
+class LDIFRecordList(LDIFParser):
+  """
+  Collect all records of LDIF input into a single list.
+  of 2-tuples (dn,entry). It can be a memory hog!
+  """
+
+  def __init__(
+    self,
+    input_file,
+    ignored_attr_types=None,max_entries=0,process_url_schemes=None
+  ):
+    """
+    See LDIFParser.__init__()
+
+    Additional Parameters:
+    all_records
+        List instance for storing parsed records
+    """
+    LDIFParser.__init__(self,input_file,ignored_attr_types,max_entries,process_url_schemes)
+    self.all_records = []
+
+  def handle(self,dn,entry):
+    """
+    Append single record to dictionary of all records.
+    """
+    self.all_records.append((dn,entry))
+
+
+class LDIFCopy(LDIFParser):
+  """
+  Copy LDIF input to LDIF output containing all data retrieved
+  via URLs
+  """
+
+  def __init__(
+    self,
+    input_file,output_file,
+    ignored_attr_types=None,max_entries=0,process_url_schemes=None,
+    base64_attrs=None,cols=76,line_sep='\n'
+  ):
+    """
+    See LDIFParser.__init__() and LDIFWriter.__init__()
+    """
+    LDIFParser.__init__(self,input_file,ignored_attr_types,max_entries,process_url_schemes)
+    self._output_ldif = LDIFWriter(output_file,base64_attrs,cols,line_sep)
+
+  def handle(self,dn,entry):
+    """
+    Write single LDIF record to output file.
+    """
+    self._output_ldif.unparse(dn,entry)
+
+
+def ParseLDIF(f,ignore_attrs=None,maxentries=0):
+  """
+  Parse LDIF records read from file.
+  This is a compability function. Use is deprecated!
+  """
+  ldif_parser = LDIFRecordList(
+    f,ignored_attr_types=ignore_attrs,max_entries=maxentries,process_url_schemes=0
+  )
+  ldif_parser.parse()
+  return ldif_parser.all_records
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/FritzCall.pot
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/FritzCall.pot	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/FritzCall.pot	(revision 12232)
@@ -0,0 +1,615 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-04-30 12:39+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "About FritzCall"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+#. TRANSLATORS: this is a window title.
+msgid "Add entry to phonebook"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "All"
+msgstr ""
+
+msgid "All calls"
+msgstr ""
+
+msgid "Append shortcut number"
+msgstr ""
+
+msgid "Append type of number"
+msgstr ""
+
+msgid "Append vanity name"
+msgstr ""
+
+msgid "Areacode to add to calls without one (if necessary)"
+msgstr ""
+
+msgid "Austria"
+msgstr ""
+
+msgid "Automatically add new Caller to PhoneBook"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Call"
+msgstr ""
+
+msgid "Call monitoring"
+msgstr ""
+
+msgid "Call redirection"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Cancel"
+msgstr ""
+
+msgid "Cannot get calls from FRITZ!Box"
+msgstr ""
+
+msgid "Cannot get infos from FRITZ!Box"
+msgstr ""
+
+msgid "Compact Flash"
+msgstr ""
+
+msgid "Connected since"
+msgstr ""
+
+msgid "Connected to FRITZ!Box!"
+msgstr ""
+
+#, python-format
+msgid ""
+"Connecting to FRITZ!Box failed\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+
+msgid "Connecting to FRITZ!Box..."
+msgstr ""
+
+#, python-format
+msgid ""
+"Connection to FRITZ!Box! lost\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+
+msgid "Could not parse FRITZ!Box Phonebook entry"
+msgstr ""
+
+msgid "Country"
+msgstr ""
+
+msgid "DECT phones registered"
+msgstr ""
+
+msgid "Debug"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Delete"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Delete entry"
+msgstr ""
+
+msgid "Display FRITZ!box-Fon calls on screen"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display all calls"
+msgstr ""
+
+msgid "Display connection infos"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display incoming calls"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display missed calls"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display outgoing calls"
+msgstr ""
+
+#. TRANSLATORS: this is a window title.
+msgid "Do what?"
+msgstr ""
+
+#, python-format
+msgid ""
+"Do you really want to delete entry for\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Edit"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Edit selected entry"
+msgstr ""
+
+msgid "Enter Search Terms"
+msgstr ""
+
+msgid "Entry incomplete."
+msgstr ""
+
+msgid "Extension number to initiate call on"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Could not load calls: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Could not load phonebook: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Dialling failed: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error getting blacklist: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error getting status: %s"
+msgstr ""
+
+msgid ""
+"FRITZ!Box - Error logging in\n"
+"\n"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error logging in: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"FRITZ!Box - Error logging in: %s\n"
+"Disabling plugin."
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error logging out: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error resetting: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Failed changing Mailbox: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Failed changing WLAN: %s"
+msgstr ""
+
+msgid "FRITZ!Box FON address (Name or IP)"
+msgstr ""
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "FRITZ!Box Fon Status"
+msgstr ""
+
+msgid "Filter also list of calls"
+msgstr ""
+
+msgid "Flash"
+msgstr ""
+
+#, python-format
+msgid ""
+"Found picture\n"
+"\n"
+"%s\n"
+"\n"
+"But did not load. Probably not PNG, 8-bit"
+msgstr ""
+
+msgid "France"
+msgstr ""
+
+#. TRANSLATORS: this is a window title.
+msgid "FritzCall Setup"
+msgstr ""
+
+msgid "Germany"
+msgstr ""
+
+msgid "Getting calls from FRITZ!Box..."
+msgstr ""
+
+msgid "Getting status from FRITZ!Box Fon..."
+msgstr ""
+
+msgid "IP Address:"
+msgstr ""
+
+msgid "Ignore callers with no phone number"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Incoming"
+msgstr ""
+
+#, python-format
+msgid ""
+"Incoming Call on %(date)s at %(time)s from\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"to: %(phone)s"
+msgstr ""
+
+msgid "Incoming calls"
+msgstr ""
+
+msgid "Italy"
+msgstr ""
+
+msgid "Last 10 calls:\n"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Lookup"
+msgstr ""
+
+msgid "MSN to show (separated by ,)"
+msgstr ""
+
+msgid "Mailbox"
+msgstr ""
+
+msgid "Media directory"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Missed"
+msgstr ""
+
+msgid "Missed calls"
+msgstr ""
+
+msgid "Mute on call"
+msgstr ""
+
+msgid "Name"
+msgstr ""
+
+msgid "Network mount"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "New"
+msgstr ""
+
+msgid "No DECT phone registered"
+msgstr ""
+
+msgid "No call redirection active"
+msgstr ""
+
+msgid "No entry selected"
+msgstr ""
+
+msgid "No mailbox active"
+msgstr ""
+
+msgid "No phonebook"
+msgstr ""
+
+msgid "No result from LDIF"
+msgstr ""
+
+msgid "No result from Outlook export"
+msgstr ""
+
+msgid "No result from reverse lookup"
+msgstr ""
+
+msgid "Number"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "OK"
+msgstr ""
+
+msgid "One DECT phone registered"
+msgstr ""
+
+msgid "One call redirection active"
+msgstr ""
+
+msgid "One mailbox active"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Outgoing"
+msgstr ""
+
+#, python-format
+msgid ""
+"Outgoing Call on %(date)s at %(time)s to\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"from: %(phone)s"
+msgstr ""
+
+msgid "Outgoing calls"
+msgstr ""
+
+msgid "Password Accessing FRITZ!Box"
+msgstr ""
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phone calls"
+msgstr ""
+
+msgid "PhoneBook Location"
+msgstr ""
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phonebook"
+msgstr ""
+
+msgid "Plugin not active"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Quit"
+msgstr ""
+
+msgid "Read PhoneBook from FRITZ!Box"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Refresh status"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Reset"
+msgstr ""
+
+msgid "Reverse Lookup Caller ID (select country below)"
+msgstr ""
+
+msgid "Reverse searching..."
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Save"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Search"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Search (case insensitive)"
+msgstr ""
+
+msgid "Search phonebook"
+msgstr ""
+
+msgid "Searching in LDIF..."
+msgstr ""
+
+msgid "Searching in Outlook export..."
+msgstr ""
+
+msgid "Shortcut"
+msgstr ""
+
+msgid "Show Outgoing Calls"
+msgstr ""
+
+msgid "Show after Standby"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Show details of entry"
+msgstr ""
+
+msgid "Show only calls for specific MSN"
+msgstr ""
+
+msgid "Software fax active"
+msgstr ""
+
+msgid "Status not available"
+msgstr ""
+
+msgid "Strip Leading 0"
+msgstr ""
+
+msgid "Switzerland"
+msgstr ""
+
+msgid "The Netherlands"
+msgstr ""
+
+msgid "Timeout for Call Notifications (seconds)"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 1. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 2. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 3. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 4. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 5. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Toggle Mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle WLAN"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle all mailboxes"
+msgstr ""
+
+msgid "UNKNOWN"
+msgstr ""
+
+msgid "USB Device"
+msgstr ""
+
+msgid "Use internal PhoneBook"
+msgstr ""
+
+msgid "Vanity"
+msgstr ""
+
+msgid "You need to enable the monitoring on your FRITZ!Box by dialing #96*5*!"
+msgstr ""
+
+msgid ""
+"You need to set the password of the FRITZ!Box\n"
+"in the configuration dialog to display calls\n"
+"\n"
+"It could be a communication issue, just try again."
+msgstr ""
+
+msgid "call redirections active"
+msgstr ""
+
+msgid "devices active"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display calls"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display phonebook"
+msgstr ""
+
+msgid "done"
+msgstr ""
+
+msgid "done, using last list"
+msgstr ""
+
+msgid "encrypted"
+msgstr ""
+
+msgid "finishing"
+msgstr ""
+
+msgid "home"
+msgstr ""
+
+msgid "login"
+msgstr ""
+
+msgid "login ok"
+msgstr ""
+
+msgid "login verification"
+msgstr ""
+
+msgid "mailboxes active"
+msgstr ""
+
+msgid "mobile"
+msgstr ""
+
+msgid "no calls"
+msgstr ""
+
+msgid "no device active"
+msgstr ""
+
+msgid "not encrypted"
+msgstr ""
+
+msgid "number suppressed"
+msgstr ""
+
+msgid "one device active"
+msgstr ""
+
+msgid "preparing"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "quit"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "save and quit"
+msgstr ""
+
+msgid "show as list"
+msgstr ""
+
+msgid "show each call"
+msgstr ""
+
+msgid "show nothing"
+msgstr ""
+
+msgid "work"
+msgstr ""
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/Makefile
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/Makefile	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/Makefile	(revision 12232)
@@ -0,0 +1,42 @@
+#
+# to use this for the localisation of other plugins,
+# just change the DOMAIN to the name of the Plugin.
+# It is assumed, that the domain ist the same as
+# the directory name of the plugin.
+#
+
+DOMAIN=FritzCall
+installdir = /usr/lib/enigma2/python/Plugins/Extensions/$(DOMAIN)
+GETTEXT=xgettext
+MSGFMT = msgfmt
+
+LANGS := de it nl tr es sr
+LANGPO := $(foreach LANG, $(LANGS),$(LANG).po)
+LANGMO := $(foreach LANG, $(LANGS),$(LANG).mo)
+
+$(foreach LANG, $(LANGS),$(LANG)/LC_MESSAGES/$(DOMAIN).mo): $(LANGMO)
+	for lang in $(LANGS); do \
+		mkdir -p $$lang/LC_MESSAGES; \
+		cp $$lang.mo $$lang/LC_MESSAGES/$(DOMAIN).mo; \
+	done
+
+
+# the TRANSLATORS: allows putting translation comments before the to-be-translated line.
+$(DOMAIN).pot: ../plugin.py
+	$(GETTEXT) --no-location -L python --add-comments="TRANSLATORS:" -d $(DOMAIN) -s -o $(DOMAIN).pot ../plugin.py
+	msguniq -o $(DOMAIN)uniq.pot $(DOMAIN).pot
+	$(RM) $(DOMAIN).pot
+	mv $(DOMAIN)uniq.pot $(DOMAIN).pot
+
+
+%.mo: %.po
+	$(MSGFMT) -o $@ $<
+
+%.po: $(DOMAIN).pot
+	msgmerge -s -U -N $@ $(DOMAIN).pot; \
+
+clean:
+	rm -f *~
+
+distclean: clean
+	rm -f *.mo
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/de.po
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/de.po	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/de.po	(revision 12232)
@@ -0,0 +1,654 @@
+# FritzCall plugin german localization
+# Copyright (C) 2009 Michael Schmidt
+# This file is distributed under the same license as the PACKAGE package.
+# Michael Schmidt <michael@schmidt-schmitten.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Enigma2 FritzCall Plugin\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-02-13 17:00+0100\n"
+"PO-Revision-Date: 2011-02-13 17:00+0100\n"
+"Last-Translator: Michael Schmidt <michael@schmidt-schmitten.com>\n"
+"Language-Team: german <de@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "About FritzCall"
+msgstr "FritzCall Plugin"
+
+#. TRANSLATORS: keep it short, this is a help text
+#. TRANSLATORS: this is a window title.
+msgid "Add entry to phonebook"
+msgstr "Neuer Telefonbucheintrag"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "All"
+msgstr "Alle"
+
+msgid "All calls"
+msgstr "Alle Anrufe"
+
+msgid "Append shortcut number"
+msgstr "Füge Kurzwahl an"
+
+msgid "Append type of number"
+msgstr "Füge Typ der Nummer an"
+
+msgid "Append vanity name"
+msgstr "Füge Vanity-Nummer an"
+
+msgid "Areacode to add to calls without one (if necessary)"
+msgstr "Vorwahl für Anrufe ohne eine solche (falls nötig)"
+
+msgid "Austria"
+msgstr "Österreich"
+
+msgid "Automatically add new Caller to PhoneBook"
+msgstr "Anrufer automatisch dem Telefonbuch hinzufügen"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Call"
+msgstr "Anrufen"
+
+msgid "Call monitoring"
+msgstr "Anrufanzeige"
+
+msgid "Call redirection"
+msgstr "Rufumleitung"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Cancel"
+msgstr "Abbruch"
+
+msgid "Cannot get calls from FRITZ!Box"
+msgstr "Kann Anrufe nicht von der FRITZ!Box bekommen"
+
+msgid "Cannot get infos from FRITZ!Box"
+msgstr "Kann Status nicht von der FRITZ!Box bekommen"
+
+msgid "Compact Flash"
+msgstr "Compact Flash"
+
+msgid "Connected since"
+msgstr "Verbunden seit"
+
+msgid "Connected to FRITZ!Box!"
+msgstr "Verbunden mit FRITZ!Box!"
+
+#, python-format
+msgid ""
+"Connecting to FRITZ!Box failed\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Verbindung zur FRITZ!Box fehlgeschlagen\n"
+" (%s)\n"
+"neuer Versuch..."
+
+msgid "Connecting to FRITZ!Box..."
+msgstr "Verbinde mit FRITZ!Box..."
+
+#, python-format
+msgid ""
+"Connection to FRITZ!Box! lost\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Verbindung mit FRITZ!Box verloren\n"
+" (%s)\n"
+"neuer Versuch..."
+
+msgid "Could not parse FRITZ!Box Phonebook entry"
+msgstr "Konnte Eintrag in FRITZ!Box-Telefonbuch nicht lesen"
+
+msgid "Country"
+msgstr "Land"
+
+msgid "DECT phones registered"
+msgstr "Schnurlostelefone angemeldet"
+
+msgid "Debug"
+msgstr "Debug"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Delete"
+msgstr "Löschen"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Delete entry"
+msgstr "Eintrag löschen"
+
+msgid "Display FRITZ!box-Fon calls on screen"
+msgstr "Anzeige der Anrufe auf der FRITZ!Box Fon"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display all calls"
+msgstr "Alle Anrufe"
+
+msgid "Display connection infos"
+msgstr "Anzeige von Verbindungsinfos"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display incoming calls"
+msgstr "Eingehende Anrufe"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display missed calls"
+msgstr "Verpasste Anrufe"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display outgoing calls"
+msgstr "Abgehende Anrufe"
+
+#. TRANSLATORS: this is a window title.
+msgid "Do what?"
+msgstr "Aktion mit Nummer?"
+
+#, python-format
+msgid ""
+"Do you really want to delete entry for\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+msgstr ""
+"Soll der Eintrag\n"
+"\n"
+"%(name)s\n"
+"\n"
+"für %(number)s wirklich gelöscht werden?"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Edit"
+msgstr "Ändern"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Edit selected entry"
+msgstr "Eintrag bearbeiten"
+
+msgid "Enter Search Terms"
+msgstr "Suchbegriffe"
+
+msgid "Entry incomplete."
+msgstr "Eintrag unvollständig."
+
+msgid "Extension number to initiate call on"
+msgstr "Nebenstelle für Anrufe"
+
+#, python-format
+msgid "FRITZ!Box - Could not load calls: %s"
+msgstr "FRITZ!Box - Anrufe konnten nicht geladen werden: %s"
+
+#, python-format
+msgid "FRITZ!Box - Could not load phonebook: %s"
+msgstr "\"FRITZ!Box - Telefonbuch konnte nicht geladen werden: %s"
+
+#, python-format
+msgid "FRITZ!Box - Dialling failed: %s"
+msgstr "FRITZ!Box - Wählen fehlgeschlagen: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error getting blacklist: %s"
+msgstr "FRITZ!Box - Sperrliste konnte nicht geholt werden: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error getting status: %s"
+msgstr "FRITZ!Box - Status konnte nicht geholt werden: %s"
+
+msgid ""
+"FRITZ!Box - Error logging in\n"
+"\n"
+msgstr ""
+"FRITZ!Box - Fehler bei Anmeldung\n"
+"\n"
+
+#, python-format
+msgid "FRITZ!Box - Error logging in: %s"
+msgstr "FRITZ!Box - Fehler bei Login: %s"
+
+#, python-format
+msgid ""
+"FRITZ!Box - Error logging in: %s\n"
+"Disabling plugin."
+msgstr ""
+"FRITZ!Box - Fehler bei Login: %s\n"
+"Plugin wird abgeschaltet"
+
+#, python-format
+msgid "FRITZ!Box - Error logging out: %s"
+msgstr "FRITZ!Box - Fehler bei Logout: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error resetting: %s"
+msgstr "FRITZ!Box - Fehler bei Zurücksetzen: %s"
+
+#, python-format
+msgid "FRITZ!Box - Failed changing Mailbox: %s"
+msgstr "FRITZ!Box - Fehler bei Änderung des Anrufbeantworter-Status: %s"
+
+#, python-format
+msgid "FRITZ!Box - Failed changing WLAN: %s"
+msgstr "FRITZ!Box - Fehler bei Änderung des WLAN-Status: %s"
+
+msgid "FRITZ!Box FON address (Name or IP)"
+msgstr "FRITZ!Box FON Adresse (Name oder IP-Adresse)"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "FRITZ!Box Fon Status"
+msgstr "FRITZ!Box Fon Status"
+
+msgid "Filter also list of calls"
+msgstr "Filter auch auf Anrufliste anwenden"
+
+msgid "Flash"
+msgstr "Flash"
+
+#, python-format
+msgid ""
+"Found picture\n"
+"\n"
+"%s\n"
+"\n"
+"But did not load. Probably not PNG, 8-bit"
+msgstr ""
+"Anruferbild gefunden:\n"
+"\n"
+"%s\n"
+"\n"
+"Konnte aber nicht geladen werden.\n"
+"Womöglich nicht PNG, 8-bit?"
+
+msgid "France"
+msgstr "Frankreich"
+
+#. TRANSLATORS: this is a window title.
+msgid "FritzCall Setup"
+msgstr "FritzCall Einstellungen"
+
+msgid "Germany"
+msgstr "Deutschland"
+
+msgid "Getting calls from FRITZ!Box..."
+msgstr "Hole Liste der Anrufe von der FRITZ!Box..."
+
+msgid "Getting status from FRITZ!Box Fon..."
+msgstr "Hole Status von der FRITZ!Box..."
+
+msgid "IP Address:"
+msgstr "IP Adresse:"
+
+msgid "Ignore callers with no phone number"
+msgstr "Ignoriere Anrufe ohne Rufnummer"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Incoming"
+msgstr "Eingehend"
+
+#, python-format
+msgid ""
+"Incoming Call on %(date)s at %(time)s from\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"to: %(phone)s"
+msgstr ""
+"Eingehender Anruf am %(date)s um %(time)s von\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"an: %(phone)s"
+
+msgid "Incoming calls"
+msgstr "Eingehende Anrufe"
+
+msgid "Italy"
+msgstr "Italien"
+
+msgid "Last 10 calls:\n"
+msgstr "Die letzten zehn Anrufe im Standby:\n"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Lookup"
+msgstr "Suchen"
+
+msgid "MSN to show (separated by ,)"
+msgstr "anzuzeigende MSNs (getrennt durch ,)"
+
+msgid "Mailbox"
+msgstr "Anrufbeantworter"
+
+msgid "Media directory"
+msgstr "Media Verzeichnis"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Missed"
+msgstr "Verpasst"
+
+msgid "Missed calls"
+msgstr "Verpasste Anrufe"
+
+msgid "Mute on call"
+msgstr "Ton aus bei angezeigten Anrufen"
+
+msgid "Name"
+msgstr "Name"
+
+msgid "Network mount"
+msgstr "Netzwerk"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "New"
+msgstr "Neu"
+
+msgid "No DECT phone registered"
+msgstr "Kein Schnurlostelefon angemeldet"
+
+msgid "No call redirection active"
+msgstr "Keine Rufumleitung aktiv"
+
+msgid "No entry selected"
+msgstr "Kein Eintrag ausgewählt"
+
+msgid "No mailbox active"
+msgstr "Kein Anrufbeantworter aktiv"
+
+msgid "No phonebook"
+msgstr "Kein Telefonbuch"
+
+msgid "No result from LDIF"
+msgstr "Kein Ergebnis von LDIF"
+
+msgid "No result from Outlook export"
+msgstr "Kein Ergebnis von Outlook-Export"
+
+msgid "No result from reverse lookup"
+msgstr "Kein Ergebnis von Rückwärtssuche"
+
+msgid "Number"
+msgstr "Nummer"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "OK"
+msgstr "OK"
+
+msgid "One DECT phone registered"
+msgstr "Ein Schnurlostelefon angemeldet"
+
+msgid "One call redirection active"
+msgstr "Eine Rufumleitung aktiv"
+
+msgid "One mailbox active"
+msgstr "Ein Anrufbeantworter aktiv"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Outgoing"
+msgstr "Abgehend"
+
+#, python-format
+msgid ""
+"Outgoing Call on %(date)s at %(time)s to\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"from: %(phone)s"
+msgstr ""
+"Abgehender Anruf am %(date)s um %(time)s an\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"von: %(phone)s"
+
+msgid "Outgoing calls"
+msgstr "Abgehende Anrufe"
+
+msgid "Password Accessing FRITZ!Box"
+msgstr "Passwort der FRITZ!Box"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phone calls"
+msgstr "Telefonanrufe"
+
+msgid "PhoneBook Location"
+msgstr "Speicherort des Telefonbuchs"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phonebook"
+msgstr "Telefonbuch"
+
+msgid "Plugin not active"
+msgstr "Plugin ist nicht aktiv"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Quit"
+msgstr "Beenden"
+
+msgid "Read PhoneBook from FRITZ!Box"
+msgstr "Telefonbuch der FRITZ!Box auslesen"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Refresh status"
+msgstr "Status neu holen"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Reset"
+msgstr "Reset"
+
+msgid "Reverse Lookup Caller ID (select country below)"
+msgstr "Rückwärtssuche (bitte Land auswählen)"
+
+msgid "Reverse searching..."
+msgstr "Rückwärtssuche..."
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Save"
+msgstr "Speichern"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Search"
+msgstr "Suche"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Search (case insensitive)"
+msgstr "Suche Zeichenfolge (groß/klein egal)"
+
+msgid "Search phonebook"
+msgstr "Telefonbuchsuche"
+
+msgid "Searching in LDIF..."
+msgstr "Suche in LDIF..."
+
+msgid "Searching in Outlook export..."
+msgstr "Suche in Outlook-Export..."
+
+msgid "Shortcut"
+msgstr "Kurzwahl"
+
+msgid "Show Outgoing Calls"
+msgstr "Zeige abgehende Anrufe an"
+
+msgid "Show after Standby"
+msgstr "Anzeige nach Standby"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Show details of entry"
+msgstr "Details des Eintrags anzeigen"
+
+msgid "Show only calls for specific MSN"
+msgstr "Zeige nur Anrufe bestimmter Nummern"
+
+msgid "Software fax active"
+msgstr "Software Fax aktiv"
+
+msgid "Status not available"
+msgstr "Status nicht verfügbar"
+
+msgid "Strip Leading 0"
+msgstr "Führende 0 entfernen"
+
+msgid "Switzerland"
+msgstr "Schweiz"
+
+msgid "The Netherlands"
+msgstr "Niederlande"
+
+msgid "Timeout for Call Notifications (seconds)"
+msgstr "Anzeigedauer in Sekunden"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 1. mailbox"
+msgstr "Toggle 1. Anrufbeantworter"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 2. mailbox"
+msgstr "Toggle 2. Anrufbeantworter"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 3. mailbox"
+msgstr "Toggle 3. Anrufbeantworter"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 4. mailbox"
+msgstr "Toggle 4. Anrufbeantworter"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 5. mailbox"
+msgstr "Toggle 5. Anrufbeantworter"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Toggle Mailbox"
+msgstr "Toggle AB"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle WLAN"
+msgstr "Toggle WLAN"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle all mailboxes"
+msgstr "Toggle AB"
+
+msgid "UNKNOWN"
+msgstr "UNBEKANNT"
+
+msgid "USB Device"
+msgstr "USB Gerät"
+
+msgid "Use internal PhoneBook"
+msgstr "Benutze internes Telefonbuch"
+
+msgid "Vanity"
+msgstr "Vanity"
+
+msgid "You need to enable the monitoring on your FRITZ!Box by dialing #96*5*!"
+msgstr ""
+"Monitoring auf der FRITZ!Box muss durch Wählen von #96*5* eingeschaltet "
+"werden!"
+
+msgid ""
+"You need to set the password of the FRITZ!Box\n"
+"in the configuration dialog to display calls\n"
+"\n"
+"It could be a communication issue, just try again."
+msgstr ""
+"In der Konfiguration muss das Passwort für\n"
+"die FRITZ!Box gesetzt sein.\n"
+"\n"
+"Es könnte eine Kommunikationsproblem mit der FRITZ!Box sein.\n"
+"Versuchen Sie es nochmal."
+
+msgid "call redirections active"
+msgstr "Rufumleitungen aktiv"
+
+msgid "devices active"
+msgstr "WLAN-Stationen aktiv"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display calls"
+msgstr "Alle Anrufe"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display phonebook"
+msgstr "Telefonbuch"
+
+msgid "done"
+msgstr "fertig"
+
+msgid "done, using last list"
+msgstr "fertig, benutze letzte Liste"
+
+msgid "encrypted"
+msgstr "verschlüsselt"
+
+msgid "finishing"
+msgstr "Fertigstellung"
+
+msgid "home"
+msgstr "Privat"
+
+msgid "login"
+msgstr "Login"
+
+msgid "login ok"
+msgstr "Login OK"
+
+msgid "login verification"
+msgstr "Login Verifikation"
+
+msgid "mailboxes active"
+msgstr "Anrufbeantworter aktiv"
+
+msgid "mobile"
+msgstr "Handy"
+
+msgid "no calls"
+msgstr "keine Anrufe"
+
+msgid "no device active"
+msgstr "keine WLAN-Station aktiv"
+
+msgid "not encrypted"
+msgstr "nicht verschlüsselt"
+
+msgid "number suppressed"
+msgstr "Nummer unterdrückt"
+
+msgid "one device active"
+msgstr "eine WLAN-Station aktiv"
+
+msgid "preparing"
+msgstr "Vorbereitung"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "quit"
+msgstr "Beenden"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "save and quit"
+msgstr "Sichern und Beenden"
+
+msgid "show as list"
+msgstr "Liste der Anrufe"
+
+msgid "show each call"
+msgstr "Anzeige der einzelnen Anrufe"
+
+msgid "show nothing"
+msgstr "keine Anzeige"
+
+msgid "work"
+msgstr "Büro"
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/es.po
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/es.po	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/es.po	(revision 12232)
@@ -0,0 +1,736 @@
+# Spanish translations for enigma package.
+# Copyright (C) 2009 THE enigma'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the enigma package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: enigma 2-plugins\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-02-13 17:00+0100\n"
+"PO-Revision-Date: 2009-06-04 20:22+0200\n"
+"Last-Translator: José Juan Zapater <josej@zapater.fdns.net>\n"
+"Language-Team: none\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "About FritzCall"
+msgstr "Sobre FritzCall"
+
+#. TRANSLATORS: keep it short, this is a help text
+#. TRANSLATORS: this is a window title.
+msgid "Add entry to phonebook"
+msgstr "Añadir entrada a la agenda"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "All"
+msgstr "Todos"
+
+msgid "All calls"
+msgstr "Todas llamadas"
+
+msgid "Append shortcut number"
+msgstr "Añadir número corto"
+
+msgid "Append type of number"
+msgstr "Añadir tipo de número"
+
+msgid "Append vanity name"
+msgstr "Añadir nombre de vanidad"
+
+msgid "Areacode to add to calls without one (if necessary)"
+msgstr ""
+
+msgid "Austria"
+msgstr "Austria"
+
+msgid "Automatically add new Caller to PhoneBook"
+msgstr "Añadir el Llamante automáticamente a la Agenda"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Call"
+msgstr "Llamar"
+
+msgid "Call monitoring"
+msgstr "Monitorizar llamada"
+
+msgid "Call redirection"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgid "Cannot get calls from FRITZ!Box"
+msgstr ""
+
+msgid "Cannot get infos from FRITZ!Box"
+msgstr ""
+
+msgid "Compact Flash"
+msgstr ""
+
+msgid "Connected since"
+msgstr "Conectado desde"
+
+msgid "Connected to FRITZ!Box!"
+msgstr "Conectado a FRITZ!Box!"
+
+#, python-format
+msgid ""
+"Connecting to FRITZ!Box failed\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Conectando a FRITZ!Box\n"
+"(%s)\n"
+"reintentando..."
+
+msgid "Connecting to FRITZ!Box..."
+msgstr "Conectando a FRITZ!Box..."
+
+#, python-format
+msgid ""
+"Connection to FRITZ!Box! lost\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Se perdió la conexión a FRITZ!Box!\n"
+"(%s)\n"
+"reintentando..."
+
+msgid "Could not parse FRITZ!Box Phonebook entry"
+msgstr "No puedo analizar las entradas de la agenda de FRITZ!Box"
+
+msgid "Country"
+msgstr "País"
+
+msgid "DECT phones registered"
+msgstr "Teléfonos DECT registrados"
+
+msgid "Debug"
+msgstr "Testear"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Delete"
+msgstr "Borrar"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Delete entry"
+msgstr "Borrar entrada"
+
+msgid "Display FRITZ!box-Fon calls on screen"
+msgstr "Visualizar llamadas FRITZ!Box-Fon en la pantalla"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display all calls"
+msgstr "Visualizar todas llamadas"
+
+msgid "Display connection infos"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display incoming calls"
+msgstr "Visualizar llamadas entrantes"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display missed calls"
+msgstr "Visualizar llamadas perdidas"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display outgoing calls"
+msgstr "Visualizar llamadas salientes"
+
+#. TRANSLATORS: this is a window title.
+msgid "Do what?"
+msgstr "¿Qué hago?"
+
+#, python-format
+msgid ""
+"Do you really want to delete entry for\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+msgstr ""
+"¿Quiere borrar la entrada para\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Edit"
+msgstr "Editar"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Edit selected entry"
+msgstr "Editar entrada seleccionada"
+
+msgid "Enter Search Terms"
+msgstr "Introduzca Términos de Búsqueda"
+
+msgid "Entry incomplete."
+msgstr "Entrada incompleta."
+
+msgid "Extension number to initiate call on"
+msgstr "Número de extensión para iniciar la llamada"
+
+#, python-format
+msgid "FRITZ!Box - Could not load calls: %s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "FRITZ!Box - Could not load phonebook: %s"
+msgstr "No puedo cargar la agenda desde FRITZ!Box - Error: %s"
+
+#, python-format
+msgid "FRITZ!Box - Dialling failed: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error getting blacklist: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error getting status: %s"
+msgstr ""
+
+msgid ""
+"FRITZ!Box - Error logging in\n"
+"\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "FRITZ!Box - Error logging in: %s"
+msgstr "Falló la identificación a FRITZ!Box - Error: %s"
+
+#, python-format
+msgid ""
+"FRITZ!Box - Error logging in: %s\n"
+"Disabling plugin."
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error logging out: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error resetting: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Failed changing Mailbox: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Failed changing WLAN: %s"
+msgstr ""
+
+msgid "FRITZ!Box FON address (Name or IP)"
+msgstr "Dirección FRITZ!Box FON (Nombre o IP)"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "FRITZ!Box Fon Status"
+msgstr "Estado de Fon FRITZ!Box"
+
+msgid "Filter also list of calls"
+msgstr ""
+
+msgid "Flash"
+msgstr "Flash"
+
+#, python-format
+msgid ""
+"Found picture\n"
+"\n"
+"%s\n"
+"\n"
+"But did not load. Probably not PNG, 8-bit"
+msgstr ""
+
+msgid "France"
+msgstr "Francia"
+
+#. TRANSLATORS: this is a window title.
+msgid "FritzCall Setup"
+msgstr "Configuración FritzCall"
+
+msgid "Germany"
+msgstr "Alemania"
+
+msgid "Getting calls from FRITZ!Box..."
+msgstr "Consiguiendo llamadas desde FRITZ!Box..."
+
+msgid "Getting status from FRITZ!Box Fon..."
+msgstr "Consiguiendo estado desde Fon FRITZ!Box..."
+
+msgid "IP Address:"
+msgstr "Dirección IP:"
+
+msgid "Ignore callers with no phone number"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Incoming"
+msgstr "Entrada"
+
+#, python-format
+msgid ""
+"Incoming Call on %(date)s at %(time)s from\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"to: %(phone)s"
+msgstr ""
+
+msgid "Incoming calls"
+msgstr "Llamadas entrantes"
+
+msgid "Italy"
+msgstr "Italia"
+
+msgid "Last 10 calls:\n"
+msgstr "Últimas 10 llamadas:\n"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Lookup"
+msgstr "Buscar"
+
+msgid "MSN to show (separated by ,)"
+msgstr "MSN a mostrar (separado por ,)"
+
+msgid "Mailbox"
+msgstr "Carpeta de correo"
+
+msgid "Media directory"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Missed"
+msgstr "Perdidas"
+
+msgid "Missed calls"
+msgstr "Llamadas perdidas"
+
+msgid "Mute on call"
+msgstr "Silencio en llamada"
+
+msgid "Name"
+msgstr "Nombre"
+
+msgid "Network mount"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "New"
+msgstr "Nuevo"
+
+msgid "No DECT phone registered"
+msgstr "No hay teléfono DECT registrado"
+
+#, fuzzy
+msgid "No call redirection active"
+msgstr "No cuenta de correo activa"
+
+msgid "No entry selected"
+msgstr "No hay entrada seleccionada"
+
+msgid "No mailbox active"
+msgstr "No cuenta de correo activa"
+
+msgid "No phonebook"
+msgstr ""
+
+msgid "No result from LDIF"
+msgstr "No hay resultado desde LDIF"
+
+msgid "No result from Outlook export"
+msgstr "No hay resultado desde la exportación de Outlook"
+
+msgid "No result from reverse lookup"
+msgstr "No hay resultado de resolución inversa"
+
+msgid "Number"
+msgstr "Número"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "OK"
+msgstr "OK"
+
+msgid "One DECT phone registered"
+msgstr "Un teléfono DECT registrado"
+
+#, fuzzy
+msgid "One call redirection active"
+msgstr "Una cuenta de correo activa"
+
+msgid "One mailbox active"
+msgstr "Una cuenta de correo activa"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Outgoing"
+msgstr "Salida"
+
+#, python-format
+msgid ""
+"Outgoing Call on %(date)s at %(time)s to\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"from: %(phone)s"
+msgstr ""
+
+msgid "Outgoing calls"
+msgstr "Llamadas salientes"
+
+msgid "Password Accessing FRITZ!Box"
+msgstr "Contraseña accediendo a FRITZ!Box"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phone calls"
+msgstr "Llamadas de teléfono"
+
+msgid "PhoneBook Location"
+msgstr "Ubicación de la Agenda"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phonebook"
+msgstr "Agenda"
+
+msgid "Plugin not active"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Quit"
+msgstr "Salir"
+
+msgid "Read PhoneBook from FRITZ!Box"
+msgstr "Leer Agenda desde FRITZ!Box"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Refresh status"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Reset"
+msgstr "Resetear"
+
+msgid "Reverse Lookup Caller ID (select country below)"
+msgstr "Búsqueda inversa del ID llamante (seleccionar país abajo)"
+
+msgid "Reverse searching..."
+msgstr "Búsqueda inversa..."
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Save"
+msgstr "Guardar"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Search"
+msgstr "Buscar"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Search (case insensitive)"
+msgstr "Buscar (may/min indistinto)"
+
+msgid "Search phonebook"
+msgstr "Buscar agenda"
+
+msgid "Searching in LDIF..."
+msgstr "Buscando en LDIF..."
+
+msgid "Searching in Outlook export..."
+msgstr "Buscando en la exportación de Outlook..."
+
+msgid "Shortcut"
+msgstr "Acceso rápido"
+
+msgid "Show Outgoing Calls"
+msgstr "Mostrar Llamadas Salientes"
+
+msgid "Show after Standby"
+msgstr "Mostrar después del inicio"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Show details of entry"
+msgstr "Mostrar detalles de la entrada"
+
+msgid "Show only calls for specific MSN"
+msgstr ""
+
+#, fuzzy
+msgid "Software fax active"
+msgstr "No cuenta de correo activa"
+
+msgid "Status not available"
+msgstr ""
+
+msgid "Strip Leading 0"
+msgstr "Quitar el 0 al inicio"
+
+msgid "Switzerland"
+msgstr "Suiza"
+
+msgid "The Netherlands"
+msgstr "Holanda"
+
+msgid "Timeout for Call Notifications (seconds)"
+msgstr "Tiempo cumplido para Notificaciones de Llamadas (segundos)"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 1. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 2. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 3. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 4. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 5. mailbox"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Toggle Mailbox"
+msgstr "Marcar Cuenta de Correo"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle WLAN"
+msgstr "Marcar WLAN"
+
+#. TRANSLATORS: keep it short, this is a help text
+#, fuzzy
+msgid "Toggle all mailboxes"
+msgstr "Marcar Cuenta de Correo"
+
+msgid "UNKNOWN"
+msgstr "DESCONOCIDO"
+
+#, fuzzy
+msgid "USB Device"
+msgstr "Lápiz USB"
+
+msgid "Use internal PhoneBook"
+msgstr "Usar Agenda interna"
+
+msgid "Vanity"
+msgstr "Vanidad"
+
+msgid "You need to enable the monitoring on your FRITZ!Box by dialing #96*5*!"
+msgstr "¡Necesitas activar la monitorización en tu FRITZ!Box marcando #96*5*!"
+
+msgid ""
+"You need to set the password of the FRITZ!Box\n"
+"in the configuration dialog to display calls\n"
+"\n"
+"It could be a communication issue, just try again."
+msgstr ""
+"Necesita poner la contraseña del FRITZ!Box\n"
+"en el diálogo de configuración para visualizar las llamadas\n"
+"\n"
+"Puede hacer un problema de comunicación, sólo reintente otra vez."
+
+msgid "call redirections active"
+msgstr ""
+
+#, fuzzy
+msgid "devices active"
+msgstr "cuentas activas"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display calls"
+msgstr "visualizar llamadas"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display phonebook"
+msgstr "visualizar agenda"
+
+msgid "done"
+msgstr "hecho"
+
+msgid "done, using last list"
+msgstr "hecho, usando la última lista"
+
+msgid "encrypted"
+msgstr "encriptado"
+
+msgid "finishing"
+msgstr "terminando"
+
+msgid "home"
+msgstr "casa"
+
+msgid "login"
+msgstr "identificar"
+
+msgid "login ok"
+msgstr "identificación ok"
+
+msgid "login verification"
+msgstr "verificación de entrada"
+
+msgid "mailboxes active"
+msgstr "cuentas activas"
+
+msgid "mobile"
+msgstr "móvil"
+
+msgid "no calls"
+msgstr ""
+
+#, fuzzy
+msgid "no device active"
+msgstr "Una cuenta de correo activa"
+
+msgid "not encrypted"
+msgstr "no encriptado"
+
+msgid "number suppressed"
+msgstr ""
+
+#, fuzzy
+msgid "one device active"
+msgstr "Una cuenta de correo activa"
+
+msgid "preparing"
+msgstr "preparando"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "quit"
+msgstr "salir"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "save and quit"
+msgstr "guardar y salir"
+
+msgid "show as list"
+msgstr "mostrar como lista"
+
+msgid "show each call"
+msgstr "mostrar cada llamada"
+
+msgid "show nothing"
+msgstr "no mostrar nada"
+
+msgid "work"
+msgstr "trabajo"
+
+#~ msgid "Areacode to add to Outgoing Calls (if necessary)"
+#~ msgstr "Añadir código de área a las llamadas salientes (si es necesario)"
+
+#~ msgid "CF Drive"
+#~ msgstr "Unidad CF"
+
+#~ msgid ""
+#~ "Corrupt phonebook entry\n"
+#~ "for number %d\n"
+#~ "Deleting."
+#~ msgstr ""
+#~ "Posición en la agenda corrupta\n"
+#~ "para el número %d\n"
+#~ "Borrando."
+
+#~ msgid "Could not load calls from FRITZ!Box - Error: %s"
+#~ msgstr "No puedo cargar llamadas desde FRITZ!Box - Error: %s"
+
+#~ msgid "Dialling failed - Error: %s"
+#~ msgstr "Falló la llamada - Error: %s"
+
+#~ msgid ""
+#~ "Do you really want to overwrite entry for %(number)s\n"
+#~ "\n"
+#~ "%(name)s\n"
+#~ "\n"
+#~ "with\n"
+#~ "\n"
+#~ "%(newname)s?"
+#~ msgstr ""
+#~ "¿Quiere sobreescribir la entrada para %(number)s\n"
+#~ "\n"
+#~ "%(name)s\n"
+#~ "\n"
+#~ "con\n"
+#~ "\n"
+#~ "%(newname)s?"
+
+#, fuzzy
+#~ msgid "FRITZ!Box Fon has no mailbox"
+#~ msgstr "Estado de Fon FRITZ!Box"
+
+#~ msgid "FRITZ!Box Login failed! - Wrong Password!"
+#~ msgstr "Falló la identificación FRITZ!Box - Contraseña errónea!"
+
+#, fuzzy
+#~ msgid "FRITZ!Box Login failed: "
+#~ msgstr "Falló la identificación a FRITZ!Box - Error: %s"
+
+#~ msgid "Full screen display"
+#~ msgstr "Visualización a pantalla completa"
+
+#~ msgid "Harddisk"
+#~ msgstr "Disco duro"
+
+#~ msgid ""
+#~ "Incoming Call on %(date)s from\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "to: %(phone)s"
+#~ msgstr ""
+#~ "Llamada Entrante en %(date)s desde\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "a: %(phone)s"
+
+#~ msgid ""
+#~ "Outgoing Call on %(date)s to\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "from: %(phone)s"
+#~ msgstr ""
+#~ "Llamadas saliente en %(date)s a\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "desde: %(phone)s"
+
+#~ msgid "Show Calls for specific MSN"
+#~ msgstr "Mostrar Llamadas para un específico MSN"
+
+#, fuzzy
+#~ msgid "Toggle "
+#~ msgstr "Marcar WLAN"
+
+#~ msgid "WLAN off"
+#~ msgstr "WLAN apagado"
+
+#~ msgid "WLAN on"
+#~ msgstr "WLAN encendido"
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/it.po
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/it.po	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/it.po	(revision 12232)
@@ -0,0 +1,656 @@
+# Signed-off-by: Dario Croci <spaeleus@croci.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: enigma2  - FRITZ!Box\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-02-13 17:00+0100\n"
+"PO-Revision-Date: 2011-01-22 18:57+0100\n"
+"Last-Translator: Spaeleus <spaeleus@croci.org>\n"
+"Language-Team: www.linsat.net <spaeleus@croci.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Italian\n"
+"X-Poedit-Country: ITALY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-Basepath: /media/TREKSTOR/git/enigma2-plugins/fritzcall\n"
+"X-Poedit-SearchPath-0: /media/TREKSTOR/git/enigma2-plugins/fritzcall\n"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "About FritzCall"
+msgstr "Info su FritzCall"
+
+#. TRANSLATORS: keep it short, this is a help text
+#. TRANSLATORS: this is a window title.
+msgid "Add entry to phonebook"
+msgstr "Aggiungere voce in rubrica"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "All"
+msgstr "Tutte"
+
+msgid "All calls"
+msgstr "Tutte le chiamate"
+
+msgid "Append shortcut number"
+msgstr "Aggiungere numero breve"
+
+msgid "Append type of number"
+msgstr "Agg. il tipo di numero (casa,cell.,uff.)"
+
+msgid "Append vanity name"
+msgstr "Aggiungere nome \"Vanity\""
+
+msgid "Areacode to add to calls without one (if necessary)"
+msgstr "Pref. locale per le chiamate che ne sono prive (se necessario)"
+
+msgid "Austria"
+msgstr "Austria"
+
+msgid "Automatically add new Caller to PhoneBook"
+msgstr "Ins. autom. nuovo chiamante in rubrica"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Call"
+msgstr "Chiam."
+
+msgid "Call monitoring"
+msgstr "Monitoraggio chiamate"
+
+msgid "Call redirection"
+msgstr "Deviazione chiamate"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Cancel"
+msgstr "Annull."
+
+msgid "Cannot get calls from FRITZ!Box"
+msgstr "Recupero chiamate dalla FRITZ!Box impossibile"
+
+msgid "Cannot get infos from FRITZ!Box"
+msgstr "Recupero informazioni dalla FRITZ!Box impossibile"
+
+msgid "Compact Flash"
+msgstr "work"
+
+msgid "Connected since"
+msgstr "Connesso da"
+
+msgid "Connected to FRITZ!Box!"
+msgstr "Connesso alla FRITZ!Box!"
+
+#, python-format
+msgid ""
+"Connecting to FRITZ!Box failed\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Connessione alla FRITZ!Box fallita!\n"
+"(%s)\n"
+"Nuovo tentativo in corso..."
+
+msgid "Connecting to FRITZ!Box..."
+msgstr "Connessione alla FRITZ!Box in corso..."
+
+#, python-format
+msgid ""
+"Connection to FRITZ!Box! lost\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Connessione alla FRITZ!Box persa!\n"
+"(%s)\n"
+"Nuovo tentativo in corso..."
+
+msgid "Could not parse FRITZ!Box Phonebook entry"
+msgstr "Impossibile analizzare la voce nella Rubrica della FRITZ!Box!"
+
+msgid "Country"
+msgstr "Nazione"
+
+msgid "DECT phones registered"
+msgstr "Telefoni DECT registrati"
+
+msgid "Debug"
+msgstr "Debug"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Delete"
+msgstr "Cancell."
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Delete entry"
+msgstr "Cancellare voce"
+
+msgid "Display FRITZ!box-Fon calls on screen"
+msgstr "Visualizzare chiamate telef. sulla TV"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display all calls"
+msgstr "Tutte le chiamate"
+
+msgid "Display connection infos"
+msgstr "Mostrare informazioni connessione"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display incoming calls"
+msgstr "Chiamate in ingresso"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display missed calls"
+msgstr "Chiamate perse"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display outgoing calls"
+msgstr "Chiamate in uscita"
+
+#. TRANSLATORS: this is a window title.
+msgid "Do what?"
+msgstr "Che fare?"
+
+#, python-format
+msgid ""
+"Do you really want to delete entry for\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+msgstr ""
+"Cancellare la voce\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Edit"
+msgstr "Mod."
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Edit selected entry"
+msgstr "Mod. voce selezionata"
+
+msgid "Enter Search Terms"
+msgstr "Inserire criteri di ricerca"
+
+msgid "Entry incomplete."
+msgstr "Voce incompleta."
+
+msgid "Extension number to initiate call on"
+msgstr "Numero apparecchio su cui indirizzare la chiamata"
+
+#, python-format
+msgid "FRITZ!Box - Could not load calls: %s"
+msgstr "FRITZ!Box - Impossibile caricare le chiamate: %s"
+
+#, python-format
+msgid "FRITZ!Box - Could not load phonebook: %s"
+msgstr "FRITZ!Box - Impossibile caricare la rubrica: %s"
+
+#, python-format
+msgid "FRITZ!Box - Dialling failed: %s"
+msgstr "FRITZ!Box - Composizione fallita: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error getting blacklist: %s"
+msgstr "FRITZ!Box - Errore in recupero blacklist: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error getting status: %s"
+msgstr "FRITZ!Box - Errore in recupero stato: %s"
+
+msgid ""
+"FRITZ!Box - Error logging in\n"
+"\n"
+msgstr ""
+"FRITZ!Box - Errore log in\n"
+"\n"
+
+#, python-format
+msgid "FRITZ!Box - Error logging in: %s"
+msgstr "FRITZ!Box - Errore in esecuzione log: %s"
+
+#, python-format
+msgid ""
+"FRITZ!Box - Error logging in: %s\n"
+"Disabling plugin."
+msgstr ""
+"FRITZ!Box - Errore in esecuzione log: %s\n"
+"Il plugin verrà disabilitato."
+
+#, python-format
+msgid "FRITZ!Box - Error logging out: %s"
+msgstr "FRITZ!Box - Errore in esecuzione log: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error resetting: %s"
+msgstr "FRITZ!Box - Errore in reset: %s"
+
+#, python-format
+msgid "FRITZ!Box - Failed changing Mailbox: %s"
+msgstr "FRITZ!Box - Cambiamento casella di posta fallito: %s"
+
+#, python-format
+msgid "FRITZ!Box - Failed changing WLAN: %s"
+msgstr "FRITZ!Box - Cambiamento WLAN fallito: %s"
+
+msgid "FRITZ!Box FON address (Name or IP)"
+msgstr "FRITZ!Box FON - Indirizzo (nome o IP)"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "FRITZ!Box Fon Status"
+msgstr "FRITZ!Box Fon - Stato"
+
+msgid "Filter also list of calls"
+msgstr "Filtrare anche gli elenchi chiamate"
+
+msgid "Flash"
+msgstr "Flash"
+
+#, python-format
+msgid ""
+"Found picture\n"
+"\n"
+"%s\n"
+"\n"
+"But did not load. Probably not PNG, 8-bit"
+msgstr ""
+"Trovata immagine\n"
+"\n"
+"%s\n"
+"\n"
+"Impossibile caricarla. Il formato deve esserecpng, 8 bit."
+
+msgid "France"
+msgstr "Francia"
+
+#. TRANSLATORS: this is a window title.
+msgid "FritzCall Setup"
+msgstr "Configurazione FritzCall"
+
+msgid "Germany"
+msgstr "Germania"
+
+msgid "Getting calls from FRITZ!Box..."
+msgstr "Recupero chiamate dalla FRITZ!Box in corso"
+
+msgid "Getting status from FRITZ!Box Fon..."
+msgstr "Recupero stato dalla FRITZ!Box Fon in corso..."
+
+msgid "IP Address:"
+msgstr "Indirizzo IP:"
+
+msgid "Ignore callers with no phone number"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Incoming"
+msgstr "In Entr."
+
+#, python-format
+msgid ""
+"Incoming Call on %(date)s at %(time)s from\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"to: %(phone)s"
+msgstr ""
+"Chiamata in arrivo il %(date)s alle %(time)s da\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"a: %(phone)s"
+
+msgid "Incoming calls"
+msgstr "Chiamate in entrata"
+
+msgid "Italy"
+msgstr "Italia"
+
+msgid "Last 10 calls:\n"
+msgstr "Ultime 10 chiamate:\n"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Lookup"
+msgstr "Lookup"
+
+msgid "MSN to show (separated by ,)"
+msgstr "MSN da mostrare (separare con ,)"
+
+msgid "Mailbox"
+msgstr "Casella di posta"
+
+msgid "Media directory"
+msgstr "Directory media"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Missed"
+msgstr "Ch. perse"
+
+msgid "Missed calls"
+msgstr "Chiamate perse"
+
+msgid "Mute on call"
+msgstr "Mute su Chiamata"
+
+msgid "Name"
+msgstr "Nome"
+
+msgid "Network mount"
+msgstr "Mount di rete"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "New"
+msgstr "Nuovo"
+
+msgid "No DECT phone registered"
+msgstr "Nessun telefono DECT registrato"
+
+msgid "No call redirection active"
+msgstr "Nessuna deviazione chiamate attiva"
+
+msgid "No entry selected"
+msgstr "Nessuna voce selezionata"
+
+msgid "No mailbox active"
+msgstr "Nessuna casella di posta attiva"
+
+msgid "No phonebook"
+msgstr "Nessuna rubrica"
+
+msgid "No result from LDIF"
+msgstr "Ricerca in LDIF: nessun risultato!"
+
+msgid "No result from Outlook export"
+msgstr "Ricerca in Outlook  export: nessun risultato!"
+
+msgid "No result from reverse lookup"
+msgstr "Ricerca identificativo chiamante: nessun risultato!"
+
+msgid "Number"
+msgstr "Numero"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "OK"
+msgstr "Ok"
+
+msgid "One DECT phone registered"
+msgstr "Un telefono DECT registrato"
+
+msgid "One call redirection active"
+msgstr "Una deviazione chiamate attiva"
+
+msgid "One mailbox active"
+msgstr "Una casella di posta attiva"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Outgoing"
+msgstr "In uscita"
+
+#, python-format
+msgid ""
+"Outgoing Call on %(date)s at %(time)s to\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"from: %(phone)s"
+msgstr ""
+"Chiamata in uscita il %(date)s alle %(time)s a\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"da: %(phone)s"
+
+msgid "Outgoing calls"
+msgstr "Chiamate in uscita"
+
+msgid "Password Accessing FRITZ!Box"
+msgstr "Password di accesso alla FRITZ!Box"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phone calls"
+msgstr "Ch. telef."
+
+msgid "PhoneBook Location"
+msgstr "Posizione rubrica"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phonebook"
+msgstr "Rubrica"
+
+msgid "Plugin not active"
+msgstr "Plugin non attivo"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Quit"
+msgstr "Uscire"
+
+msgid "Read PhoneBook from FRITZ!Box"
+msgstr "Caricare la rubrica dalla FRITZ!Box"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Refresh status"
+msgstr "Aggiornare lo stato"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Reset"
+msgstr "Reset"
+
+msgid "Reverse Lookup Caller ID (select country below)"
+msgstr "Identificativo chiamante (selezionare il Paese!)"
+
+msgid "Reverse searching..."
+msgstr "Ricerca identificativo chiamante..."
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Save"
+msgstr "Salvare"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Search"
+msgstr "Ricerca"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Search (case insensitive)"
+msgstr "Ricerca (non distingue Maiusc-minusc)"
+
+msgid "Search phonebook"
+msgstr "Ricerca su rubrica"
+
+msgid "Searching in LDIF..."
+msgstr "Ricerca in LDIF..."
+
+msgid "Searching in Outlook export..."
+msgstr "Ricerca in Outlook  export..."
+
+msgid "Shortcut"
+msgstr "Numero breve"
+
+msgid "Show Outgoing Calls"
+msgstr "Mostrare le chiamate in uscita"
+
+msgid "Show after Standby"
+msgstr "Mostrare chiamate dopo lo standby"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Show details of entry"
+msgstr "Mostrare dettagli voce"
+
+msgid "Show only calls for specific MSN"
+msgstr "Mostrare solo le chiamate per MSN specifico"
+
+msgid "Software fax active"
+msgstr "Fax software attivo"
+
+msgid "Status not available"
+msgstr "Stato non disponibile"
+
+msgid "Strip Leading 0"
+msgstr "Sopprimere \"0\" iniziali"
+
+msgid "Switzerland"
+msgstr "Svizzera"
+
+msgid "The Netherlands"
+msgstr "Olanda"
+
+msgid "Timeout for Call Notifications (seconds)"
+msgstr "Ritardo notifica chiamate (secondi)"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 1. mailbox"
+msgstr "Comm. casella 1."
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 2. mailbox"
+msgstr "Comm. casella 2."
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 3. mailbox"
+msgstr "Comm. casella 3."
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 4. mailbox"
+msgstr "Comm. casella 4."
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 5. mailbox"
+msgstr "Comm. casella 5."
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Toggle Mailbox"
+msgstr "Comm. casella"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle WLAN"
+msgstr "Commutare WLAN"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle all mailboxes"
+msgstr "Comm. tutte le caselle"
+
+msgid "UNKNOWN"
+msgstr "SCONOSCIUTO"
+
+msgid "USB Device"
+msgstr "Dispositivo USB"
+
+msgid "Use internal PhoneBook"
+msgstr "Usare la rubrica interna"
+
+msgid "Vanity"
+msgstr "\"Vanity\""
+
+msgid "You need to enable the monitoring on your FRITZ!Box by dialing #96*5*!"
+msgstr "Per abilitare il monitoraggio sulla FRITZ!Box comporre #96*5*!"
+
+msgid ""
+"You need to set the password of the FRITZ!Box\n"
+"in the configuration dialog to display calls\n"
+"\n"
+"It could be a communication issue, just try again."
+msgstr ""
+"E' necessario impostare la password della FRITZ!Box\n"
+"nel menu configurazione per mostrare le chiamate.\n"
+"\n"
+"Potrebbe trattarsi di un problema di comunicazione, riprovare."
+
+msgid "call redirections active"
+msgstr "deviazione chiamate attiva"
+
+msgid "devices active"
+msgstr "Dispositivi attivi"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display calls"
+msgstr "Tutte le chiamate"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display phonebook"
+msgstr "Mostrare rubrica"
+
+msgid "done"
+msgstr "Fatto"
+
+msgid "done, using last list"
+msgstr "Fatto, sarà usata l'ultimo elenco"
+
+msgid "encrypted"
+msgstr "codificato"
+
+msgid "finishing"
+msgstr "Quasi terminato..."
+
+msgid "home"
+msgstr "Casa"
+
+msgid "login"
+msgstr "Login"
+
+msgid "login ok"
+msgstr "Login Ok"
+
+msgid "login verification"
+msgstr "Verifica login"
+
+msgid "mailboxes active"
+msgstr "caselle di posta attive"
+
+msgid "mobile"
+msgstr "Cellulare"
+
+msgid "no calls"
+msgstr "Nessuna"
+
+msgid "no device active"
+msgstr "Nessun dispositivo attivo"
+
+msgid "not encrypted"
+msgstr "non codificato"
+
+msgid "number suppressed"
+msgstr "numero mascherato"
+
+msgid "one device active"
+msgstr "Un dispositivo attivo"
+
+msgid "preparing"
+msgstr "Preparazione in corso"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "quit"
+msgstr "Uscire"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "save and quit"
+msgstr "Salvare e uscire"
+
+msgid "show as list"
+msgstr "Come elenco"
+
+msgid "show each call"
+msgstr "Tutte"
+
+msgid "show nothing"
+msgstr "Nulla"
+
+msgid "work"
+msgstr "Ufficio"
+
+#~ msgid "business"
+#~ msgstr "Affari"
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/nl.po
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/nl.po	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/nl.po	(revision 12232)
@@ -0,0 +1,702 @@
+# translation of nl.po to
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# gerrit <gerrit@nedlinux.nl>, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: nl\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-02-13 17:00+0100\n"
+"PO-Revision-Date: 2009-06-04 20:19+0200\n"
+"Last-Translator: \n"
+"Language-Team:  <en@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "About FritzCall"
+msgstr "Over FritzCall"
+
+#. TRANSLATORS: keep it short, this is a help text
+#. TRANSLATORS: this is a window title.
+msgid "Add entry to phonebook"
+msgstr "Aan telefoonlijst toevoegen"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "All"
+msgstr "Alles"
+
+msgid "All calls"
+msgstr "Alle oproepen"
+
+msgid "Append shortcut number"
+msgstr "Snelkiesnummer toevoegen"
+
+msgid "Append type of number"
+msgstr "Nummersoort toevoegen"
+
+msgid "Append vanity name"
+msgstr "Alias toevoegen"
+
+msgid "Areacode to add to calls without one (if necessary)"
+msgstr ""
+
+msgid "Austria"
+msgstr "Oostenrijk"
+
+msgid "Automatically add new Caller to PhoneBook"
+msgstr "Nieuw contact automatisch toevoegen aan het telefoonboek"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Call"
+msgstr "Gesprek"
+
+msgid "Call monitoring"
+msgstr "Gespreksmonitoring"
+
+msgid "Call redirection"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Cancel"
+msgstr "Annuleren"
+
+msgid "Cannot get calls from FRITZ!Box"
+msgstr ""
+
+msgid "Cannot get infos from FRITZ!Box"
+msgstr ""
+
+msgid "Compact Flash"
+msgstr ""
+
+msgid "Connected since"
+msgstr "Verbonden sinds"
+
+msgid "Connected to FRITZ!Box!"
+msgstr "Verbonden met Fritzbox"
+
+#, python-format
+msgid ""
+"Connecting to FRITZ!Box failed\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Verbinding naar de FRITZ!Box geweigerd\n"
+" (%s)\n"
+"probeert opnieuw..."
+
+msgid "Connecting to FRITZ!Box..."
+msgstr "Aan het verbinden met  FRITZ!Box"
+
+#, python-format
+msgid ""
+"Connection to FRITZ!Box! lost\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Verbinding met  FRITZ!Box verbroken\n"
+" (%s)\n"
+"probeert opnieuw"
+
+msgid "Could not parse FRITZ!Box Phonebook entry"
+msgstr "Fout bij het verwerken van een FRITZ!Box telefoonboek regel"
+
+msgid "Country"
+msgstr "Land"
+
+msgid "DECT phones registered"
+msgstr "geregistreerde DECT telefoons"
+
+msgid "Debug"
+msgstr "Debug"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Delete"
+msgstr "Wissen"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Delete entry"
+msgstr "Wis regel"
+
+msgid "Display FRITZ!box-Fon calls on screen"
+msgstr "Laat FRITZ!Box gesprekken op het scherm zien"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display all calls"
+msgstr "Laat alle gesprekken zien"
+
+msgid "Display connection infos"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display incoming calls"
+msgstr "Laat binnenkomende gesprekken zien"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display missed calls"
+msgstr "Laat gemiste gesprekken zien"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display outgoing calls"
+msgstr "Laat uitgaande gesprekken zien"
+
+#. TRANSLATORS: this is a window title.
+msgid "Do what?"
+msgstr "Wat te doen..."
+
+#, python-format
+msgid ""
+"Do you really want to delete entry for\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+msgstr ""
+"Wilt u echt onderstaande regel verwijderen ?\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Edit"
+msgstr "Bewerken"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Edit selected entry"
+msgstr "Gesel. regel bewerken"
+
+msgid "Enter Search Terms"
+msgstr "Geef de zoekterm in"
+
+msgid "Entry incomplete."
+msgstr "Regel incompleet"
+
+msgid "Extension number to initiate call on"
+msgstr "Voorkies nummer voor een telefoonoproep"
+
+#, python-format
+msgid "FRITZ!Box - Could not load calls: %s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "FRITZ!Box - Could not load phonebook: %s"
+msgstr "Fout bij het laden van het FRITZ!Box telefoonboek -fout: %s"
+
+#, python-format
+msgid "FRITZ!Box - Dialling failed: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error getting blacklist: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error getting status: %s"
+msgstr ""
+
+msgid ""
+"FRITZ!Box - Error logging in\n"
+"\n"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error logging in: %s"
+msgstr "FRITZ!Box Login mislukt! - Error: %s"
+
+#, python-format
+msgid ""
+"FRITZ!Box - Error logging in: %s\n"
+"Disabling plugin."
+msgstr ""
+
+#, fuzzy, python-format
+msgid "FRITZ!Box - Error logging out: %s"
+msgstr "FRITZ!Box Logout mislukt! - Error: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error resetting: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Failed changing Mailbox: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Failed changing WLAN: %s"
+msgstr ""
+
+msgid "FRITZ!Box FON address (Name or IP)"
+msgstr "FRITZ!Box adres (Naam of IP)"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "FRITZ!Box Fon Status"
+msgstr "FRITZ!Box Status"
+
+msgid "Filter also list of calls"
+msgstr ""
+
+msgid "Flash"
+msgstr "Flash"
+
+#, python-format
+msgid ""
+"Found picture\n"
+"\n"
+"%s\n"
+"\n"
+"But did not load. Probably not PNG, 8-bit"
+msgstr ""
+
+msgid "France"
+msgstr "Frankrijk"
+
+#. TRANSLATORS: this is a window title.
+msgid "FritzCall Setup"
+msgstr "Setup Fritzcall"
+
+msgid "Germany"
+msgstr "Duitsland"
+
+msgid "Getting calls from FRITZ!Box..."
+msgstr "Ontvangt gesprekken van de FRITZ!Box..."
+
+msgid "Getting status from FRITZ!Box Fon..."
+msgstr "Ophalen van status van de FRITZ!Box..."
+
+msgid "IP Address:"
+msgstr "IP Adres:"
+
+msgid "Ignore callers with no phone number"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Incoming"
+msgstr "Binnenkomend"
+
+#, python-format
+msgid ""
+"Incoming Call on %(date)s at %(time)s from\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"to: %(phone)s"
+msgstr ""
+
+msgid "Incoming calls"
+msgstr "Inkomende gesprekken"
+
+msgid "Italy"
+msgstr "Italië"
+
+msgid "Last 10 calls:\n"
+msgstr "Laatste 10 gesprekken: \n"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Lookup"
+msgstr "Zoek"
+
+msgid "MSN to show (separated by ,)"
+msgstr "Laat MSN zien (door een komma gescheiden)"
+
+msgid "Mailbox"
+msgstr "Mailbox"
+
+msgid "Media directory"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Missed"
+msgstr "Gemist"
+
+msgid "Missed calls"
+msgstr "Gemiste gesprekken"
+
+msgid "Mute on call"
+msgstr "Muten bij oproep"
+
+msgid "Name"
+msgstr "Naam"
+
+msgid "Network mount"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "New"
+msgstr "Nieuw"
+
+msgid "No DECT phone registered"
+msgstr "Geen DECT telefoon geregistreerd"
+
+#, fuzzy
+msgid "No call redirection active"
+msgstr "Geen mailbox actief"
+
+msgid "No entry selected"
+msgstr "Geen regel geselecteerd"
+
+msgid "No mailbox active"
+msgstr "Geen mailbox actief"
+
+msgid "No phonebook"
+msgstr ""
+
+msgid "No result from LDIF"
+msgstr "Geen resultaat uit LDIF"
+
+msgid "No result from Outlook export"
+msgstr "Geen Resultaat van Outlook export"
+
+msgid "No result from reverse lookup"
+msgstr "Geen resultaat uit omgekeerd zoeken"
+
+msgid "Number"
+msgstr "Nummer"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "OK"
+msgstr "Ok"
+
+msgid "One DECT phone registered"
+msgstr "Eén DECT telefoon geregistreerd"
+
+#, fuzzy
+msgid "One call redirection active"
+msgstr "Eén mailbox actief"
+
+msgid "One mailbox active"
+msgstr "Eén mailbox actief"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Outgoing"
+msgstr "Uitgaand"
+
+#, python-format
+msgid ""
+"Outgoing Call on %(date)s at %(time)s to\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"from: %(phone)s"
+msgstr ""
+
+msgid "Outgoing calls"
+msgstr "Uitgaande gesprekken"
+
+msgid "Password Accessing FRITZ!Box"
+msgstr "Wachtwoord voor toegang FRITZ!Box"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phone calls"
+msgstr "Telefoongesprekken"
+
+msgid "PhoneBook Location"
+msgstr "Telefoonboek locatie"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phonebook"
+msgstr "Telefoonboek"
+
+msgid "Plugin not active"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Quit"
+msgstr "Afbreken"
+
+msgid "Read PhoneBook from FRITZ!Box"
+msgstr "Lees telefoonboek van FRITZ!Box"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Refresh status"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Reset"
+msgstr "Reset"
+
+msgid "Reverse Lookup Caller ID (select country below)"
+msgstr "Omgekeerd zoeken van een beller ID (select land hieronder)"
+
+msgid "Reverse searching..."
+msgstr "Zoekt omgekeerd..."
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Save"
+msgstr "Opslaan"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Search"
+msgstr "Zoeken"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Search (case insensitive)"
+msgstr "Zoeken (hoofdletter ongevoelig)"
+
+msgid "Search phonebook"
+msgstr "Doorzoek het telefoonboek"
+
+msgid "Searching in LDIF..."
+msgstr "Zoekt in LDIF..."
+
+msgid "Searching in Outlook export..."
+msgstr "Zoekt in Outlook export..."
+
+msgid "Shortcut"
+msgstr "Snelkoppeling"
+
+msgid "Show Outgoing Calls"
+msgstr "Laat uitgaande gesprekken zien"
+
+msgid "Show after Standby"
+msgstr "Laat zien na standby"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Show details of entry"
+msgstr "Laat de details zien van een regel"
+
+msgid "Show only calls for specific MSN"
+msgstr ""
+
+#, fuzzy
+msgid "Software fax active"
+msgstr "Geen mailbox actief"
+
+msgid "Status not available"
+msgstr ""
+
+msgid "Strip Leading 0"
+msgstr "Verwijder beginnende 0"
+
+msgid "Switzerland"
+msgstr "Zwitzerland"
+
+msgid "The Netherlands"
+msgstr "Nederland"
+
+msgid "Timeout for Call Notifications (seconds)"
+msgstr "Timeout voor gespreksnotificatie (seconden)"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 1. mailbox"
+msgstr "1. Mailbox Aan/Uit"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 2. mailbox"
+msgstr "2. Mailbox Aan/Uit"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 3. mailbox"
+msgstr "3. Mailbox Aan/Uit"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 4. mailbox"
+msgstr "4. Mailbox Aan/Uit"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 5. mailbox"
+msgstr "5. Mailbox Aan/Uit"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Toggle Mailbox"
+msgstr "Mailbox Aan/Uit"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle WLAN"
+msgstr "WLAN Aan/Uit"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle all mailboxes"
+msgstr "Mailbox Aan/Uit"
+
+msgid "UNKNOWN"
+msgstr "ONBEKEND"
+
+#, fuzzy
+msgid "USB Device"
+msgstr "USB Stick"
+
+msgid "Use internal PhoneBook"
+msgstr "Gebruik het interne telefoonboek"
+
+msgid "Vanity"
+msgstr "Trots"
+
+msgid "You need to enable the monitoring on your FRITZ!Box by dialing #96*5*!"
+msgstr ""
+"U moet de monitorfunctie van de FRITZ!Box inschakelen door het drukken van "
+"#96*5*!"
+
+msgid ""
+"You need to set the password of the FRITZ!Box\n"
+"in the configuration dialog to display calls\n"
+"\n"
+"It could be a communication issue, just try again."
+msgstr ""
+"U moet het wachtwoord van de FRITZ!Box nog aanmaken\n"
+"in het configuratiescherm om gesprekken te laten zien\n"
+"\n"
+"Dit kan een communicatieprobleem zijn, probeer opnieuw."
+
+msgid "call redirections active"
+msgstr ""
+
+#, fuzzy
+msgid "devices active"
+msgstr "mailboxen actief"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display calls"
+msgstr "Toon gesprekken"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display phonebook"
+msgstr "Toon telefoonboek"
+
+msgid "done"
+msgstr "klaar"
+
+msgid "done, using last list"
+msgstr "klaar, gebruikt nu de laatste lijst"
+
+msgid "encrypted"
+msgstr "gecodeerd"
+
+msgid "finishing"
+msgstr "wordt beëindigd"
+
+msgid "home"
+msgstr "home"
+
+msgid "login"
+msgstr "login"
+
+msgid "login ok"
+msgstr "login ok"
+
+msgid "login verification"
+msgstr "login verificatie"
+
+msgid "mailboxes active"
+msgstr "mailboxen actief"
+
+msgid "mobile"
+msgstr "mobiel"
+
+msgid "no calls"
+msgstr ""
+
+#, fuzzy
+msgid "no device active"
+msgstr "Eén mailbox actief"
+
+msgid "not encrypted"
+msgstr "ongecodeerd "
+
+msgid "number suppressed"
+msgstr ""
+
+#, fuzzy
+msgid "one device active"
+msgstr "Eén mailbox actief"
+
+msgid "preparing"
+msgstr "aan het voorbereiden"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "quit"
+msgstr "sluiten"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "save and quit"
+msgstr "opslaan en sluiten"
+
+msgid "show as list"
+msgstr "als lijst tonen"
+
+msgid "show each call"
+msgstr "alle gesprekken tonen"
+
+msgid "show nothing"
+msgstr "niets weergeven"
+
+msgid "work"
+msgstr "werk"
+
+#~ msgid "Areacode to add to Outgoing Calls (if necessary)"
+#~ msgstr "Netnummer bij uitgaande gesprekken  (indien nodig)"
+
+#~ msgid "CF Drive"
+#~ msgstr "CF kaart"
+
+#~ msgid "Could not load calls from FRITZ!Box - Error: %s"
+#~ msgstr "Kon de gesprekken niet laden van FRITZ!Box - Fout: %s"
+
+#~ msgid "Dialling failed - Error: %s"
+#~ msgstr "FRITZ!Box Login mislukt! - Error: %s"
+
+#~ msgid "FRITZ!Box Login failed! - Wrong Password!"
+#~ msgstr "FRITZ!Box Login mislukt! - Onjuist wachtwoord"
+
+#, fuzzy
+#~ msgid "FRITZ!Box Login failed: "
+#~ msgstr "FRITZ!Box Login mislukt! - Error: %s"
+
+#~ msgid "Full screen display"
+#~ msgstr "Volledig scherm"
+
+#~ msgid "Harddisk"
+#~ msgstr "Harde schijf"
+
+#~ msgid ""
+#~ "Incoming Call on %(date)s from\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "to: %(phone)s"
+#~ msgstr ""
+#~ "Binnenkomend gesprek op %(date)s van\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "to: %(phone)s"
+
+#~ msgid ""
+#~ "Outgoing Call on %(date)s to\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "from: %(phone)s"
+#~ msgstr ""
+#~ "Uitgaand gesprek op %(date)s to\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "van: %(phone)s"
+
+#~ msgid "Show Calls for specific MSN"
+#~ msgstr "Laat gesprekken van een specifieke MSN zien"
+
+#, fuzzy
+#~ msgid "Toggle "
+#~ msgstr "WLAN Aan/Uit"
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/sr.po
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/sr.po	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/sr.po	(revision 12232)
@@ -0,0 +1,683 @@
+# FritzCall plugin german localization
+# Copyright (C) 2009 Michael Schmidt
+# This file is distributed under the same license as the PACKAGE package.
+# Michael Schmidt <michael@schmidt-schmitten.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Enigma2 FritzCall Plugin\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-02-13 17:00+0100\n"
+"PO-Revision-Date: 2009-09-10 22:47+0100\n"
+"Last-Translator: maja <jovanovic@gmx.ch>\n"
+"Language-Team: veselin & majevica CRNABERZA <jovanovic@gmx.ch>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Serbian\n"
+"X-Poedit-Country: SERBIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "About FritzCall"
+msgstr "O FritzCall dodatku"
+
+#. TRANSLATORS: keep it short, this is a help text
+#. TRANSLATORS: this is a window title.
+msgid "Add entry to phonebook"
+msgstr "Dodaj unos u tel. imenik"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "All"
+msgstr "Svi "
+
+msgid "All calls"
+msgstr "Svi pozivi"
+
+msgid "Append shortcut number"
+msgstr "Priključi broj prečice "
+
+msgid "Append type of number"
+msgstr "Priključi tip broja"
+
+msgid "Append vanity name"
+msgstr "Priključi ništavno ime"
+
+msgid "Areacode to add to calls without one (if necessary)"
+msgstr ""
+
+msgid "Austria"
+msgstr "Austrija"
+
+msgid "Automatically add new Caller to PhoneBook"
+msgstr "Automatski dodaj novog pozivaoca u imenik"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Call"
+msgstr "Pozovi"
+
+msgid "Call monitoring"
+msgstr "Kontrola poziva"
+
+msgid "Call redirection"
+msgstr "Preusmerenje poziva"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Cancel"
+msgstr "Otkaži"
+
+msgid "Cannot get calls from FRITZ!Box"
+msgstr ""
+
+msgid "Cannot get infos from FRITZ!Box"
+msgstr ""
+
+msgid "Compact Flash"
+msgstr ""
+
+msgid "Connected since"
+msgstr "Spojen od"
+
+msgid "Connected to FRITZ!Box!"
+msgstr "Spojen sa  FRITZ!Box!"
+
+#, python-format
+msgid ""
+"Connecting to FRITZ!Box failed\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Spajanje sa FRITZ!Box nije uspelo\n"
+" (%s)\n"
+"Pokušavam ponovo..."
+
+msgid "Connecting to FRITZ!Box..."
+msgstr "Spajanje na FRITZ!Box..."
+
+#, python-format
+msgid ""
+"Connection to FRITZ!Box! lost\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"Veza sa FRITZ!Box izgubljena \n"
+" (%s)\n"
+"pokušavam ponovo..."
+
+msgid "Could not parse FRITZ!Box Phonebook entry"
+msgstr "Ne mogu tumačiti unos FRITZ!Box imenika"
+
+msgid "Country"
+msgstr "Država"
+
+msgid "DECT phones registered"
+msgstr "DECT telefoni registrovani"
+
+msgid "Debug"
+msgstr "Debag"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Delete"
+msgstr "Obriši"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Delete entry"
+msgstr "Obriši unos"
+
+msgid "Display FRITZ!box-Fon calls on screen"
+msgstr "Prikaži  FRITZ!Box tel. pozive na ekranu"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display all calls"
+msgstr "Prikaži sve pozive"
+
+msgid "Display connection infos"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display incoming calls"
+msgstr "Prikaži dolazne pozive"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display missed calls"
+msgstr "Prikaži propuštene pozive"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display outgoing calls"
+msgstr "Prikaži odlazne pozive"
+
+#. TRANSLATORS: this is a window title.
+msgid "Do what?"
+msgstr "Šta raditi?"
+
+#, python-format
+msgid ""
+"Do you really want to delete entry for\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+msgstr ""
+"Da li stvarno želite obrisati unos za\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Edit"
+msgstr "Uredi"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Edit selected entry"
+msgstr "Uredi izabrani unos"
+
+msgid "Enter Search Terms"
+msgstr "Unesi termin za pretragu"
+
+msgid "Entry incomplete."
+msgstr "Unos nekompletan."
+
+msgid "Extension number to initiate call on"
+msgstr "Dodatni broj za početak poziva"
+
+#, python-format
+msgid "FRITZ!Box - Could not load calls: %s"
+msgstr "FRITZ!Box - Ne mogu učitati pozive: %s"
+
+#, python-format
+msgid "FRITZ!Box - Could not load phonebook: %s"
+msgstr "\"FRITZ!Box - Ne mogu učitati imenik: %s"
+
+#, python-format
+msgid "FRITZ!Box - Dialling failed: %s"
+msgstr "FRITZ!Box - Pozivanje nije uspelo: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error getting blacklist: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error getting status: %s"
+msgstr "FRITZ!Box - Greška kod dobijanja stanja: %s"
+
+msgid ""
+"FRITZ!Box - Error logging in\n"
+"\n"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error logging in: %s"
+msgstr "FRITZ!Box - Greška kod upisa: %s"
+
+#, python-format
+msgid ""
+"FRITZ!Box - Error logging in: %s\n"
+"Disabling plugin."
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error logging out: %s"
+msgstr "FRITZ!Box - Greška kod ispisa: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error resetting: %s"
+msgstr "FRITZ!Box -Greška kod resetovanja: %s"
+
+#, python-format
+msgid "FRITZ!Box - Failed changing Mailbox: %s"
+msgstr "FRITZ!Box - Nije uspela promena pošt. sand.: %s"
+
+#, python-format
+msgid "FRITZ!Box - Failed changing WLAN: %s"
+msgstr "FRITZ!Box -Nije uspela promena WLAN-a: %s"
+
+msgid "FRITZ!Box FON address (Name or IP)"
+msgstr "FRITZ!Box FON Adresse (Name oder IP-Adresse)"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "FRITZ!Box Fon Status"
+msgstr "FRITZ!Box Stanje telefona"
+
+msgid "Filter also list of calls"
+msgstr ""
+
+msgid "Flash"
+msgstr "Fleš"
+
+#, python-format
+msgid ""
+"Found picture\n"
+"\n"
+"%s\n"
+"\n"
+"But did not load. Probably not PNG, 8-bit"
+msgstr ""
+
+msgid "France"
+msgstr "Francuska"
+
+#. TRANSLATORS: this is a window title.
+msgid "FritzCall Setup"
+msgstr "FritzCall Podešavanje"
+
+msgid "Germany"
+msgstr "Nemačka"
+
+msgid "Getting calls from FRITZ!Box..."
+msgstr "Uzimanje poziva sa FRITZ!Box..."
+
+msgid "Getting status from FRITZ!Box Fon..."
+msgstr "Dobijanje stanja FRITZ!Box telefona..."
+
+msgid "IP Address:"
+msgstr "IP Adresa:"
+
+msgid "Ignore callers with no phone number"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Incoming"
+msgstr "Dolazni"
+
+#, python-format
+msgid ""
+"Incoming Call on %(date)s at %(time)s from\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"to: %(phone)s"
+msgstr ""
+
+msgid "Incoming calls"
+msgstr "Dolazni pozivi"
+
+msgid "Italy"
+msgstr "Italija"
+
+msgid "Last 10 calls:\n"
+msgstr "Poslednjih 10 poziva:\n"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Lookup"
+msgstr "Traženje"
+
+msgid "MSN to show (separated by ,)"
+msgstr "Pokazati MSN (odvojen sa  ,)"
+
+msgid "Mailbox"
+msgstr "Poštansko sanduče"
+
+msgid "Media directory"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Missed"
+msgstr "Propušten"
+
+msgid "Missed calls"
+msgstr "Propušteni pozivi"
+
+msgid "Mute on call"
+msgstr "Priguši kod poziva"
+
+msgid "Name"
+msgstr "Ime"
+
+msgid "Network mount"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "New"
+msgstr "Neu"
+
+msgid "No DECT phone registered"
+msgstr "Nijedan DECT tel. nije registrovan "
+
+msgid "No call redirection active"
+msgstr "Nema aktivnih preusmerenja poziva"
+
+msgid "No entry selected"
+msgstr "Nijedan unos nije izabran"
+
+msgid "No mailbox active"
+msgstr "Nema aktivnog pošz. sand."
+
+msgid "No phonebook"
+msgstr ""
+
+msgid "No result from LDIF"
+msgstr "Nema rezultata iz LDIF"
+
+msgid "No result from Outlook export"
+msgstr "Nema rezultata iz Outlook-Export"
+
+msgid "No result from reverse lookup"
+msgstr "Nema rezultata traženja unazad"
+
+msgid "Number"
+msgstr "Broj"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "OK"
+msgstr "OK"
+
+msgid "One DECT phone registered"
+msgstr "Jedan DECT tel. je registrovan "
+
+msgid "One call redirection active"
+msgstr "Jedno preusmerenje poziva je aktivno"
+
+msgid "One mailbox active"
+msgstr "Jedno pošt. sand. je aktivno"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Outgoing"
+msgstr "Odlazni"
+
+#, python-format
+msgid ""
+"Outgoing Call on %(date)s at %(time)s to\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"from: %(phone)s"
+msgstr ""
+
+msgid "Outgoing calls"
+msgstr "Odlazni pozivi"
+
+msgid "Password Accessing FRITZ!Box"
+msgstr "Lozinka za pristup FRITZ!Box-u"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phone calls"
+msgstr "Telefonski pozivi"
+
+msgid "PhoneBook Location"
+msgstr "Lokacija tel. imenika"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phonebook"
+msgstr "Telefonski imenik"
+
+msgid "Plugin not active"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Quit"
+msgstr "Završi"
+
+msgid "Read PhoneBook from FRITZ!Box"
+msgstr "Pročitaj tel. imenik iz FRITZ!Box-a"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Refresh status"
+msgstr "Stanje osvežavanja"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Reset"
+msgstr "Resetuj"
+
+msgid "Reverse Lookup Caller ID (select country below)"
+msgstr "Traženje ID pozivaoca unazad (odaberi zemlju ispod)"
+
+msgid "Reverse searching..."
+msgstr "Pretraživanje unazad..."
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Save"
+msgstr "Sačuvaj"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Search"
+msgstr "Traži"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Search (case insensitive)"
+msgstr "Traži ( isto velika i mala slova)"
+
+msgid "Search phonebook"
+msgstr "Pretraži imenik"
+
+msgid "Searching in LDIF..."
+msgstr "Traži u  LDIF..."
+
+msgid "Searching in Outlook export..."
+msgstr "Tražim u Outlook-Export..."
+
+msgid "Shortcut"
+msgstr "Prečica"
+
+msgid "Show Outgoing Calls"
+msgstr "Prikaži odlazne pozive"
+
+msgid "Show after Standby"
+msgstr "Pokaži posle stend baja"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Show details of entry"
+msgstr "Pokaži detalje unosa"
+
+msgid "Show only calls for specific MSN"
+msgstr ""
+
+msgid "Software fax active"
+msgstr "Aktivan faks softver"
+
+msgid "Status not available"
+msgstr "Status nije dostupan"
+
+msgid "Strip Leading 0"
+msgstr "Führende 0 entfernen"
+
+msgid "Switzerland"
+msgstr "Švajcarska"
+
+msgid "The Netherlands"
+msgstr "Holandija"
+
+msgid "Timeout for Call Notifications (seconds)"
+msgstr "Prekid za obaveštenja o pozivima (sekundi) "
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 1. mailbox"
+msgstr "Prebaci 1. pošt.sanduče"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 2. mailbox"
+msgstr "Prebaci  2. pošt.sanduče"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 3. mailbox"
+msgstr "Prebaci 3. pošt.sanduče"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 4. mailbox"
+msgstr "Prebaci 4. pošt.sanduče"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 5. mailbox"
+msgstr "Prebaci 5. pošt.sanduče"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Toggle Mailbox"
+msgstr "Prebac pošt.sanduče"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle WLAN"
+msgstr "Prebaci WLAN"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle all mailboxes"
+msgstr "Prebaci sve pošt. sand."
+
+msgid "UNKNOWN"
+msgstr "NEPOZNATO"
+
+msgid "USB Device"
+msgstr ""
+
+msgid "Use internal PhoneBook"
+msgstr "Koristi interni tel. imenik"
+
+msgid "Vanity"
+msgstr "Ništavnost"
+
+msgid "You need to enable the monitoring on your FRITZ!Box by dialing #96*5*!"
+msgstr "Treba da uključite kontrolu vašeg FRITZ!box-a pozivanjem #96*5*!"
+
+msgid ""
+"You need to set the password of the FRITZ!Box\n"
+"in the configuration dialog to display calls\n"
+"\n"
+"It could be a communication issue, just try again."
+msgstr ""
+"Treba da postavite lozinku za FRITZ!box\n"
+"u konfiguracijskom meniju za prikaz poziva.\n"
+"\n"
+"To može biti problem veza,samo opet probajte."
+
+msgid "call redirections active"
+msgstr "Preusmerenje poziva aktivno"
+
+msgid "devices active"
+msgstr "Aktivni uređaji"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display calls"
+msgstr "Prikaži pozive"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display phonebook"
+msgstr "Prikaži imenik"
+
+msgid "done"
+msgstr "Završeno"
+
+msgid "done, using last list"
+msgstr "Završeno,koristim zadnju listu"
+
+msgid "encrypted"
+msgstr "kodirano"
+
+msgid "finishing"
+msgstr "završavam"
+
+msgid "home"
+msgstr "Kuđni"
+
+msgid "login"
+msgstr "Upis"
+
+msgid "login ok"
+msgstr "Upis OK"
+
+msgid "login verification"
+msgstr "Provera upisa"
+
+msgid "mailboxes active"
+msgstr "Sandučići aktivni"
+
+msgid "mobile"
+msgstr "Mobilni"
+
+msgid "no calls"
+msgstr ""
+
+msgid "no device active"
+msgstr "Nijedan urećaj nije aktivan"
+
+msgid "not encrypted"
+msgstr "Nije kodirano"
+
+msgid "number suppressed"
+msgstr ""
+
+msgid "one device active"
+msgstr "Jedan aktivan uređaj"
+
+msgid "preparing"
+msgstr "Pripremam"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "quit"
+msgstr "napusti"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "save and quit"
+msgstr "Sačuvaj i napusti"
+
+msgid "show as list"
+msgstr "Pokaži kao listu"
+
+msgid "show each call"
+msgstr "Pokaži svaki poziv"
+
+msgid "show nothing"
+msgstr "Ništa ne pokazuj"
+
+msgid "work"
+msgstr "Posao"
+
+#~ msgid "Areacode to add to Outgoing Calls (if necessary)"
+#~ msgstr "Pozivni broj za dodati izlaznim pozivima (ako je potrebno)"
+
+#~ msgid "CF Drive"
+#~ msgstr "CF Laufwerk"
+
+#~ msgid "Full screen display"
+#~ msgstr "Prikaži ceo ekran"
+
+#~ msgid "Harddisk"
+#~ msgstr "Festplatte"
+
+#~ msgid ""
+#~ "Incoming Call on %(date)s from\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "to: %(phone)s"
+#~ msgstr ""
+#~ "Dolazni poziv %(date)s od\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "za: %(phone)s"
+
+#~ msgid ""
+#~ "Outgoing Call on %(date)s to\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "from: %(phone)s"
+#~ msgstr ""
+#~ "Odlazni poziv  %(date)s za\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "od: %(phone)s"
+
+#~ msgid "Show Calls for specific MSN"
+#~ msgstr "Pokaži pozive za spec. MSN"
+
+#~ msgid "USB Stick"
+#~ msgstr "USB Stick"
+
+#~ msgid "business"
+#~ msgstr "posao"
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/tr.po
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/tr.po	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/locale/tr.po	(revision 12232)
@@ -0,0 +1,800 @@
+# Zülfikar VEYİSOĞLU <z.veyisoglu@hobiagaci.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Enigma2 FritzCall Plugin Turkish Locale\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-02-13 17:00+0100\n"
+"PO-Revision-Date: 2009-07-29 20:37+0200\n"
+"Last-Translator: Zülfikar VEYİSOĞLU <z.veyisoglu@hobiagaci.com>\n"
+"Language-Team: http://hobiagaci.com <z.veyisoglu@hobiagaci.com>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Turkish\n"
+"X-Poedit-Country: TURKEY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "About FritzCall"
+msgstr "FritzCall hakkında"
+
+#. TRANSLATORS: keep it short, this is a help text
+#. TRANSLATORS: this is a window title.
+msgid "Add entry to phonebook"
+msgstr "Rehbere yeni kayit ekle"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "All"
+msgstr "Tümü"
+
+msgid "All calls"
+msgstr "Tüm aramalar"
+
+msgid "Append shortcut number"
+msgstr "Çağrıda kısayol kodunu göster"
+
+msgid "Append type of number"
+msgstr "Çağrıda numara tipini göster"
+
+msgid "Append vanity name"
+msgstr "Çağrıda vanity kodunu göster"
+
+msgid "Areacode to add to calls without one (if necessary)"
+msgstr ""
+
+msgid "Austria"
+msgstr "Avusturya"
+
+msgid "Automatically add new Caller to PhoneBook"
+msgstr "Kayıtsız arayan kişisini, rehbere otomatik olarak ekle"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Call"
+msgstr "Ara"
+
+msgid "Call monitoring"
+msgstr "Çağrı görüntüleme"
+
+msgid "Call redirection"
+msgstr "Çağrı yönlendirme"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Cancel"
+msgstr "Vazgeç"
+
+msgid "Cannot get calls from FRITZ!Box"
+msgstr ""
+
+msgid "Cannot get infos from FRITZ!Box"
+msgstr ""
+
+msgid "Compact Flash"
+msgstr ""
+
+msgid "Connected since"
+msgstr "Bağlantı süresi : "
+
+msgid "Connected to FRITZ!Box!"
+msgstr "FRITZ!Box'a bağlanıldı!"
+
+#, python-format
+msgid ""
+"Connecting to FRITZ!Box failed\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"FRITZ!Box bağlantısı başarısız\n"
+" (%s)\n"
+"yeniden deneniyor..."
+
+msgid "Connecting to FRITZ!Box..."
+msgstr "FRITZ!Box'a bağlanılıyor..."
+
+#, python-format
+msgid ""
+"Connection to FRITZ!Box! lost\n"
+" (%s)\n"
+"retrying..."
+msgstr ""
+"FRITZ!Box bağlantısı kayboldu\n"
+" (%s)\n"
+"yeniden deneniyor..."
+
+msgid "Could not parse FRITZ!Box Phonebook entry"
+msgstr "FRITZ!Box rehber kaydı ayrıştırılamıyor"
+
+msgid "Country"
+msgstr "Ülke"
+
+msgid "DECT phones registered"
+msgstr "DECT telefon tanıtılmış"
+
+msgid "Debug"
+msgstr "Hata ayıklama"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Delete"
+msgstr "Sil"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Delete entry"
+msgstr "Kayıt sil"
+
+msgid "Display FRITZ!box-Fon calls on screen"
+msgstr "FRITZ!Box aramalarını ekranda göster"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display all calls"
+msgstr "Tüm aramaları göster"
+
+msgid "Display connection infos"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display incoming calls"
+msgstr "Gelen aramaları göster"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display missed calls"
+msgstr "Cevapsız aramaları göster"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Display outgoing calls"
+msgstr "Giden aramaları göster"
+
+#. TRANSLATORS: this is a window title.
+msgid "Do what?"
+msgstr "Ne yapmak istiyorsunuz?"
+
+#, python-format
+msgid ""
+"Do you really want to delete entry for\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+msgstr ""
+"Aşağıdaki kaydı silmek istiyor musunuz?\n"
+"\n"
+"%(number)s\n"
+"\n"
+"%(name)s?"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Edit"
+msgstr "Düzelt"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Edit selected entry"
+msgstr "Seçili kaydı düzelt"
+
+msgid "Enter Search Terms"
+msgstr "Arama terimlerini düzelt"
+
+msgid "Entry incomplete."
+msgstr "Giriş tamamlanmamış."
+
+msgid "Extension number to initiate call on"
+msgstr "Dış hatta ulaşmak için çevrilen numara"
+
+#, python-format
+msgid "FRITZ!Box - Could not load calls: %s"
+msgstr "FRITZ!Box - Aramalar yüklenemedi: %s"
+
+#, python-format
+msgid "FRITZ!Box - Could not load phonebook: %s"
+msgstr "Rehber, FRITZ!Box'dan yüklenemiyor: %s"
+
+#, python-format
+msgid "FRITZ!Box - Dialling failed: %s"
+msgstr "FRITZ!Box araması başarısız: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error getting blacklist: %s"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error getting status: %s"
+msgstr "FRITZ!Box durum bilgisi alınamadı: %s"
+
+msgid ""
+"FRITZ!Box - Error logging in\n"
+"\n"
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error logging in: %s"
+msgstr "FRITZ!Box oturumu başlatılamadı: %s"
+
+#, python-format
+msgid ""
+"FRITZ!Box - Error logging in: %s\n"
+"Disabling plugin."
+msgstr ""
+
+#, python-format
+msgid "FRITZ!Box - Error logging out: %s"
+msgstr "FRITZ!Box oturumu kapatılamadı: %s"
+
+#, python-format
+msgid "FRITZ!Box - Error resetting: %s"
+msgstr "FRITZ!Box - yeniden başlatılamadı: %s"
+
+#, python-format
+msgid "FRITZ!Box - Failed changing Mailbox: %s"
+msgstr "FRITZ!Box - posta kutusu durumu değiştirilemedi: %s"
+
+#, python-format
+msgid "FRITZ!Box - Failed changing WLAN: %s"
+msgstr "FRITZ!Box WLAN durumu değiştirilemedi: %s"
+
+msgid "FRITZ!Box FON address (Name or IP)"
+msgstr "FRITZ!Box adresi (isim yada IP)"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "FRITZ!Box Fon Status"
+msgstr "FRITZ!Box durumu"
+
+msgid "Filter also list of calls"
+msgstr ""
+
+msgid "Flash"
+msgstr "Flaş"
+
+#, python-format
+msgid ""
+"Found picture\n"
+"\n"
+"%s\n"
+"\n"
+"But did not load. Probably not PNG, 8-bit"
+msgstr ""
+
+msgid "France"
+msgstr "Fransa"
+
+#. TRANSLATORS: this is a window title.
+msgid "FritzCall Setup"
+msgstr "FritzCall Kurulumu"
+
+msgid "Germany"
+msgstr "Almanya"
+
+msgid "Getting calls from FRITZ!Box..."
+msgstr "Aramalar FRITZ!Box'tan alınıyor..."
+
+msgid "Getting status from FRITZ!Box Fon..."
+msgstr "Durum bilgisi FRITZ!Box'tan alınıyor..."
+
+msgid "IP Address:"
+msgstr "IP Adresi:"
+
+msgid "Ignore callers with no phone number"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Incoming"
+msgstr "Gelen"
+
+#, python-format
+msgid ""
+"Incoming Call on %(date)s at %(time)s from\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"to: %(phone)s"
+msgstr ""
+
+msgid "Incoming calls"
+msgstr "Gelen aramalar"
+
+msgid "Italy"
+msgstr "İtalya"
+
+msgid "Last 10 calls:\n"
+msgstr "Son 10 arama:\n"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Lookup"
+msgstr "Sorgula"
+
+msgid "MSN to show (separated by ,)"
+msgstr "MSN göster (virgülle ayrılmış)"
+
+msgid "Mailbox"
+msgstr "Posta kutusu"
+
+msgid "Media directory"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Missed"
+msgstr "Cevapsız"
+
+msgid "Missed calls"
+msgstr "Cevapsız aramalar"
+
+msgid "Mute on call"
+msgstr "Çağrı olduğunda sessize al"
+
+msgid "Name"
+msgstr "Ad"
+
+msgid "Network mount"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "New"
+msgstr "Yeni"
+
+msgid "No DECT phone registered"
+msgstr "DECT telefon tanıtılmamış"
+
+msgid "No call redirection active"
+msgstr "Çağrı yönlendirme etkin değil"
+
+msgid "No entry selected"
+msgstr "Seçim yapılmadı"
+
+msgid "No mailbox active"
+msgstr "Etkin posta kutusu yok"
+
+msgid "No phonebook"
+msgstr ""
+
+msgid "No result from LDIF"
+msgstr "LDIF içeriğinde sonuç bulunamadı"
+
+msgid "No result from Outlook export"
+msgstr "Outlook adres defterinde sonuç bulunamadı"
+
+msgid "No result from reverse lookup"
+msgstr "Hizmet sağlayıcı rehberinde kayıt bulunamadı"
+
+msgid "Number"
+msgstr "Numara"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "OK"
+msgstr "Tamam"
+
+msgid "One DECT phone registered"
+msgstr "Bir DECT telefon tanıtılmış"
+
+msgid "One call redirection active"
+msgstr "Bir çağrı yönlendirmesi etkin"
+
+msgid "One mailbox active"
+msgstr "Bir posta kutusu etkin"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Outgoing"
+msgstr "Giden"
+
+#, python-format
+msgid ""
+"Outgoing Call on %(date)s at %(time)s to\n"
+"---------------------------------------------\n"
+"%(number)s\n"
+"%(caller)s\n"
+"---------------------------------------------\n"
+"from: %(phone)s"
+msgstr ""
+
+msgid "Outgoing calls"
+msgstr "Giden aramalar"
+
+msgid "Password Accessing FRITZ!Box"
+msgstr "FRITZ!Box yönetici parolası"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phone calls"
+msgstr "Aramalar"
+
+msgid "PhoneBook Location"
+msgstr "Rehber konumu"
+
+#. TRANSLATORS: this is a window title.
+#. TRANSLATORS: keep it short, this is a button
+msgid "Phonebook"
+msgstr "Rehber"
+
+msgid "Plugin not active"
+msgstr ""
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Quit"
+msgstr "Çık"
+
+msgid "Read PhoneBook from FRITZ!Box"
+msgstr "FRITZ!Box telefon rehberini oku"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Refresh status"
+msgstr "Durumu yenile"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Reset"
+msgstr "Y.başlat"
+
+msgid "Reverse Lookup Caller ID (select country below)"
+msgstr "Arayan kimliğini hizmet sağlayıcıdan sorgula (ülke seçin)"
+
+msgid "Reverse searching..."
+msgstr "Hizmet sağlayıcı rehberi aranıyor..."
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Save"
+msgstr "Kaydet"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Search"
+msgstr "Ara"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Search (case insensitive)"
+msgstr "Ara (büyük-küçük harf duyarlı)"
+
+msgid "Search phonebook"
+msgstr "Rehberde ara"
+
+msgid "Searching in LDIF..."
+msgstr "LDIF dosyası içinde aranıyor..."
+
+msgid "Searching in Outlook export..."
+msgstr "Outlook adres defteri içinde aranıyor..."
+
+msgid "Shortcut"
+msgstr "Kısayol"
+
+msgid "Show Outgoing Calls"
+msgstr "Giden aramalarda göster"
+
+msgid "Show after Standby"
+msgstr "Hazırda bekletme kipine geçtikten sonra"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Show details of entry"
+msgstr "Kaydın detaylarını göster"
+
+msgid "Show only calls for specific MSN"
+msgstr ""
+
+msgid "Software fax active"
+msgstr "Yazılım bazlı faks etkin"
+
+msgid "Status not available"
+msgstr "Durum bilgisi uygun değil"
+
+msgid "Strip Leading 0"
+msgstr "Öndeki 0'ı ayır"
+
+msgid "Switzerland"
+msgstr "İsviçre"
+
+msgid "The Netherlands"
+msgstr "Hollanda"
+
+msgid "Timeout for Call Notifications (seconds)"
+msgstr "Arama uyarıları için zaman aşımı süresi (saniye)"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 1. mailbox"
+msgstr "1. posta kutusunu aç/kapat"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 2. mailbox"
+msgstr "2. posta kutusunu aç/kapat"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 3. mailbox"
+msgstr "3. posta kutusunu aç/kapat"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 4. mailbox"
+msgstr "4. posta kutusunu aç/kapat"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle 5. mailbox"
+msgstr "5. posta kutusunu aç/kapat"
+
+#. TRANSLATORS: keep it short, this is a button
+msgid "Toggle Mailbox"
+msgstr "Posta aç/kapa"
+
+#. TRANSLATORS: keep it short, this is a button
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle WLAN"
+msgstr "WLAN aç/kapa"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "Toggle all mailboxes"
+msgstr "Posta kutularını aç/kapat"
+
+msgid "UNKNOWN"
+msgstr "BİLİNMİYOR"
+
+#, fuzzy
+msgid "USB Device"
+msgstr "USB Bellek"
+
+msgid "Use internal PhoneBook"
+msgstr "FRITZ!Box rehberini kullan"
+
+msgid "Vanity"
+msgstr "Vanity"
+
+msgid "You need to enable the monitoring on your FRITZ!Box by dialing #96*5*!"
+msgstr ""
+"FRITZ!Box'ta çağrı görüntülemeyi etkinleştirmek için #96*5* 'ı aramalısınız!"
+
+msgid ""
+"You need to set the password of the FRITZ!Box\n"
+"in the configuration dialog to display calls\n"
+"\n"
+"It could be a communication issue, just try again."
+msgstr ""
+"Çağrıların gösterilebilmesi için, yapılandırma ekranında\n"
+"FRITZ!Box parolanızı girmeniz gerekiyor\n"
+"\n"
+"Bağlantı sorunu yaşarsanız, tekrar deneyin."
+
+msgid "call redirections active"
+msgstr "çağrı yönlendirmesi etkin"
+
+msgid "devices active"
+msgstr "cihaz etkin"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display calls"
+msgstr "aramaları göster"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "display phonebook"
+msgstr "rehberi göster"
+
+msgid "done"
+msgstr "tamamlandı"
+
+msgid "done, using last list"
+msgstr "tamamlandı, son liste kullanıyor"
+
+msgid "encrypted"
+msgstr "şifrelenmiş"
+
+msgid "finishing"
+msgstr "sonlandırılıyor"
+
+msgid "home"
+msgstr "ev"
+
+msgid "login"
+msgstr "oturum açılıyor"
+
+msgid "login ok"
+msgstr "oturum açıldı"
+
+msgid "login verification"
+msgstr "oturum doğrulama"
+
+msgid "mailboxes active"
+msgstr "posta kutusu etkin"
+
+msgid "mobile"
+msgstr "cep"
+
+msgid "no calls"
+msgstr ""
+
+msgid "no device active"
+msgstr "etkin cihaz yok"
+
+msgid "not encrypted"
+msgstr "şifrelenmemiş"
+
+msgid "number suppressed"
+msgstr ""
+
+msgid "one device active"
+msgstr "Bir cihaz etkin"
+
+msgid "preparing"
+msgstr "hazırlanıyor"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "quit"
+msgstr "çık"
+
+#. TRANSLATORS: keep it short, this is a help text
+msgid "save and quit"
+msgstr "kaydet ve çık"
+
+msgid "show as list"
+msgstr "liste olarak göster"
+
+msgid "show each call"
+msgstr "aramaları ayrı göster"
+
+msgid "show nothing"
+msgstr "birşey gösterme"
+
+msgid "work"
+msgstr "iş"
+
+#~ msgid "Areacode to add to Outgoing Calls (if necessary)"
+#~ msgstr "Giden aramalara alan kodu ekle (gerekirse)"
+
+#~ msgid "CF Drive"
+#~ msgstr "CF Sürücü"
+
+#~ msgid ""
+#~ "Call\n"
+#~ "\n"
+#~ "%s(number)\n"
+#~ "\n"
+#~ "%s(name)?"
+#~ msgstr ""
+#~ "%s(number)\n"
+#~ "\n"
+#~ "%s(name)\n"
+#~ "\n"
+#~ "aransın mı?"
+
+#~ msgid "Can't create PhoneBook.txt"
+#~ msgstr "PhoneBook.txt oluşturulamıyor"
+
+#~ msgid ""
+#~ "Corrupt phonebook entry\n"
+#~ "for number %d\n"
+#~ "Deleting."
+#~ msgstr ""
+#~ "%d numaralı\n"
+#~ "bozuk rehber kaydı\n"
+#~ "siliniyor."
+
+#~ msgid "Could not load calls from FRITZ!Box - Error: %s"
+#~ msgstr "Aramalar, FRITZ!Box'dan yüklenemiyor - Hata: %s"
+
+#~ msgid "Dialling failed - Error: %s"
+#~ msgstr "Arama başlatılamadı! - Hata: %s"
+
+#~ msgid ""
+#~ "Do you really want to overwrite entry for %(number)s\n"
+#~ "\n"
+#~ "%(name)s\n"
+#~ "\n"
+#~ "with\n"
+#~ "\n"
+#~ "%(newname)s?"
+#~ msgstr ""
+#~ "%(number)s için tanımladığınız\n"
+#~ "\n"
+#~ "%(name)s kaydını\n"
+#~ "\n"
+#~ "%(newname)s olarak\n"
+#~ "\n"
+#~ "değiştirmek istiyor musunuz?"
+
+#~ msgid ""
+#~ "Do you want to add a phonebook entry\n"
+#~ "\n"
+#~ "%(name)s\n"
+#~ "\n"
+#~ "for\n"
+#~ "\n"
+#~ "%(number)s?"
+#~ msgstr ""
+#~ "%(number)s için\n"
+#~ "\n"
+#~ "%(name)s\n"
+#~ "\n"
+#~ "olarak\n"
+#~ "\n"
+#~ "rehbere eklemek istiyor musunuz?"
+
+#~ msgid ""
+#~ "Do you want to add a phonebook entry for\n"
+#~ "\n"
+#~ "%s?"
+#~ msgstr ""
+#~ "%s kaydını\n"
+#~ "\n"
+#~ "rehbere eklemek istiyor musunuz?"
+
+#, fuzzy
+#~ msgid ""
+#~ "Do you want to reverse search for\n"
+#~ "\n"
+#~ "%s?"
+#~ msgstr ""
+#~ "%s kaydını\n"
+#~ "\n"
+#~ "rehbere eklemek istiyor musunuz?"
+
+#~ msgid "Edit phonebook entry"
+#~ msgstr "Rehber kaydını düzelt"
+
+#, fuzzy
+#~ msgid "FRITZ!Box Fon has no mailbox"
+#~ msgstr "FRITZ!Box Fon Durumu"
+
+#~ msgid "FRITZ!Box Login failed! - Wrong Password!"
+#~ msgstr "FRITZ!Box oturumu başlatılamadı! - Parola hatalı!"
+
+#~ msgid "FRITZ!Box Login failed: "
+#~ msgstr "FRITZ!Box oturumu başlatılamadı: "
+
+#~ msgid "Full screen display"
+#~ msgstr "Tam ekran göster"
+
+#~ msgid "Harddisk"
+#~ msgstr "Sabit disk"
+
+#~ msgid ""
+#~ "Incoming Call on %(date)s from\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "to: %(phone)s"
+#~ msgstr ""
+#~ "%(date)s tarihli Gelen Aramalar\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "kime: %(phone)s"
+
+#~ msgid "Minuten"
+#~ msgstr "dakika"
+
+#~ msgid ""
+#~ "Outgoing Call on %(date)s to\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "from: %(phone)s"
+#~ msgstr ""
+#~ "%(date)s tarihli Giden Aramalar\n"
+#~ "---------------------------------------------\n"
+#~ "%(number)s\n"
+#~ "%(caller)s\n"
+#~ "---------------------------------------------\n"
+#~ "kimden: %(phone)s"
+
+#~ msgid "Reverse lookup for "
+#~ msgstr "Hizmet sağlayıcıdan isim sorgula : "
+
+#~ msgid "Reverse lookup not successful"
+#~ msgstr "İsim sorgulama başarısız"
+
+#~ msgid "Reverse lookup successful"
+#~ msgstr "İsim sorgulama başarılı"
+
+#~ msgid "Sekunden"
+#~ msgstr "saniye"
+
+#~ msgid "Show Calls for specific MSN"
+#~ msgstr "Belirlenen MSN aramalarını göster"
+
+#~ msgid "Stunden"
+#~ msgstr "saat"
+
+#, fuzzy
+#~ msgid "Toggle "
+#~ msgstr "WLAN aç/kapa"
+
+#~ msgid "WLAN off"
+#~ msgstr "WLAN kapat"
+
+#~ msgid "WLAN on"
+#~ msgstr "WLAN aç"
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/nrzuname.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/nrzuname.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/nrzuname.py	(revision 12232)
@@ -0,0 +1,437 @@
+#!/usr/bin/python
+# -*- coding: UTF-8 -*-
+'''
+$Id: nrzuname.py 538 2010-01-11 08:23:51Z michael $
+$Author: michael $
+$Revision: 538 $
+$Date: 2010-01-11 09:23:51 +0100 (Mo, 11 Jan 2010) $
+'''
+
+import re, sys, os
+from xml.dom.minidom import parse
+from twisted.web.client import getPage #@UnresolvedImport
+from twisted.internet import reactor #@UnresolvedImport
+
+try:
+	from . import debug #@UnresolvedImport # pylint: disable-msg=W0613,F0401
+	def setDebug(what): # pylint: disable-msg=W0613
+		pass
+except ValueError:
+	debugVal = True
+	def setDebug(what):
+		global debugVal
+		debugVal = what
+	def debug(message):
+		if debugVal:
+			print message
+
+import htmlentitydefs
+def html2unicode(in_html, charset):
+#===============================================================================
+#	# sanity checks
+#	try:
+#		in_html = in_html.decode('iso-8859-1')
+#		debug("[Callhtml2utf8] Converted from latin1")
+#	except:
+#		debug("[Callhtml2utf8] lost in translation from latin1")
+#		pass
+#	try:
+#		in_html = in_html.decode('utf-8')
+#		debug("[Callhtml2utf8] Converted from utf-8")
+#	except:
+#		debug("[Callhtml2utf8] lost in translation from utf-8")
+#		pass
+#===============================================================================
+
+	# first convert some WML codes from hex: e.g. &#xE4 -> &#228
+	htmlentityhexnumbermask = re.compile('(&#x(..);)')
+	entities = htmlentityhexnumbermask.finditer(in_html)
+	for x in entities:
+		in_html = in_html.replace(x.group(1), '&#' + str(int(x.group(2), 16)) + ';')
+
+	htmlentitynamemask = re.compile('(&(\D{1,5}?);)')
+	entitydict = {}
+	entities = htmlentitynamemask.finditer(in_html)
+	for x in entities:
+		# debug("[Callhtml2utf8] mask: found %s" %repr(x.group(2)))
+		entitydict[x.group(1)] = x.group(2)
+	for key, name in entitydict.items():
+		try:
+			entitydict[key] = htmlentitydefs.name2codepoint[str(name)]
+		except KeyError:
+			debug("[Callhtml2utf8] KeyError " + key + "/" + name)
+
+	htmlentitynumbermask = re.compile('(&#(\d{1,5}?);)')
+	entities = htmlentitynumbermask.finditer(in_html)
+	for x in entities:
+		# debug("[Callhtml2utf8] number: found %s" %x.group(1))
+		entitydict[x.group(1)] = x.group(2)
+	for key, codepoint in entitydict.items():
+		try:
+			uml = unichr(int(codepoint))
+			debug("[nrzuname] html2utf8: replace %s with %s in %s" %(repr(key), repr(uml), repr(in_html[0:20]+'...')))
+			in_html = in_html.replace(key, uml)
+		except ValueError, e:
+			debug("[nrzuname] html2utf8: ValueError " + repr(key) + ":" + repr(codepoint) + " (" + str(e) + ")")
+	return in_html
+
+def normalizePhoneNumber(intNo):
+	found = re.match('^\+(.*)', intNo)
+	if found:
+		intNo = '00' + found.group(1)
+	intNo = intNo.replace('(', '').replace(')', '').replace(' ', '').replace('/', '').replace('-', '')
+	found = re.match('.*?([0-9]+)', intNo)
+	if found:
+		return found.group(1)
+	else:
+		return '0'
+
+def out(number, caller):
+	debug("[nrzuname] out: %s: %s" %(number, caller))
+	found = re.match("NA: ([^;]*);VN: ([^;]*);STR: ([^;]*);HNR: ([^;]*);PLZ: ([^;]*);ORT: ([^;]*)", caller)
+	if not found:
+		return
+	( name, vorname, strasse, hnr, plz, ort ) = (found.group(1),
+											found.group(2),
+											found.group(3),
+											found.group(4),
+											found.group(5),
+											found.group(6)
+											)
+	if vorname:
+		name += ' ' + vorname
+	if strasse or hnr or plz or ort:
+		name += ', '
+	if strasse:
+		name += strasse
+	if hnr:
+		name += ' ' + hnr
+	if (strasse or hnr) and (plz or ort):
+		name += ', '
+	if plz and ort:
+		name += plz + ' ' + ort
+	elif plz:
+		name += plz
+	elif ort:
+		name += ort
+
+	print(name)
+
+def simpleout(number, caller): #@UnusedVariable # pylint: disable-msg=W0613
+	print caller
+
+try:
+	from Tools.Directories import resolveFilename, SCOPE_PLUGINS
+	reverseLookupFileName = resolveFilename(SCOPE_PLUGINS, "Extensions/FritzCall/reverselookup.xml")
+except ImportError:
+	reverseLookupFileName = "reverselookup.xml"
+
+countries = { }
+reverselookupMtime = 0
+
+class ReverseLookupAndNotifier:
+	def __init__(self, number, outputFunction=out, charset="cp1252", countrycode = "0049"):
+		debug("[ReverseLookupAndNotifier] reverse Lookup for %s!" %number)
+		self.number = number
+		self.outputFunction = outputFunction
+		self.caller = ""
+		self.currentWebsite = None
+		self.nextWebsiteNo = 0
+#===============================================================================
+# sorry does not work at all
+#		if not charset:
+#			charset = sys.getdefaultencoding()
+#			debug("[ReverseLookupAndNotifier] set charset from system: %s!" %charset)
+#===============================================================================
+		self.charset = charset
+
+		global reverselookupMtime
+		reverselookupMtimeAct = os.stat(reverseLookupFileName)[8]
+		if not countries or reverselookupMtimeAct > reverselookupMtime:
+			debug("[ReverseLookupAndNotifier] (Re-)Reading %s\n" %reverseLookupFileName)
+			reverselookupMtime = reverselookupMtimeAct
+			dom = parse(reverseLookupFileName)
+			for top in dom.getElementsByTagName("reverselookup"):
+				for country in top.getElementsByTagName("country"):
+					code = country.getAttribute("code").replace("+","00")
+					countries[code] = country.getElementsByTagName("website")
+
+		self.countrycode = countrycode
+
+		if re.match('^\+', self.number):
+			self.number = '00' + self.number[1:]
+
+		if self.number[:len(countrycode)] == countrycode:
+			self.number = '0' + self.number[len(countrycode):]
+
+		if number[0] != "0":
+			# self.caller = _("UNKNOWN")
+			self.notifyAndReset()
+			return
+
+		if self.number[:2] == "00":
+			if countries.has_key(self.number[:3]):	 #	e.g. USA
+				self.countrycode = self.number[:3]
+			elif countries.has_key(self.number[:4]):
+				self.countrycode = self.number[:4]
+			elif countries.has_key(self.number[:5]):
+				self.countrycode = self.number[:5]
+			else:
+				debug("[ReverseLookupAndNotifier] Country cannot be reverse handled")
+				# self.caller = _("UNKNOWN")
+				self.notifyAndReset()
+				return
+
+		if countries.has_key(self.countrycode):
+			debug("[ReverseLookupAndNotifier] Found website for reverse lookup")
+			self.websites = countries[self.countrycode]
+			self.nextWebsiteNo = 1
+			self.handleWebsite(self.websites[0])
+		else:
+			debug("[ReverseLookupAndNotifier] Country cannot be reverse handled")
+			# self.caller = _("UNKNOWN")
+			self.notifyAndReset()
+			return
+
+	def handleWebsite(self, website):
+		debug("[ReverseLookupAndNotifier] handleWebsite: " + website.getAttribute("name"))
+		if self.number[:2] == "00":
+			number = website.getAttribute("prefix") + self.number.replace(self.countrycode,"")
+		else:
+			number = self.number
+
+		url = website.getAttribute("url")
+		if re.search('$AREACODE', url) or re.search('$PFXAREACODE', url):
+			debug("[ReverseLookupAndNotifier] handleWebsite: (PFX)ARECODE cannot be handled")
+			# self.caller = _("UNKNOWN")
+			self.notifyAndReset()
+			return
+		#
+		# Apparently, there is no attribute called (pfx)areacode anymore
+		# So, this below will not work.
+		#
+		if re.search('\\$AREACODE', url) and website.hasAttribute("areacode"):
+			areaCodeLen = int(website.getAttribute("areacode"))
+			url = url.replace("$AREACODE", number[:areaCodeLen]).replace("$NUMBER", number[areaCodeLen:])
+		elif re.search('\\$PFXAREACODE', url) and website.hasAttribute("pfxareacode"):
+			areaCodeLen = int(website.getAttribute("pfxareacode"))
+			url = url.replace("$PFXAREACODE","%(pfxareacode)s").replace("$NUMBER", "%(number)s")
+			url = url % { 'pfxareacode': number[:areaCodeLen], 'number': number[areaCodeLen:] }
+		elif re.search('\\$NUMBER', url): 
+			url = url.replace("$NUMBER","%s") %number
+		else:
+			debug("[ReverseLookupAndNotifier] handleWebsite: cannot handle websites with no $NUMBER in url")
+			# self.caller = _("UNKNOWN")
+			self.notifyAndReset()
+			return
+		debug("[ReverseLookupAndNotifier] Url to query: " + url)
+		url = url.encode("UTF-8", "replace")
+		self.currentWebsite = website
+		getPage(url,
+			agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
+			).addCallback(self._gotPage).addErrback(self._gotError)
+
+
+	def _gotPage(self, page):
+		def cleanName(text):
+			item = text.replace("%20"," ").replace("&nbsp;"," ").replace("</b>","").replace(","," ").replace('\n',' ').replace('\t',' ')
+
+			item = html2unicode(item, self.charset)
+			#===================================================================
+			# try: # this works under Windows
+			#	item = item.encode('iso-8859-1')
+			# except UnicodeEncodeError:
+			#	debug("[ReverseLookupAndNotifier] cleanName: encoding problem with iso8859")
+			#	try: # this works under Enigma2
+			#		item = item.encode('utf-8')
+			#	except UnicodeEncodeError:
+			#		debug("[ReverseLookupAndNotifier] cleanName: encoding problem with utf-8")
+			#		try: # fall back
+			#			item = item.encode(self.charset)
+			#		except UnicodeEncodeError:
+			#			# debug("[ReverseLookupAndNotifier] cleanName: " + traceback.format_exc())
+			#			debug("[ReverseLookupAndNotifier] cleanName: encoding problem")
+			#===================================================================
+
+			newitem = item.replace("  ", " ")
+			while newitem != item:
+				item = newitem
+				newitem = item.replace("  ", " ")
+			return newitem.strip()
+	
+		debug("[ReverseLookupAndNotifier] _gotPage")
+		found = re.match('.*<meta http-equiv="Content-Type" content="(?:application/xhtml\+xml|text/html); charset=([^"]+)" />', page, re.S)
+		if found:
+			debug("[ReverseLookupAndNotifier] Charset: " + found.group(1))
+			page = page.replace("\xa0"," ").decode(found.group(1), "replace")
+		else:
+			debug("[ReverseLookupAndNotifier] Default Charset: iso-8859-1")
+			page = page.replace("\xa0"," ").decode("ISO-8859-1", "replace")
+
+		for entry in self.currentWebsite.getElementsByTagName("entry"):
+			#
+			# for the sites delivering fuzzy matches, we check against the returned number
+			#
+			pat = self.getPattern(entry, "number")
+			if pat:
+				pat = ".*?" + pat
+				debug("[ReverseLookupAndNotifier] _gotPage: look for number with '''%s'''" %( pat ))
+				found = re.match(pat, page, re.S|re.M)
+				if found:
+					if self.number[:2] == '00':
+						number = '0' + self.number[4:]
+					else:
+						number = self.number
+					if number != normalizePhoneNumber(found.group(1)):
+						debug("[ReverseLookupAndNotifier] _gotPage: got unequal number '''%s''' for '''%s'''" %(found.group(1), self.number))
+						continue
+			
+			# look for <firstname> and <lastname> match, if not there look for <name>, if not there break
+			name = ''
+			firstname = ''
+			street = ''
+			streetno = ''
+			city = ''
+			zipcode = ''
+			pat = self.getPattern(entry, "lastname")
+			if pat:
+				pat = ".*?" + pat
+				debug("[ReverseLookupAndNotifier] _gotPage: look for '''%s''' with '''%s'''" %( "lastname", pat ))
+				found = re.match(pat, page, re.S|re.M)
+				if found:
+					debug("[ReverseLookupAndNotifier] _gotPage: found for '''%s''': '''%s'''" %( "lastname", found.group(1)))
+					name = cleanName(found.group(1))
+
+					pat = self.getPattern(entry, "firstname")
+					if pat:
+						pat = ".*?" + pat
+						debug("[ReverseLookupAndNotifier] _gotPage: look for '''%s''' with '''%s'''" %( "firstname", pat ))
+						found = re.match(pat, page, re.S|re.M)
+						if found:
+							debug("[ReverseLookupAndNotifier] _gotPage: found for '''%s''': '''%s'''" %( "firstname", found.group(1)))
+						firstname = cleanName(found.group(1)).strip()
+
+			else:
+				pat = ".*?" + self.getPattern(entry, "name")
+				debug("[ReverseLookupAndNotifier] _gotPage: look for '''%s''' with '''%s'''" %( "name", pat ))
+				found = re.match(pat, page, re.S|re.M)
+				if found:
+					debug("[ReverseLookupAndNotifier] _gotPage: found for '''%s''': '''%s'''" %( "name", found.group(1)))
+					item = cleanName(found.group(1))
+					# debug("[ReverseLookupAndNotifier] _gotPage: name: " + item)
+					name = item.strip()
+					firstNameFirst = entry.getElementsByTagName('name')[0].getAttribute('swapFirstAndLastName')
+					# debug("[ReverseLookupAndNotifier] _gotPage: swapFirstAndLastName: " + firstNameFirst)
+					if firstNameFirst == 'true': # that means, the name is of the form "firstname lastname"
+						found = re.match('(.*?)\s+(.*)', name)
+						if found:
+							firstname = found.group(1)
+							name = found.group(2)
+				else:
+					debug("[ReverseLookupAndNotifier] _gotPage: no name found, skipping")
+					continue
+
+			if not name:
+				continue
+
+			pat = ".*?" + self.getPattern(entry, "city")
+			debug("[ReverseLookupAndNotifier] _gotPage: look for '''%s''' with '''%s'''" %( "city", pat ))
+			found = re.match(pat, page, re.S|re.M)
+			if found:
+				debug("[ReverseLookupAndNotifier] _gotPage: found for '''%s''': '''%s'''" %( "city", found.group(1)))
+				item = cleanName(found.group(1))
+				debug("[ReverseLookupAndNotifier] _gotPage: city: " + item)
+				city = item.strip()
+
+			if not city:
+				continue
+
+			pat = ".*?" + self.getPattern(entry, "zipcode")
+			debug("[ReverseLookupAndNotifier] _gotPage: look for '''%s''' with '''%s'''" %( "zipcode", pat ))
+			found = re.match(pat, page, re.S|re.M)
+			if found and found.group(1):
+				debug("[ReverseLookupAndNotifier] _gotPage: found for '''%s''': '''%s'''" %( "zipcode", found.group(1)))
+				item = cleanName(found.group(1))
+				debug("[ReverseLookupAndNotifier] _gotPage: zipcode: " + item)
+				zipcode = item.strip()
+
+			pat = ".*?" + self.getPattern(entry, "street")
+			debug("[ReverseLookupAndNotifier] _gotPage: look for '''%s''' with '''%s'''" %( "street", pat ))
+			found = re.match(pat, page, re.S|re.M)
+			if found and found.group(1):
+				debug("[ReverseLookupAndNotifier] _gotPage: found for '''%s''': '''%s'''" %( "street", found.group(1)))
+				item = cleanName(found.group(1))
+				debug("[ReverseLookupAndNotifier] _gotPage: street: " + item)
+				street = item.strip()
+				streetno = ''
+				found = re.match("^(.+) ([-\d]+)$", street, re.S)
+				if found:
+					street = found.group(1)
+					streetno = found.group(2)
+				#===============================================================
+				# else:
+				#	found = re.match("^(\d+) (.+)$", street, re.S)
+				#	if found:
+				#		street = found.group(2)
+				#		streetno = found.group(1)
+				#===============================================================
+
+			self.caller = "NA: %s;VN: %s;STR: %s;HNR: %s;PLZ: %s;ORT: %s" % ( name, firstname, street, streetno, zipcode, city )
+			debug("[ReverseLookupAndNotifier] _gotPage: Reverse lookup succeeded:\nName: %s" %(self.caller))
+
+			self.notifyAndReset()
+			return True
+		else:
+			self._gotError("[ReverseLookupAndNotifier] _gotPage: Nothing found at %s" %self.currentWebsite.getAttribute("name"))
+			return False
+			
+	def _gotError(self, error = ""):
+		debug("[ReverseLookupAndNotifier] _gotError - Error: %s" %error)
+		if self.nextWebsiteNo >= len(self.websites):
+			debug("[ReverseLookupAndNotifier] _gotError: I give up")
+			# self.caller = _("UNKNOWN")
+			self.notifyAndReset()
+			return
+		else:
+			debug("[ReverseLookupAndNotifier] _gotError: try next website")
+			self.nextWebsiteNo = self.nextWebsiteNo+1
+			self.handleWebsite(self.websites[self.nextWebsiteNo-1])
+
+	def getPattern(self, website, which):
+		pat1 = website.getElementsByTagName(which)
+		if len(pat1) == 0:
+			return ''
+		else:
+			if len(pat1) > 1:
+				debug("[ReverseLookupAndNotifier] getPattern: Something strange: more than one %s for website %s" %(which, website.getAttribute("name")))
+			return pat1[0].childNodes[0].data
+
+	def notifyAndReset(self):
+		debug("[ReverseLookupAndNotifier] notifyAndReset: Number: " + self.number + "; Caller: " + self.caller)
+		# debug("1: " + repr(self.caller))
+		if self.caller:
+			try:
+				debug("2: " + repr(self.caller))
+				self.caller = self.caller.encode(self.charset, 'replace')
+				debug("3: " + repr(self.caller))
+			except UnicodeDecodeError:
+				debug("[ReverseLookupAndNotifier] cannot encode?!?!")
+			# self.caller = unicode(self.caller)
+			# debug("4: " + repr(self.caller))
+			self.outputFunction(self.number, self.caller)
+		else:
+			self.outputFunction(self.number, "")
+		if __name__ == '__main__':
+			reactor.stop() #@UndefinedVariable # pylint: disable-msg=E1101
+
+if __name__ == '__main__':
+	cwd = os.path.dirname(sys.argv[0])
+	if (len(sys.argv) == 2):
+		# nrzuname.py Nummer
+		ReverseLookupAndNotifier(sys.argv[1], simpleout)
+		reactor.run() #@UndefinedVariable # pylint: disable-msg=E1101
+	elif (len(sys.argv) == 3):
+		# nrzuname.py Nummer Charset
+		setDebug(False)
+		ReverseLookupAndNotifier(sys.argv[1], out, sys.argv[2])
+		reactor.run() #@UndefinedVariable # pylint: disable-msg=E1101
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/plugin.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/plugin.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/plugin.py	(revision 12232)
@@ -0,0 +1,3422 @@
+# -*- coding: utf-8 -*-
+'''
+$Author: michael $
+$Revision: 643 $
+$Date: 2011-04-30 12:38:52 +0200 (Sa, 30. Apr 2011) $
+$Id: plugin.py 643 2011-04-30 10:38:52Z michael $
+'''
+from Screens.Screen import Screen
+from Screens.MessageBox import MessageBox
+from Screens.NumericalTextInputHelpDialog import NumericalTextInputHelpDialog
+from Screens.InputBox import InputBox
+from Screens import Standby
+from Screens.HelpMenu import HelpableScreen
+
+from enigma import eTimer, eSize, ePoint #@UnresolvedImport # pylint: disable=E0611
+from enigma import eDVBVolumecontrol
+from enigma import eBackgroundFileEraser
+#BgFileEraser = eBackgroundFileEraser.getInstance()
+#BgFileEraser.erase("blabla.txt")
+
+from Components.ActionMap import ActionMap
+from Components.Label import Label
+from Components.Button import Button
+from Components.Pixmap import Pixmap
+from Components.Sources.List import List
+from Components.config import config, ConfigSubsection, ConfigSelection, ConfigEnableDisable, getConfigListEntry, ConfigText, ConfigInteger
+from Components.ConfigList import ConfigListScreen
+from Components.Harddisk import harddiskmanager
+try:
+	from Components.config import ConfigPassword
+except ImportError:
+	ConfigPassword = ConfigText
+
+from Plugins.Plugin import PluginDescriptor
+from Tools import Notifications
+from Tools.NumericalTextInput import NumericalTextInput
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE, SCOPE_CONFIG, SCOPE_MEDIA
+from Tools.LoadPixmap import LoadPixmap
+from GlobalActions import globalActionMap # for muting
+
+from twisted.internet import reactor #@UnresolvedImport
+from twisted.internet.protocol import ReconnectingClientFactory #@UnresolvedImport
+from twisted.protocols.basic import LineReceiver #@UnresolvedImport
+from twisted.web.client import getPage #@UnresolvedImport
+
+from urllib import urlencode 
+import re, time, os, hashlib, traceback
+
+from nrzuname import ReverseLookupAndNotifier, html2unicode
+import FritzOutlookCSV, FritzLDIF
+from . import _, initDebug, debug #@UnresolvedImport # pylint: disable=E0611,F0401
+
+from enigma import getDesktop
+DESKTOP_WIDTH = getDesktop(0).size().width()
+DESKTOP_HEIGHT = getDesktop(0).size().height()
+
+#
+# this is pure magic.
+# It returns the first value, if HD (1280x720),
+# the second if SD (720x576),
+# else something scaled accordingly
+# if one of the parameters is -1, scale proportionally
+#
+def scaleH(y2, y1):
+	if y2 == -1:
+		y2 = y1*1280/720
+	elif y1 == -1:
+		y1 = y2*720/1280
+	return scale(y2, y1, 1280, 720, DESKTOP_WIDTH)
+def scaleV(y2, y1):
+	if y2 == -1:
+		y2 = y1*720/576
+	elif y1 == -1:
+		y1 = y2*576/720
+	return scale(y2, y1, 720, 576, DESKTOP_HEIGHT)
+def scale(y2, y1, x2, x1, x):
+	return (y2 - y1) * (x - x1) / (x2 - x1) + y1
+
+my_global_session = None
+
+config.plugins.FritzCall = ConfigSubsection()
+config.plugins.FritzCall.debug = ConfigEnableDisable(default=False)
+#config.plugins.FritzCall.muteOnCall = ConfigSelection(choices=[(None, _("no")), ("ring", _("on ring")), ("connect", _("on connect"))])
+#config.plugins.FritzCall.muteOnCall = ConfigSelection(choices=[(None, _("no")), ("ring", _("on ring"))])
+config.plugins.FritzCall.muteOnCall = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.hostname = ConfigText(default="fritz.box", fixed_size=False)
+config.plugins.FritzCall.afterStandby = ConfigSelection(choices=[("none", _("show nothing")), ("inList", _("show as list")), ("each", _("show each call"))])
+config.plugins.FritzCall.filter = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.filtermsn = ConfigText(default="", fixed_size=False)
+config.plugins.FritzCall.filtermsn.setUseableChars('0123456789,')
+config.plugins.FritzCall.filterCallList = ConfigEnableDisable(default=True)
+config.plugins.FritzCall.showOutgoing = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.timeout = ConfigInteger(default=15, limits=(0, 60))
+config.plugins.FritzCall.lookup = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.internal = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.fritzphonebook = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.phonebook = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.addcallers = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.enable = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.password = ConfigPassword(default="", fixed_size=False)
+config.plugins.FritzCall.extension = ConfigText(default='1', fixed_size=False)
+config.plugins.FritzCall.extension.setUseableChars('0123456789')
+config.plugins.FritzCall.showType = ConfigEnableDisable(default=True)
+config.plugins.FritzCall.showShortcut = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.showVanity = ConfigEnableDisable(default=False)
+config.plugins.FritzCall.prefix = ConfigText(default="", fixed_size=False)
+config.plugins.FritzCall.prefix.setUseableChars('0123456789')
+config.plugins.FritzCall.connectionVerbose = ConfigEnableDisable(default=True)
+config.plugins.FritzCall.ignoreUnknown = ConfigEnableDisable(default=False)
+
+
+def getMountedDevs():
+	def handleMountpoint(loc):
+		# debug("[FritzCall] handleMountpoint: %s" %repr(loc))
+		mp = loc[0]
+		while mp[-1] == '/':
+			mp = mp[:-1]
+		#=======================================================================
+		# if os.path.exists(os.path.join(mp, "PhoneBook.txt")):
+		#	if os.access(os.path.join(mp, "PhoneBook.txt"), os.W_OK):
+		#		desc = ' *'
+		#	else:
+		#		desc = ' -'
+		# else:
+		#	desc = ''
+		# desc = loc[1] + desc
+		#=======================================================================
+		desc = loc[1]
+		return (mp, desc + " (" + mp + ")")
+
+	mountedDevs = [(resolveFilename(SCOPE_CONFIG), _("Flash")),
+				   (resolveFilename(SCOPE_MEDIA, "cf"), _("Compact Flash")),
+				   (resolveFilename(SCOPE_MEDIA, "usb"), _("USB Device"))]
+	mountedDevs += map(lambda p: (p.mountpoint, (_(p.description) if p.description else "")), harddiskmanager.getMountedPartitions(True))
+	mediaDir = resolveFilename(SCOPE_MEDIA)
+	for p in os.listdir(mediaDir):
+		if os.path.join(mediaDir, p) not in [path[0] for path in mountedDevs]:
+			mountedDevs.append((os.path.join(mediaDir, p), _("Media directory")))
+	debug("[FritzCall] getMountedDevs1: %s" %repr(mountedDevs))
+	mountedDevs = filter(lambda path: os.path.isdir(path[0]) and os.access(path[0], os.W_OK|os.X_OK), mountedDevs)
+	# put this after the write/executable check, that is far too slow...
+	netDir = resolveFilename(SCOPE_MEDIA, "net")
+	if os.path.isdir(netDir):
+		mountedDevs += map(lambda p: (os.path.join(netDir, p), _("Network mount")), os.listdir(netDir))
+	mountedDevs = map(handleMountpoint, mountedDevs)
+	return mountedDevs
+config.plugins.FritzCall.phonebookLocation = ConfigSelection(choices=getMountedDevs())
+
+countryCodes = [
+	("0049", _("Germany")),
+	("0031", _("The Netherlands")),
+	("0033", _("France")),
+	("0039", _("Italy")),
+	("0041", _("Switzerland")),
+	("0043", _("Austria"))
+	]
+config.plugins.FritzCall.country = ConfigSelection(choices=countryCodes)
+
+FBF_ALL_CALLS = "."
+FBF_IN_CALLS = "1"
+FBF_MISSED_CALLS = "2"
+FBF_OUT_CALLS = "3"
+fbfCallsChoices = {FBF_ALL_CALLS: _("All calls"),
+				   FBF_IN_CALLS: _("Incoming calls"),
+				   FBF_MISSED_CALLS: _("Missed calls"),
+				   FBF_OUT_CALLS: _("Outgoing calls")
+				   }
+config.plugins.FritzCall.fbfCalls = ConfigSelection(choices=fbfCallsChoices)
+
+config.plugins.FritzCall.name = ConfigText(default="", fixed_size=False)
+config.plugins.FritzCall.number = ConfigText(default="", fixed_size=False)
+config.plugins.FritzCall.number.setUseableChars('0123456789')
+
+phonebook = None
+fritzbox = None
+
+avon = {}
+
+def initAvon():
+	avonFileName = resolveFilename(SCOPE_PLUGINS, "Extensions/FritzCall/avon.dat")
+	if os.path.exists(avonFileName):
+		for line in open(avonFileName):
+			line = line.decode("iso-8859-1").encode('utf-8')
+			if line[0] == '#':
+				continue
+			parts = line.split(':')
+			if len(parts) == 2:
+				avon[parts[0].replace('-','').replace('*','').replace('/','')] = parts[1]
+
+def resolveNumberWithAvon(number, countrycode):
+	if not number or number[0] != '0':
+		return ""
+		
+	countrycode = countrycode.replace('00','+')
+	if number[:2] == '00':
+		normNumber = '+' + number[2:]
+	elif number[:1] == '0':
+		normNumber = countrycode + number[1:]
+	else: # this should can not happen, but safety first
+		return ""
+	
+	# debug('normNumer: ' + normNumber)
+	for i in reversed(range(min(10, len(number)))):
+		if avon.has_key(normNumber[:i]):
+			return '[' + avon[normNumber[:i]].strip() + ']'
+	return ""
+
+def handleReverseLookupResult(name):
+	found = re.match("NA: ([^;]*);VN: ([^;]*);STR: ([^;]*);HNR: ([^;]*);PLZ: ([^;]*);ORT: ([^;]*)", name)
+	if found:
+		( name, firstname, street, streetno, zipcode, city ) = (found.group(1),
+												found.group(2),
+												found.group(3),
+												found.group(4),
+												found.group(5),
+												found.group(6)
+												)
+		if firstname:
+			name += ' ' + firstname
+		if street or streetno or zipcode or city:
+			name += ', '
+		if street:
+			name += street
+		if streetno:
+			name += ' ' + streetno
+		if (street or streetno) and (zipcode or city):
+			name += ', '
+		if zipcode and city:
+			name += zipcode + ' ' + city
+		elif zipcode:
+			name += zipcode
+		elif city:
+			name += city
+	return name
+
+from xml.dom.minidom import parse
+cbcInfos = {}
+def initCbC():
+	callbycallFileName = resolveFilename(SCOPE_PLUGINS, "Extensions/FritzCall/callbycall_world.xml")
+	if os.path.exists(callbycallFileName):
+		dom = parse(callbycallFileName)
+		for top in dom.getElementsByTagName("callbycalls"):
+			for cbc in top.getElementsByTagName("country"):
+				code = cbc.getAttribute("code").replace("+","00")
+				cbcInfos[code] = cbc.getElementsByTagName("callbycall")
+	else:
+		debug("[FritzCall] initCbC: callbycallFileName does not exist?!?!")
+
+def stripCbCPrefix(number, countrycode):
+	if number and number[:2] != "00" and cbcInfos.has_key(countrycode):
+		for cbc in cbcInfos[countrycode]:
+			if len(cbc.getElementsByTagName("length"))<1 or len(cbc.getElementsByTagName("prefix"))<1:
+				debug("[FritzCall] stripCbCPrefix: entries for " + countrycode + " %s invalid")
+				return number
+			length = int(cbc.getElementsByTagName("length")[0].childNodes[0].data)
+			prefix = cbc.getElementsByTagName("prefix")[0].childNodes[0].data
+			# if re.match('^'+prefix, number):
+			if number[:len(prefix)] == prefix:
+				return number[length:]
+	return number
+
+class FritzAbout(Screen):
+
+	def __init__(self, session):
+		textFieldWidth = scaleV(350, 250)
+		width = 5 + 150 + 20 + textFieldWidth + 5 + 175 + 5
+		height = 5 + 175 + 5 + 25 + 5
+		self.skin = """
+			<screen name="FritzAbout" position="center,center" size="%d,%d" title="About FritzCall" >
+				<widget name="text" position="175,%d" size="%d,%d" font="Regular;%d" />
+				<ePixmap position="5,37" size="150,110" pixmap="%s" transparent="1" alphatest="blend" />
+				<ePixmap position="%d,5" size="175,175" pixmap="%s" transparent="1" alphatest="blend" />
+				<widget name="url" position="20,185" size="%d,25" font="Regular;%d" />
+			</screen>""" % (
+							width, height, # size
+							(height-scaleV(150,130)) / 2, # text vertical position
+							textFieldWidth,
+							scaleV(150,130), # text height
+							scaleV(24,21), # text font size
+							resolveFilename(SCOPE_PLUGINS, "Extensions/FritzCall/images/fritz.png"), # 150x110
+							5 + 150 + 5 + textFieldWidth + 5, # qr code horizontal offset
+							resolveFilename(SCOPE_PLUGINS, "Extensions/FritzCall/images/website.png"), # 175x175
+							width-40, # url width
+							scaleV(24,21) # url font size
+							)
+		Screen.__init__(self, session)
+		self["aboutActions"] = ActionMap(["OkCancelActions"],
+		{
+		"cancel": self.exit,
+		"ok": self.exit,
+		}, -2)
+		self["text"] = Label(
+							"FritzCall Plugin" + "\n\n" +
+							"$Author: michael $"[1:-2] + "\n" +
+							"$Revision: 643 $"[1:-2] + "\n" + 
+							"$Date: 2011-04-30 12:38:52 +0200 (Sa, 30. Apr 2011) $"[1:23] + "\n"
+							)
+		self["url"] = Label("http://wiki.blue-panel.com/index.php/FritzCall")
+		self.onLayoutFinish.append(self.setWindowTitle)
+
+	def setWindowTitle(self):
+		# TRANSLATORS: this is a window title.
+		self.setTitle(_("About FritzCall"))
+
+	def exit(self):
+		self.close()
+
+FBF_boxInfo = 0
+FBF_upTime = 1
+FBF_ipAddress = 2
+FBF_wlanState = 3
+FBF_dslState = 4
+FBF_tamActive = 5
+FBF_dectActive = 6
+FBF_faxActive = 7
+FBF_rufumlActive = 8
+
+class FritzCallFBF:
+	def __init__(self):
+		debug("[FritzCallFBF] __init__")
+		self._callScreen = None
+		self._md5LoginTimestamp = None
+		self._md5Sid = '0000000000000000'
+		self._callTimestamp = 0
+		self._callList = []
+		self._callType = config.plugins.FritzCall.fbfCalls.value
+		self._phoneBookID = '0'
+		self.info = None # (boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive)
+		self.getInfo(None)
+		self.blacklist = ([], [])
+		self.readBlacklist()
+
+	def _notify(self, text):
+		debug("[FritzCallFBF] notify: " + text)
+		self._md5LoginTimestamp = None
+		if self._callScreen:
+			debug("[FritzCallFBF] notify: try to close callScreen")
+			self._callScreen.close()
+			self._callScreen = None
+		Notifications.AddNotification(MessageBox, text, type=MessageBox.TYPE_ERROR, timeout=config.plugins.FritzCall.timeout.value)
+			
+	def _login(self, callback=None):
+		debug("[FritzCallFBF] _login")
+		if self._callScreen:
+			self._callScreen.updateStatus(_("login"))
+		if self._md5LoginTimestamp and ((time.time() - self._md5LoginTimestamp) < float(9.5*60)) and self._md5Sid != '0000000000000000': # new login after 9.5 minutes inactivity 
+			debug("[FritzCallFBF] _login: renew timestamp: " + time.ctime(self._md5LoginTimestamp) + " time: " + time.ctime())
+			self._md5LoginTimestamp = time.time()
+			callback(None)
+		else:
+			debug("[FritzCallFBF] _login: not logged in or outdated login")
+			# http://fritz.box/cgi-bin/webcm?getpage=../html/login_sid.xml
+			parms = urlencode({'getpage':'../html/login_sid.xml'})
+			url = "http://%s/cgi-bin/webcm" % (config.plugins.FritzCall.hostname.value)
+			debug("[FritzCallFBF] _login: '" + url + "' parms: '" + parms + "'")
+			getPage(url,
+				method="POST",
+				headers={'Content-Type': "application/x-www-form-urlencoded", 'Content-Length': str(len(parms))
+						}, postdata=parms).addCallback(lambda x: self._md5Login(callback,x)).addErrback(lambda x:self._oldLogin(callback,x))
+
+	def _oldLogin(self, callback, error): 
+		debug("[FritzCallFBF] _oldLogin: " + repr(error))
+		self._md5LoginTimestamp = None
+		if config.plugins.FritzCall.password.value != "":
+			parms = "login:command/password=%s" % (config.plugins.FritzCall.password.value)
+			url = "http://%s/cgi-bin/webcm" % (config.plugins.FritzCall.hostname.value)
+			debug("[FritzCallFBF] _oldLogin: '" + url + "' parms: '" + parms + "'")
+			getPage(url,
+				method="POST",
+				agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+				headers={'Content-Type': "application/x-www-form-urlencoded", 'Content-Length': str(len(parms))
+						}, postdata=parms).addCallback(self._gotPageLogin).addCallback(callback).addErrback(self._errorLogin)
+		elif callback:
+			debug("[FritzCallFBF] _oldLogin: no password, calling " + repr(callback))
+			callback(None)
+
+	def _md5Login(self, callback, sidXml):
+		def buildResponse(challenge, text):
+			debug("[FritzCallFBF] _md5Login7buildResponse: challenge: " + challenge + ' text: ' + text)
+			text = (challenge + '-' + text).decode('utf-8','ignore').encode('utf-16-le')
+			for i in range(len(text)):
+				if ord(text[i]) > 255:
+					text[i] = '.'
+			md5 = hashlib.md5()
+			md5.update(text)
+			debug("[FritzCallFBF] md5Login/buildResponse: " + md5.hexdigest())
+			return challenge + '-' + md5.hexdigest()
+
+		debug("[FritzCallFBF] _md5Login")
+		found = re.match('.*<SID>([^<]*)</SID>', sidXml, re.S)
+		if found:
+			self._md5Sid = found.group(1)
+			debug("[FritzCallFBF] _md5Login: SID "+ self._md5Sid)
+		else:
+			debug("[FritzCallFBF] _md5Login: no sid! That must be an old firmware.")
+			self._oldLogin(callback, 'No error')
+			return
+
+		debug("[FritzCallFBF] _md5Login: renew timestamp: " + time.ctime(self._md5LoginTimestamp) + " time: " + time.ctime())
+		self._md5LoginTimestamp = time.time()
+		if sidXml.find('<iswriteaccess>0</iswriteaccess>') != -1:
+			debug("[FritzCallFBF] _md5Login: logging in")
+			found = re.match('.*<Challenge>([^<]*)</Challenge>', sidXml, re.S)
+			if found:
+				challenge = found.group(1)
+				debug("[FritzCallFBF] _md5Login: challenge " + challenge)
+			else:
+				challenge = None
+				debug("[FritzCallFBF] _md5Login: login necessary and no challenge! That is terribly wrong.")
+			parms = urlencode({
+							'getpage':'../html/de/menus/menu2.html', # 'var:pagename':'home', 'var:menu':'home', 
+							'login:command/response': buildResponse(challenge, config.plugins.FritzCall.password.value),
+							})
+			url = "http://%s/cgi-bin/webcm" % (config.plugins.FritzCall.hostname.value)
+			debug("[FritzCallFBF] _md5Login: '" + url + "' parms: '" + parms + "'")
+			getPage(url,
+				method="POST",
+				agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+				headers={'Content-Type': "application/x-www-form-urlencoded", 'Content-Length': str(len(parms))
+						}, postdata=parms).addCallback(self._gotPageLogin).addCallback(callback).addErrback(self._errorLogin)
+		elif callback: # we assume value 1 here, no login necessary
+			debug("[FritzCallFBF] _md5Login: no login necessary")
+			callback(None)
+
+	def _gotPageLogin(self, html):
+		if self._callScreen:
+			self._callScreen.updateStatus(_("login verification"))
+		debug("[FritzCallFBF] _gotPageLogin: verify login")
+		start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+		if start != -1:
+			start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+			text = _("FRITZ!Box - Error logging in\n\n") + html[start : html.find('</p>', start)]
+			self._notify(text)
+		else:
+			if self._callScreen:
+				self._callScreen.updateStatus(_("login ok"))
+
+		found = re.match('.*<input type="hidden" name="sid" value="([^\"]*)"', html, re.S)
+		if found:
+			self._md5Sid = found.group(1)
+			debug("[FritzCallFBF] _gotPageLogin: found sid: " + self._md5Sid)
+
+	def _errorLogin(self, error):
+		global fritzbox
+		debug("[FritzCallFBF] _errorLogin: %s" % (error))
+		text = _("FRITZ!Box - Error logging in: %s\nDisabling plugin.") % error.getErrorMessage()
+		# config.plugins.FritzCall.enable.value = False
+		fritzbox = None
+		self._notify(text)
+
+	def _logout(self):
+		if self._md5LoginTimestamp:
+			self._md5LoginTimestamp = None
+			parms = urlencode({
+							'getpage':'../html/de/menus/menu2.html', # 'var:pagename':'home', 'var:menu':'home', 
+							'login:command/logout':'bye bye Fritz'
+							})
+			url = "http://%s/cgi-bin/webcm" % (config.plugins.FritzCall.hostname.value)
+			debug("[FritzCallFBF] logout: '" + url + "' parms: '" + parms + "'")
+			getPage(url,
+				method="POST",
+				agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+				headers={'Content-Type': "application/x-www-form-urlencoded", 'Content-Length': str(len(parms))
+						}, postdata=parms).addErrback(self._errorLogout)
+
+	def _errorLogout(self, error):
+		debug("[FritzCallFBF] _errorLogout: %s" % (error))
+		text = _("FRITZ!Box - Error logging out: %s") % error.getErrorMessage()
+		self._notify(text)
+
+	def loadFritzBoxPhonebook(self):
+		debug("[FritzCallFBF] loadFritzBoxPhonebook")
+		if config.plugins.FritzCall.fritzphonebook.value:
+			self._phoneBookID = '0'
+			debug("[FritzCallFBF] loadFritzBoxPhonebook: logging in")
+			self._login(self._loadFritzBoxPhonebook)
+
+	def _loadFritzBoxPhonebook(self, html):
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	self._errorLoad('Login: ' + found.group(1))
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._errorLoad('Login: ' + html[start, html.find('</p>', start)])
+				return
+		parms = urlencode({
+						'getpage':'../html/de/menus/menu2.html',
+						'var:lang':'de',
+						'var:pagename':'fonbuch',
+						'var:menu':'fon',
+						'sid':self._md5Sid,
+						'telcfg:settings/Phonebook/Books/Select':self._phoneBookID, # this selects always the first phonbook
+						})
+		url = "http://%s/cgi-bin/webcm" % (config.plugins.FritzCall.hostname.value)
+		debug("[FritzCallFBF] _loadFritzBoxPhonebook: '" + url + "' parms: '" + parms + "'")
+		getPage(url,
+			method="POST",
+			agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+			headers={'Content-Type': "application/x-www-form-urlencoded", 'Content-Length': str(len(parms))
+					}, postdata=parms).addCallback(self._parseFritzBoxPhonebook).addErrback(self._errorLoad)
+
+	def _parseFritzBoxPhonebook(self, html):
+		debug("[FritzCallFBF] _parseFritzBoxPhonebook")
+
+		# first, let us get the charset
+		found = re.match('.*<meta http-equiv=content-type content="text/html; charset=([^"]*)">', html, re.S)
+		if found:
+			charset = found.group(1)
+			debug("[FritzCallFBF] _parseFritzBoxPhonebook: found charset: " + charset)
+			if charset != "utf-8":
+				html = html2unicode(html.decode(charset), charset).encode('utf-8') # this looks silly, but has to be
+		else: # this is kind of emergency conversion...
+			try:
+				debug("[FritzCallFBF] _parseFritzBoxPhonebook: try charset utf-8")
+				charset = 'utf-8'
+				html = html2unicode(html.decode('utf-8'), 'utf-8').encode('utf-8') # this looks silly, but has to be
+			except UnicodeDecodeError:
+				debug("[FritzCallFBF] _parseFritzBoxPhonebook: try charset iso-8859-1")
+				charset = 'iso-8859-1'
+				html = html2unicode(html.decode('iso-8859-1'), 'iso-8859-1').encode('utf-8') # this looks silly, but has to be
+
+		# if re.search('document.write\(TrFon1\(\)', html):
+		if html.find('document.write(TrFon1()') != -1:
+			#===============================================================================
+			#				 New Style: 7270 (FW 54.04.58, 54.04.63-11941, 54.04.70, 54.04.74-14371, 54.04.76, PHONE Labor 54.04.80-16624)
+			#							7170 (FW 29.04.70) 22.03.2009
+			#							7141 (FW 40.04.68) 22.03.2009
+			#	We expect one line with TrFonName followed by several lines with
+			#	TrFonNr(Type,Number,Shortcut,Vanity), which all belong to the name in TrFonName.
+			#===============================================================================
+			debug("[FritzCallFBF] _parseFritzBoxPhonebook: discovered newer firmware")
+			found = re.match('.*<input type="hidden" name="telcfg:settings/Phonebook/Books/Name(\d+)" value="[Dd]reambox" id="uiPostPhonebookName\d+" disabled>', html, re.S)
+			if found:
+				phoneBookID = found.group(1)
+				debug("[FritzCallFBF] _parseFritzBoxPhonebook: found dreambox phonebook with id: " + phoneBookID)
+				if self._phoneBookID != phoneBookID:
+					self._phoneBookID = phoneBookID
+					debug("[FritzCallFBF] _parseFritzBoxPhonebook: reload phonebook")
+					self._loadFritzBoxPhonebook(self._phoneBookID) # reload with dreambox phonebook
+					return
+
+			entrymask = re.compile('(TrFonName\("[^"]+", "[^"]+", "[^"]*"(?:, "[^"]*")?\);.*?)document.write\(TrFon1\(\)', re.S)
+			entries = entrymask.finditer(html)
+			for entry in entries:
+				# TrFonName (id, name, category)
+				# TODO: replace re.match?
+				found = re.match('TrFonName\("[^"]*", "([^"]+)", "[^"]*"(?:, "[^"]*")?\);', entry.group(1))
+				if found:
+					debug("[FritzCallFBF] _parseFritzBoxPhonebook: name: %s" %found.group(1))
+					name = found.group(1).replace(',','').strip()
+				else:
+					debug("[FritzCallFBF] _parseFritzBoxPhonebook: could not find name")
+					continue
+				# TrFonNr (type, rufnr, code, vanity)
+				detailmask = re.compile('TrFonNr\("([^"]*)", "([^"]*)", "([^"]*)", "([^"]*)"\);', re.S)
+				details = detailmask.finditer(entry.group(1))
+				for found in details:
+					thisnumber = found.group(2).strip()
+					if not thisnumber:
+						debug("[FritzCallFBF] Ignoring entry with empty number for '''%s'''" % (name))
+						continue
+					else:
+						thisname = name
+						callType = found.group(1)
+						if config.plugins.FritzCall.showType.value:
+							if callType == "mobile":
+								thisname = thisname + " (" + _("mobile") + ")"
+							elif callType == "home":
+								thisname = thisname + " (" + _("home") + ")"
+							elif callType == "work":
+								thisname = thisname + " (" + _("work") + ")"
+
+						if config.plugins.FritzCall.showShortcut.value and found.group(3):
+							thisname = thisname + ", " + _("Shortcut") + ": " + found.group(3)
+						if config.plugins.FritzCall.showVanity.value and found.group(4):
+							thisname = thisname + ", " + _("Vanity") + ": " + found.group(4)
+
+						debug("[FritzCallFBF] Adding '''%s''' with '''%s''' from FRITZ!Box Phonebook!" % (thisname.strip(), thisnumber))
+						# Beware: strings in phonebook.phonebook have to be in utf-8!
+						phonebook.phonebook[thisnumber] = thisname
+
+		# elif re.search('document.write\(TrFon\(', html):
+		elif html.find('document.write(TrFon(') != -1:
+			#===============================================================================
+			#				Old Style: 7050 (FW 14.04.33)
+			#	We expect one line with TrFon(No,Name,Number,Shortcut,Vanity)
+			#   Encoding should be plain Ascii...
+			#===============================================================================				
+			entrymask = re.compile('TrFon\("[^"]*", "([^"]*)", "([^"]*)", "([^"]*)", "([^"]*)"\)', re.S)
+			entries = entrymask.finditer(html)
+			for found in entries:
+				name = found.group(1).strip().replace(',','')
+				# debug("[FritzCallFBF] pos: %s name: %s" %(found.group(0),name))
+				thisnumber = found.group(2).strip()
+				if config.plugins.FritzCall.showShortcut.value and found.group(3):
+					name = name + ", " + _("Shortcut") + ": " + found.group(3)
+				if config.plugins.FritzCall.showVanity.value and found.group(4):
+					name = name + ", " + _("Vanity") + ": " + found.group(4)
+				if thisnumber:
+					# name = name.encode('utf-8')
+					debug("[FritzCallFBF] Adding '''%s''' with '''%s''' from FRITZ!Box Phonebook!" % (name, thisnumber))
+					# Beware: strings in phonebook.phonebook have to be in utf-8!
+					phonebook.phonebook[thisnumber] = name
+				else:
+					debug("[FritzCallFBF] ignoring empty number for %s" % name)
+				continue
+		elif self._md5Sid == '0000000000000000': # retry, it could be a race condition
+			debug("[FritzCallFBF] _parseFritzBoxPhonebook: retry loading phonebook")
+			self.loadFritzBoxPhonebook()
+		else:
+			self._notify(_("Could not parse FRITZ!Box Phonebook entry"))
+
+	def _errorLoad(self, error):
+		debug("[FritzCallFBF] _errorLoad: %s" % (error))
+		text = _("FRITZ!Box - Could not load phonebook: %s") % error.getErrorMessage()
+		self._notify(text)
+
+	def getCalls(self, callScreen, callback, callType):
+		#
+		# call sequence must be:
+		# - login
+		# - getPage -> _gotPageLogin
+		# - loginCallback (_getCalls)
+		# - getPage -> _getCalls1
+		debug("[FritzCallFBF] getCalls")
+		self._callScreen = callScreen
+		self._callType = callType
+		if (time.time() - self._callTimestamp) > 180: 
+			debug("[FritzCallFBF] getCalls: outdated data, login and get new ones: " + time.ctime(self._callTimestamp) + " time: " + time.ctime())
+			self._callTimestamp = time.time()
+			self._login(lambda x:self._getCalls(callback, x))
+		elif not self._callList:
+			debug("[FritzCallFBF] getCalls: time is ok, but no callList")
+			self._getCalls1(callback)
+		else:
+			debug("[FritzCallFBF] getCalls: time is ok, callList is ok")
+			self._gotPageCalls(callback)
+
+	def _getCalls(self, callback, html):
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	self._errorCalls('Login: ' + found.group(1))
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._errorCalls('Login: ' + html[start, html.find('</p>', start)])
+				return
+		#
+		# we need this to fill Anrufliste.csv
+		# http://repeater1/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=foncalls
+		#
+		debug("[FritzCallFBF] _getCalls")
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	text = _("FRITZ!Box - Error logging in: %s") + found.group(1)
+			#	self._notify(text)
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._notify(_("FRITZ!Box - Error logging in: %s") + html[start, html.find('</p>', start)])
+				return
+
+		if self._callScreen:
+			self._callScreen.updateStatus(_("preparing"))
+		parms = urlencode({'getpage':'../html/de/menus/menu2.html', 'var:lang':'de', 'var:pagename':'foncalls', 'var:menu':'fon', 'sid':self._md5Sid})
+		url = "http://%s/cgi-bin/webcm?%s" % (config.plugins.FritzCall.hostname.value, parms)
+		getPage(url).addCallback(lambda x:self._getCalls1(callback)).addErrback(self._errorCalls) #@UnusedVariable # pylint: disable=W0613
+
+	def _getCalls1(self, callback):
+		#
+		# finally we should have successfully lgged in and filled the csv
+		#
+		debug("[FritzCallFBF] _getCalls1")
+		if self._callScreen:
+			self._callScreen.updateStatus(_("finishing"))
+		parms = urlencode({'getpage':'../html/de/FRITZ!Box_Anrufliste.csv', 'sid':self._md5Sid})
+		url = "http://%s/cgi-bin/webcm?%s" % (config.plugins.FritzCall.hostname.value, parms)
+		getPage(url).addCallback(lambda x:self._gotPageCalls(callback, x)).addErrback(self._errorCalls)
+
+	def _gotPageCalls(self, callback, csv=""):
+		def resolveNumber(number, default=None):
+			if number.isdigit():
+				if config.plugins.FritzCall.internal.value and len(number) > 3 and number[0] == "0":
+					number = number[1:]
+				# strip CbC prefix
+				number = stripCbCPrefix(number, config.plugins.FritzCall.country.value)
+				if config.plugins.FritzCall.prefix.value and number and number[0] != '0':		# should only happen for outgoing
+					number = config.plugins.FritzCall.prefix.value + number
+				name = phonebook.search(number)
+				if name:
+					#===========================================================
+					# found = re.match('(.*?)\n.*', name)
+					# if found:
+					#	name = found.group(1)
+					#===========================================================
+					end = name.find('\n')
+					if end != -1:
+						name = name[:end]
+					number = name
+				elif default:
+					number = default
+				else:
+					name = resolveNumberWithAvon(number, config.plugins.FritzCall.country.value)
+					if name:
+						number = number + ' ' + name
+			elif number == "":
+				number = _("UNKNOWN")
+			# if len(number) > 20: number = number[:20]
+			return number
+
+		if csv:
+			debug("[FritzCallFBF] _gotPageCalls: got csv, setting callList")
+			if self._callScreen:
+				self._callScreen.updateStatus(_("done"))
+			if csv.find('Melden Sie sich mit dem Kennwort der FRITZ!Box an') != -1:
+				text = _("You need to set the password of the FRITZ!Box\nin the configuration dialog to display calls\n\nIt could be a communication issue, just try again.")
+				# self.session.open(MessageBox, text, MessageBox.TYPE_ERROR, timeout=config.plugins.FritzCall.timeout.value)
+				self._notify(text)
+				return
+
+			csv = csv.decode('iso-8859-1', 'replace').encode('utf-8', 'replace')
+			lines = csv.splitlines()
+			self._callList = lines
+		elif self._callList:
+			debug("[FritzCallFBF] _gotPageCalls: got no csv, but have callList")
+			if self._callScreen:
+				self._callScreen.updateStatus(_("done, using last list"))
+			lines = self._callList
+		else:
+			debug("[FritzCallFBF] _gotPageCalls: got no csv, no callList, laving")
+			return
+			
+		callListL = []
+		if config.plugins.FritzCall.filter.value and config.plugins.FritzCall.filterCallList.value:
+			filtermsns = map(lambda x: x.strip(), config.plugins.FritzCall.filtermsn.value.split(","))
+			debug("[FritzCallFBF] _gotPageCalls: filtermsns %s" % (repr(filtermsns)))
+
+		# Typ;Datum;Name;Rufnummer;Nebenstelle;Eigene Rufnummer;Dauer
+		# 0  ;1    ;2   ;3        ;4          ;5               ;6
+		lines = map(lambda line: line.split(';'), lines)
+		lines = filter(lambda line: (len(line)==7 and (line[0]=="Typ" or self._callType == '.' or line[0] == self._callType)), lines)
+
+		for line in lines:
+			# debug("[FritzCallFBF] _gotPageCalls: line %s" % (line))
+			direct = line[0]
+			date = line[1]
+			length = line[6]
+			if config.plugins.FritzCall.phonebook.value and line[2]:
+				remote = resolveNumber(line[3], line[2] + " (FBF)")
+			else:
+				remote = resolveNumber(line[3], line[2])
+			here = line[5]
+			start = here.find('Internet: ')
+			if start != -1:
+				start += len('Internet: ')
+				here = here[start:]
+			else:
+				here = line[5]
+			if direct != "Typ" and config.plugins.FritzCall.filter.value and config.plugins.FritzCall.filterCallList.value:
+				# debug("[FritzCallFBF] _gotPageCalls: check %s" % (here))
+				if here not in filtermsns:
+					# debug("[FritzCallFBF] _gotPageCalls: skip %s" % (here))
+					continue
+			here = resolveNumber(here, line[4])
+
+			number = stripCbCPrefix(line[3], config.plugins.FritzCall.country.value)
+			if config.plugins.FritzCall.prefix.value and number and number[0] != '0':		# should only happen for outgoing
+				number = config.plugins.FritzCall.prefix.value + number
+			callListL.append((number, date, direct, remote, length, here))
+
+		if callback:
+			# debug("[FritzCallFBF] _gotPageCalls call callback with\n" + text
+			callback(callListL)
+		self._callScreen = None
+
+	def _errorCalls(self, error):
+		debug("[FritzCallFBF] _errorCalls: %s" % (error))
+		text = _("FRITZ!Box - Could not load calls: %s") % error.getErrorMessage()
+		self._notify(text)
+
+	def dial(self, number):
+		''' initiate a call to number '''
+		self._login(lambda x: self._dial(number, x))
+		
+	def _dial(self, number, html):
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	self._errorDial('Login: ' + found.group(1))
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._errorDial('Login: ' + html[start, html.find('</p>', start)])
+				return
+		url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+		parms = urlencode({
+			'getpage':'../html/de/menus/menu2.html',
+			'var:pagename':'fonbuch',
+			'var:menu':'home',
+			'telcfg:settings/UseClickToDial':'1',
+			'telcfg:settings/DialPort':config.plugins.FritzCall.extension.value,
+			'telcfg:command/Dial':number,
+			'sid':self._md5Sid
+			})
+		debug("[FritzCallFBF] dial url: '" + url + "' parms: '" + parms + "'")
+		getPage(url,
+			method="POST",
+			agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+			headers={
+					'Content-Type': "application/x-www-form-urlencoded",
+					'Content-Length': str(len(parms))},
+			postdata=parms).addCallback(self._okDial).addErrback(self._errorDial)
+
+	def _okDial(self, html): #@UnusedVariable # pylint: disable=W0613
+		debug("[FritzCallFBF] okDial")
+
+	def _errorDial(self, error):
+		debug("[FritzCallFBF] errorDial: $s" % error)
+		text = _("FRITZ!Box - Dialling failed: %s") % error.getErrorMessage()
+		self._notify(text)
+
+	def changeWLAN(self, statusWLAN):
+		''' get status info from FBF '''
+		debug("[FritzCallFBF] changeWLAN start")
+		if not statusWLAN or (statusWLAN != '1' and statusWLAN != '0'):
+			return
+		self._login(lambda x: self._changeWLAN(statusWLAN, x))
+		
+	def _changeWLAN(self, statusWLAN, html):
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	self._errorChangeWLAN('Login: ' + found.group(1))
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._errorChangeWLAN('Login: ' + html[start, html.find('</p>', start)])
+				return
+		url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+		parms = urlencode({
+			'getpage':'../html/de/menus/menu2.html',
+			'var:lang':'de',
+			'var:pagename':'wlan',
+			'var:menu':'wlan',
+			'wlan:settings/ap_enabled':str(statusWLAN),
+			'sid':self._md5Sid
+			})
+		debug("[FritzCallFBF] changeWLAN url: '" + url + "' parms: '" + parms + "'")
+		getPage(url,
+			method="POST",
+			agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+			headers={
+					'Content-Type': "application/x-www-form-urlencoded",
+					'Content-Length': str(len(parms))},
+			postdata=parms).addCallback(self._okChangeWLAN).addErrback(self._errorChangeWLAN)
+
+	def _okChangeWLAN(self, html): #@UnusedVariable # pylint: disable=W0613
+		debug("[FritzCallFBF] _okChangeWLAN")
+
+	def _errorChangeWLAN(self, error):
+		debug("[FritzCallFBF] _errorChangeWLAN: $s" % error)
+		text = _("FRITZ!Box - Failed changing WLAN: %s") % error.getErrorMessage()
+		self._notify(text)
+
+	def changeMailbox(self, whichMailbox):
+		''' switch mailbox on/off '''
+		debug("[FritzCallFBF] changeMailbox start: " + str(whichMailbox))
+		self._login(lambda x: self._changeMailbox(whichMailbox, x))
+
+	def _changeMailbox(self, whichMailbox, html):
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	self._errorChangeMailbox('Login: ' + found.group(1))
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._errorChangeMailbox('Login: ' + html[start, html.find('</p>', start)])
+				return
+		debug("[FritzCallFBF] _changeMailbox")
+		url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+		if whichMailbox == -1:
+			for i in range(5):
+				if self.info[FBF_tamActive][i+1]:
+					state = '0'
+				else:
+					state = '1'
+				parms = urlencode({
+					'tam:settings/TAM'+str(i)+'/Active':state,
+					'sid':self._md5Sid
+					})
+				debug("[FritzCallFBF] changeMailbox url: '" + url + "' parms: '" + parms + "'")
+				getPage(url,
+					method="POST",
+					agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+					headers={
+							'Content-Type': "application/x-www-form-urlencoded",
+							'Content-Length': str(len(parms))},
+					postdata=parms).addCallback(self._okChangeMailbox).addErrback(self._errorChangeMailbox)
+		elif whichMailbox > 4:
+			debug("[FritzCallFBF] changeMailbox invalid mailbox number")
+		else:
+			if self.info[FBF_tamActive][whichMailbox+1]:
+				state = '0'
+			else:
+				state = '1'
+			parms = urlencode({
+				'tam:settings/TAM'+str(whichMailbox)+'/Active':state,
+				'sid':self._md5Sid
+				})
+			debug("[FritzCallFBF] changeMailbox url: '" + url + "' parms: '" + parms + "'")
+			getPage(url,
+				method="POST",
+				agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+				headers={
+						'Content-Type': "application/x-www-form-urlencoded",
+						'Content-Length': str(len(parms))},
+				postdata=parms).addCallback(self._okChangeMailbox).addErrback(self._errorChangeMailbox)
+
+	def _okChangeMailbox(self, html): #@UnusedVariable # pylint: disable=W0613
+		debug("[FritzCallFBF] _okChangeMailbox")
+
+	def _errorChangeMailbox(self, error):
+		debug("[FritzCallFBF] _errorChangeMailbox: $s" % error)
+		text = _("FRITZ!Box - Failed changing Mailbox: %s") % error.getErrorMessage()
+		self._notify(text)
+
+	def getInfo(self, callback):
+		''' get status info from FBF '''
+		debug("[FritzCallFBF] getInfo")
+		self._login(lambda x:self._getInfo(callback, x))
+		
+	def _getInfo(self, callback, html):
+		# http://192.168.178.1/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=home&var:menu=home
+		debug("[FritzCallFBF] _getInfo: verify login")
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	self._errorGetInfo('Login: ' + found.group(1))
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._errorGetInfo('Login: ' + html[start, html.find('</p>', start)])
+				return
+
+		url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+		parms = urlencode({
+			'getpage':'../html/de/menus/menu2.html',
+			'var:lang':'de',
+			'var:pagename':'home',
+			'var:menu':'home',
+			'sid':self._md5Sid
+			})
+		debug("[FritzCallFBF] _getInfo url: '" + url + "' parms: '" + parms + "'")
+		getPage(url,
+			method="POST",
+			agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+			headers={
+					'Content-Type': "application/x-www-form-urlencoded",
+					'Content-Length': str(len(parms))},
+			postdata=parms).addCallback(lambda x:self._okGetInfo(callback,x)).addErrback(self._errorGetInfo)
+
+	def _okGetInfo(self, callback, html):
+		def readInfo(html):
+			if self.info:
+				(boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive) = self.info
+			else:
+				(boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive) = (None, None, None, None, None, None, None, None, None)
+
+			debug("[FritzCallFBF] _okGetInfo/readinfo")
+			found = re.match('.*<table class="tborder" id="tProdukt">\s*<tr>\s*<td style="padding-top:2px;">([^<]*)</td>\s*<td style="padding-top:2px;text-align:right;">\s*([^\s]*)\s*</td>', html, re.S)
+			if found:
+				boxInfo = found.group(1)+ ', ' + found.group(2)
+				boxInfo = boxInfo.replace('&nbsp;',' ')
+				# debug("[FritzCallFBF] _okGetInfo Boxinfo: " + boxInfo)
+			else:
+				found = re.match('.*<p class="ac">([^<]*)</p>', html, re.S)
+				if found:
+					# debug("[FritzCallFBF] _okGetInfo Boxinfo: " + found.group(1))
+					boxInfo = found.group(1)
+
+			if html.find('home_coninf.txt') != -1:
+				url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+				parms = urlencode({
+					'getpage':'../html/de/home/home_coninf.txt',
+					'sid':self._md5Sid
+					})
+				# debug("[FritzCallFBF] get coninfo: url: '" + url + "' parms: '" + parms + "'")
+				getPage(url,
+					method="POST",
+					agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+					headers={
+							'Content-Type': "application/x-www-form-urlencoded",
+							'Content-Length': str(len(parms))},
+					postdata=parms).addCallback(lambda x:self._okSetConInfo(callback,x)).addErrback(self._errorGetInfo)
+			else:
+				found = re.match('.*if \(isNaN\(jetzt\)\)\s*return "";\s*var str = "([^"]*)";', html, re.S)
+				if found:
+					# debug("[FritzCallFBF] _okGetInfo Uptime: " + found.group(1))
+					upTime = found.group(1)
+				else:
+					found = re.match('.*str = g_pppSeit \+"([^<]*)<br>"\+mldIpAdr;', html, re.S)
+					if found:
+						# debug("[FritzCallFBF] _okGetInfo Uptime: " + found.group(1))
+						upTime = found.group(1)
+	
+				found = re.match(".*IpAdrDisplay\('([.\d]+)'\)", html, re.S)
+				if found:
+					# debug("[FritzCallFBF] _okGetInfo IpAdrDisplay: " + found.group(1))
+					ipAddress = found.group(1)
+
+			if html.find('g_tamActive') != -1:
+				entries = re.compile('if \("(\d)" == "1"\) {\s*g_tamActive \+= 1;\s*}', re.S).finditer(html)
+				tamActive = [0, False, False, False, False, False]
+				i = 1
+				for entry in entries:
+					state = entry.group(1)
+					if state == '1':
+						tamActive[0] += 1
+						tamActive[i] = True
+					i += 1
+				# debug("[FritzCallFBF] _okGetInfo tamActive: " + str(tamActive))
+		
+			if html.find('home_dect.txt') != -1:
+				url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+				parms = urlencode({
+					'getpage':'../html/de/home/home_dect.txt',
+					'sid':self._md5Sid
+					})
+				# debug("[FritzCallFBF] get coninfo: url: '" + url + "' parms: '" + parms + "'")
+				getPage(url,
+					method="POST",
+					agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+					headers={
+							'Content-Type': "application/x-www-form-urlencoded",
+							'Content-Length': str(len(parms))},
+					postdata=parms).addCallback(lambda x:self._okSetDect(callback,x)).addErrback(self._errorGetInfo)
+			else:
+				if html.find('countDect2') != -1:
+					entries = re.compile('if \("1" == "1"\) countDect2\+\+;', re.S).findall(html)
+					dectActive = len(entries)
+					# debug("[FritzCallFBF] _okGetInfo dectActive: " + str(dectActive))
+
+			found = re.match('.*var g_intFaxActive = "0";\s*if \("1" != ""\) {\s*g_intFaxActive = "1";\s*}\s*', html, re.S)
+			if found:
+				faxActive = True
+				# debug("[FritzCallFBF] _okGetInfo faxActive")
+
+			if html.find('cntRufumleitung') != -1:
+				entries = re.compile('mode = "1";\s*ziel = "[^"]+";\s*if \(mode == "1" \|\| ziel != ""\)\s*{\s*g_RufumleitungAktiv = true;', re.S).findall(html)
+				rufumlActive = len(entries)
+				entries = re.compile('if \("([^"]*)"=="([^"]*)"\) isAllIncoming\+\+;', re.S).finditer(html)
+				isAllIncoming = 0
+				for entry in entries:
+					# debug("[FritzCallFBF] _okGetInfo rufumlActive add isAllIncoming")
+					if entry.group(1) == entry.group(2):
+						isAllIncoming += 1
+				if isAllIncoming == 2 and rufumlActive > 0:
+					rufumlActive -= 1
+				# debug("[FritzCallFBF] _okGetInfo rufumlActive: " + str(rufumlActive))
+
+			# /cgi-bin/webcm?getpage=../html/de/home/home_dsl.txt
+			# { "dsl_carrier_state": "5", "umts_enabled": "0", "ata_mode": "0", "isusbgsm": "", "dsl_ds_nrate": "3130", "dsl_us_nrate": "448", "hint_dsl_no_cable": "0", "wds_enabled": "0", "wds_hop": "0", "isata": "" } 
+			if html.find('home_dsl.txt') != -1:
+				url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+				parms = urlencode({
+					'getpage':'../html/de/home/home_dsl.txt',
+					'sid':self._md5Sid
+					})
+				# debug("[FritzCallFBF] get dsl state: url: '" + url + "' parms: '" + parms + "'")
+				getPage(url,
+					method="POST",
+					agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+					headers={
+							'Content-Type': "application/x-www-form-urlencoded",
+							'Content-Length': str(len(parms))},
+					postdata=parms).addCallback(lambda x:self._okSetDslState(callback,x)).addErrback(self._errorGetInfo)
+			else:
+				found = re.match('.*function DslStateDisplay \(state\){\s*var state = "(\d+)";', html, re.S)
+				if found:
+					# debug("[FritzCallFBF] _okGetInfo DslState: " + found.group(1))
+					dslState = [ found.group(1), None ] # state, speed
+					found = re.match('.*function DslStateDisplay \(state\){\s*var state = "\d+";.*?if \("3130" != "0"\) str = "([^"]*)";', html, re.S)
+					if found:
+						# debug("[FritzCallFBF] _okGetInfo DslSpeed: " + found.group(1).strip())
+						dslState[1] = found.group(1).strip()
+		
+			# /cgi-bin/webcm?getpage=../html/de/home/home_wlan.txt
+			# { "ap_enabled": "1", "active_stations": "0", "encryption": "4", "wireless_stickandsurf_enabled": "0", "is_macfilter_active": "0", "wmm_enabled": "1", "wlan_state": [ "end" ] }
+			if html.find('home_wlan.txt') != -1:
+				url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+				parms = urlencode({
+					'getpage':'../html/de/home/home_wlan.txt',
+					'sid':self._md5Sid
+					})
+				# debug("[FritzCallFBF] get wlan state: url: '" + url + "' parms: '" + parms + "'")
+				getPage(url,
+					method="POST",
+					agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+					headers={
+							'Content-Type': "application/x-www-form-urlencoded",
+							'Content-Length': str(len(parms))},
+					postdata=parms).addCallback(lambda x:self._okSetWlanState(callback,x)).addErrback(self._errorGetInfo)
+			else:
+				found = re.match('.*function WlanStateLed \(state\){.*?return StateLed\("(\d+)"\);\s*}', html, re.S)
+				if found:
+					# debug("[FritzCallFBF] _okGetInfo WlanState: " + found.group(1))
+					wlanState = [ found.group(1), 0, 0 ] # state, encryption, number of devices
+					found = re.match('.*var (?:g_)?encryption = "(\d+)";', html, re.S)
+					if found:
+						# debug("[FritzCallFBF] _okGetInfo WlanEncrypt: " + found.group(1))
+						wlanState[1] = found.group(1)
+
+			return (boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive)
+
+		debug("[FritzCallFBF] _okGetInfo")
+		info = readInfo(html)
+		debug("[FritzCallFBF] _okGetInfo info: " + str(info))
+		self.info = info
+		if callback:
+			callback(info)
+
+	def _okSetDect(self, callback, html):
+		# debug("[FritzCallFBF] _okSetDect: " + html)
+		# found = re.match('.*"connection_status":"(\d+)".*"connection_ip":"([.\d]+)".*"connection_detail":"([^"]+)".*"connection_uptime":"([^"]+)"', html, re.S)
+		if html.find('"dect_enabled": "1"') != -1:
+			# debug("[FritzCallFBF] _okSetDect: dect_enabled")
+			found = re.match('.*"dect_device_list":.*\[([^\]]*)\]', html, re.S)
+			if found:
+				# debug("[FritzCallFBF] _okSetDect: dect_device_list: %s" %(found.group(1)))
+				entries = re.compile('"1"', re.S).findall(found.group(1))
+				dectActive = len(entries)
+				(boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dummy, faxActive, rufumlActive) = self.info
+				self.info = (boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive)
+				debug("[FritzCallFBF] _okSetDect info: " + str(self.info))
+		if callback:
+			callback(self.info)
+
+	def _okSetConInfo(self, callback, html):
+		# debug("[FritzCallFBF] _okSetConInfo: " + html)
+		# found = re.match('.*"connection_status":"(\d+)".*"connection_ip":"([.\d]+)".*"connection_detail":"([^"]+)".*"connection_uptime":"([^"]+)"', html, re.S)
+		found = re.match('.*"connection_ip": "([.\d]+)".*"connection_uptime": "([^"]+)"', html, re.S)
+		if found:
+			# debug("[FritzCallFBF] _okSetConInfo: connection_ip: %s upTime: %s" %( found.group(1), found.group(2)))
+			ipAddress = found.group(1)
+			upTime = found.group(2)
+			(boxInfo, dummy, dummy, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive) = self.info
+			self.info = (boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive)
+			debug("[FritzCallFBF] _okSetWlanState info: " + str(self.info))
+		else:
+			found = re.match('.*_ip": "([.\d]+)".*"connection_uptime": "([^"]+)"', html, re.S)
+			if found:
+				# debug("[FritzCallFBF] _okSetConInfo: _ip: %s upTime: %s" %( found.group(1), found.group(2)))
+				ipAddress = found.group(1)
+				upTime = found.group(2)
+				(boxInfo, dummy, dummy, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive) = self.info
+				self.info = (boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive)
+				debug("[FritzCallFBF] _okSetWlanState info: " + str(self.info))
+		if callback:
+			callback(self.info)
+
+	def _okSetWlanState(self, callback, html):
+		# debug("[FritzCallFBF] _okSetWlanState: " + html)
+		found = re.match('.*"ap_enabled": "(\d+)"', html, re.S)
+		if found:
+			# debug("[FritzCallFBF] _okSetWlanState: ap_enabled: " + found.group(1))
+			wlanState = [ found.group(1), None, None ]
+			found = re.match('.*"encryption": "(\d+)"', html, re.S)
+			if found:
+				# debug("[FritzCallFBF] _okSetWlanState: encryption: " + found.group(1))
+				wlanState[1] = found.group(1)
+			found = re.match('.*"active_stations": "(\d+)"', html, re.S)
+			if found:
+				# debug("[FritzCallFBF] _okSetWlanState: active_stations: " + found.group(1))
+				wlanState[2] = found.group(1)
+			(boxInfo, upTime, ipAddress, dummy, dslState, tamActive, dectActive, faxActive, rufumlActive) = self.info
+			self.info = (boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive)
+			debug("[FritzCallFBF] _okSetWlanState info: " + str(self.info))
+		if callback:
+			callback(self.info)
+
+	def _okSetDslState(self, callback, html):
+		# debug("[FritzCallFBF] _okSetDslState: " + html)
+		found = re.match('.*"dsl_carrier_state": "(\d+)"', html, re.S)
+		if found:
+			# debug("[FritzCallFBF] _okSetDslState: dsl_carrier_state: " + found.group(1))
+			dslState = [ found.group(1), None ]
+			found = re.match('.*"dsl_ds_nrate": "(\d+)"', html, re.S)
+			if found:
+				# debug("[FritzCallFBF] _okSetDslState: dsl_ds_nrate: " + found.group(1))
+				dslState[1] = found.group(1)
+			found = re.match('.*"dsl_us_nrate": "(\d+)"', html, re.S)
+			if found:
+				# debug("[FritzCallFBF] _okSetDslState: dsl_us_nrate: " + found.group(1))
+				dslState[1] = dslState[1] + '/' + found.group(1)
+			(boxInfo, upTime, ipAddress, wlanState, dummy, tamActive, dectActive, faxActive, rufumlActive) = self.info
+			self.info = (boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive)
+			debug("[FritzCallFBF] _okSetDslState info: " + str(self.info))
+		if callback:
+			callback(self.info)
+
+	def _errorGetInfo(self, error):
+		debug("[FritzCallFBF] _errorGetInfo: %s" % (error))
+		text = _("FRITZ!Box - Error getting status: %s") % error.getErrorMessage()
+		self._notify(text)
+		# linkP = open("/tmp/FritzCall_errorGetInfo.htm", "w")
+		# linkP.write(error)
+		# linkP.close()
+
+	def reset(self):
+		self._login(self._reset)
+
+	def _reset(self, html):
+		# POSTDATA=getpage=../html/reboot.html&errorpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=home&var:errorpagename=home&var:menu=home&var:pagemaster=&time:settings/time=1242207340%2C-120&var:tabReset=0&logic:command/reboot=../gateway/commands/saveconfig.html
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	self._errorReset('Login: ' + found.group(1))
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._errorReset('Login: ' + html[start, html.find('</p>', start)])
+				return
+		if self._callScreen:
+			self._callScreen.close()
+		url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+		parms = urlencode({
+			'getpage':'../html/reboot.html',
+			'var:lang':'de',
+			'var:pagename':'reset',
+			'var:menu':'system',
+			'logic:command/reboot':'../gateway/commands/saveconfig.html',
+			'sid':self._md5Sid
+			})
+		debug("[FritzCallFBF] _reset url: '" + url + "' parms: '" + parms + "'")
+		getPage(url,
+			method="POST",
+			agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+			headers={
+					'Content-Type': "application/x-www-form-urlencoded",
+					'Content-Length': str(len(parms))},
+			postdata=parms)
+
+	def _okReset(self, html): #@UnusedVariable # pylint: disable=W0613
+		debug("[FritzCallFBF] _okReset")
+
+	def _errorReset(self, error):
+		debug("[FritzCallFBF] _errorReset: %s" % (error))
+		text = _("FRITZ!Box - Error resetting: %s") % error.getErrorMessage()
+		self._notify(text)
+
+	def readBlacklist(self):
+		self._login(self._readBlacklist)
+		
+	def _readBlacklist(self, html):
+		if html:
+			#===================================================================
+			# found = re.match('.*<p class="errorMessage">FEHLER:&nbsp;([^<]*)</p>', html, re.S)
+			# if found:
+			#	self._errorBlacklist('Login: ' + found.group(1))
+			#	return
+			#===================================================================
+			start = html.find('<p class="errorMessage">FEHLER:&nbsp;')
+			if start != -1:
+				start = start + len('<p class="errorMessage">FEHLER:&nbsp;')
+				self._errorBlacklist('Login: ' + html[start, html.find('</p>', start)])
+				return
+		# http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=sperre
+		url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+		parms = urlencode({
+			'getpage':'../html/de/menus/menu2.html',
+			'var:lang':'de',
+			'var:pagename':'sperre',
+			'var:menu':'fon',
+			'sid':self._md5Sid
+			})
+		debug("[FritzCallFBF] _readBlacklist url: '" + url + "' parms: '" + parms + "'")
+		getPage(url,
+			method="POST",
+			agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5",
+			headers={
+					'Content-Type': "application/x-www-form-urlencoded",
+					'Content-Length': str(len(parms))},
+			postdata=parms).addCallback(self._okBlacklist).addErrback(self._errorBlacklist)
+
+	def _okBlacklist(self, html):
+		debug("[FritzCallFBF] _okBlacklist")
+		entries = re.compile('<script type="text/javascript">document.write\(Tr(Out|In)\("\d+", "(\d+)", "\w*"\)\);</script>', re.S).finditer(html)
+		self.blacklist = ([], [])
+		for entry in entries:
+			if entry.group(1) == "In":
+				self.blacklist[0].append(entry.group(2))
+			else:
+				self.blacklist[1].append(entry.group(2))
+		debug("[FritzCallFBF] _okBlacklist: %s" % repr(self.blacklist))
+
+	def _errorBlacklist(self, error):
+		debug("[FritzCallFBF] _errorBlacklist: %s" % (error))
+		text = _("FRITZ!Box - Error getting blacklist: %s") % error.getErrorMessage()
+		self._notify(text)
+
+#===============================================================================
+#	def hangup(self):
+#		''' hangup call on port; not used for now '''
+#		url = "http://%s/cgi-bin/webcm" % config.plugins.FritzCall.hostname.value
+#		parms = urlencode({
+#			'id':'uiPostForm',
+#			'name':'uiPostForm',
+#			'login:command/password': config.plugins.FritzCall.password.value,
+#			'telcfg:settings/UseClickToDial':'1',
+#			'telcfg:settings/DialPort':config.plugins.FritzCall.extension.value,
+#			'telcfg:command/Hangup':'',
+#			'sid':self._md5Sid
+#			})
+#		debug("[FritzCallFBF] hangup url: '" + url + "' parms: '" + parms + "'")
+#		getPage(url,
+#			method="POST",
+#			headers={
+#					'Content-Type': "application/x-www-form-urlencoded",
+#					'Content-Length': str(len(parms))},
+#			postdata=parms)
+#===============================================================================
+
+fritzbox = None
+
+class FritzMenu(Screen, HelpableScreen):
+	def __init__(self, session):
+		fontSize = scaleV(24, 21) # indeed this is font size +2
+		noButtons = 2 # reset, wlan
+
+		if not fritzbox or not fritzbox.info:
+			return
+
+		if fritzbox.info[FBF_tamActive]:
+			noButtons += 1 # toggle mailboxes
+		width = max(DESKTOP_WIDTH - scaleH(500, 250), noButtons*140+(noButtons+1)*10)
+		# boxInfo 2 lines, gap, internet 2 lines, gap, dsl/wlan each 1 line, gap, buttons
+		height = 5 + 2*fontSize + 10 + 2*fontSize + 10 + 2*fontSize + 10 + 40 + 5
+		if fritzbox.info[FBF_tamActive] is not None:
+			height += fontSize
+		if fritzbox.info[FBF_dectActive] is not None:
+			height += fontSize
+		if fritzbox.info[FBF_faxActive] is not None:
+			height += fontSize
+		if fritzbox.info[FBF_rufumlActive] is not None:
+			height += fontSize
+		buttonsGap = (width-noButtons*140)/(noButtons+1)
+		buttonsVPos = height-40-5
+
+		varLinePos = 4
+		if fritzbox.info[FBF_tamActive] is not None:
+			mailboxLine = """
+				<widget name="FBFMailbox" position="%d,%d" size="%d,%d" font="Regular;%d" />
+				<widget name="mailbox_inactive" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="mailbox_active" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="skin_default/buttons/yellow.png" transparent="1" alphatest="on" />
+				<widget name="key_yellow" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+				""" % (
+						40, 5+2*fontSize+10+varLinePos*fontSize+10, # position mailbox
+						width-40-20, fontSize, # size mailbox
+						fontSize-2,
+						"skin_default/buttons/button_green_off.png",
+						20, 5+2*fontSize+10+varLinePos*fontSize+10+(fontSize-16)/2, # position button mailbox
+						"skin_default/buttons/button_green.png",
+						20, 5+2*fontSize+10+varLinePos*fontSize+10+(fontSize-16)/2, # position button mailbox
+						noButtons*buttonsGap+(noButtons-1)*140, buttonsVPos,
+						noButtons*buttonsGap+(noButtons-1)*140, buttonsVPos,
+				)
+			varLinePos += 1
+		else:
+			mailboxLine = ""
+
+		if fritzbox.info[FBF_dectActive] is not None:
+			dectLine = """
+				<widget name="FBFDect" position="%d,%d" size="%d,%d" font="Regular;%d" />
+				<widget name="dect_inactive" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="dect_active" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				""" % (
+						40, 5+2*fontSize+10+varLinePos*fontSize+10, # position dect
+						width-40-20, fontSize, # size dect
+						fontSize-2,
+						"skin_default/buttons/button_green_off.png",
+						20, 5+2*fontSize+10+varLinePos*fontSize+10+(fontSize-16)/2, # position button dect
+						"skin_default/buttons/button_green.png",
+						20, 5+2*fontSize+10+varLinePos*fontSize+10+(fontSize-16)/2, # position button dect
+				)
+			varLinePos += 1
+		else:
+			dectLine = ""
+
+		if fritzbox.info[FBF_faxActive] is not None:
+			faxLine = """
+				<widget name="FBFFax" position="%d,%d" size="%d,%d" font="Regular;%d" />
+				<widget name="fax_inactive" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="fax_active" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				""" % (
+						40, 5+2*fontSize+10+varLinePos*fontSize+10, # position dect
+						width-40-20, fontSize, # size dect
+						fontSize-2,
+						"skin_default/buttons/button_green_off.png",
+						20, 5+2*fontSize+10+varLinePos*fontSize+10+(fontSize-16)/2, # position button dect
+						"skin_default/buttons/button_green.png",
+						20, 5+2*fontSize+10+varLinePos*fontSize+10+(fontSize-16)/2, # position button dect
+				)
+			varLinePos += 1
+		else:
+			faxLine = ""
+
+		if fritzbox.info[FBF_rufumlActive] is not None:
+			rufumlLine = """
+				<widget name="FBFRufuml" position="%d,%d" size="%d,%d" font="Regular;%d" />
+				<widget name="rufuml_inactive" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="rufuml_active" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				""" % (
+						40, 5+2*fontSize+10+varLinePos*fontSize+10, # position dect
+						width-40-20, fontSize, # size dect
+						fontSize-2,
+						"skin_default/buttons/button_green_off.png",
+						20, 5+2*fontSize+10+varLinePos*fontSize+10+(fontSize-16)/2, # position button dect
+						"skin_default/buttons/button_green.png",
+						20, 5+2*fontSize+10+varLinePos*fontSize+10+(fontSize-16)/2, # position button dect
+				)
+			varLinePos += 1
+		else:
+			rufumlLine = ""
+	
+		self.skin = """
+			<screen name="FritzMenu" position="center,center" size="%d,%d" title="FRITZ!Box Fon Status" >
+				<widget name="FBFInfo" position="%d,%d" size="%d,%d" font="Regular;%d" />
+				<widget name="FBFInternet" position="%d,%d" size="%d,%d" font="Regular;%d" />
+				<widget name="internet_inactive" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="internet_active" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="FBFDsl" position="%d,%d" size="%d,%d" font="Regular;%d" />
+				<widget name="dsl_inactive" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="dsl_active" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="FBFWlan" position="%d,%d" size="%d,%d" font="Regular;%d" />
+				<widget name="wlan_inactive" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				<widget name="wlan_active" pixmap="%s" position="%d,%d" size="15,16" transparent="1" alphatest="on"/>
+				%s
+				%s
+				%s
+				%s
+				<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<widget name="key_red" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+				<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<widget name="key_green" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+			</screen>""" % (
+						width, height, # size
+						40, 5, # position info
+						width-2*40, 2*fontSize, # size info
+						fontSize-2,
+						40, 5+2*fontSize+10, # position internet
+						width-40, 2*fontSize, # size internet
+						fontSize-2,
+						"skin_default/buttons/button_green_off.png",
+						20, 5+2*fontSize+10+(fontSize-16)/2, # position button internet
+						"skin_default/buttons/button_green.png",
+						20, 5+2*fontSize+10+(fontSize-16)/2, # position button internet
+						40, 5+2*fontSize+10+2*fontSize+10, # position dsl
+						width-40-20, fontSize, # size dsl
+						fontSize-2,
+						"skin_default/buttons/button_green_off.png",
+						20, 5+2*fontSize+10+2*fontSize+10+(fontSize-16)/2, # position button dsl
+						"skin_default/buttons/button_green.png",
+						20, 5+2*fontSize+10+2*fontSize+10+(fontSize-16)/2, # position button dsl
+						40, 5+2*fontSize+10+3*fontSize+10, # position wlan
+						width-40-20, fontSize, # size wlan
+						fontSize-2,
+						"skin_default/buttons/button_green_off.png",
+						20, 5+2*fontSize+10+3*fontSize+10+(fontSize-16)/2, # position button wlan
+						"skin_default/buttons/button_green.png",
+						20, 5+2*fontSize+10+3*fontSize+10+(fontSize-16)/2, # position button wlan
+						mailboxLine,
+						dectLine,
+						faxLine,
+						rufumlLine,
+						buttonsGap, buttonsVPos, "skin_default/buttons/red.png", buttonsGap, buttonsVPos,
+						buttonsGap+140+buttonsGap, buttonsVPos, "skin_default/buttons/green.png", buttonsGap+140+buttonsGap, buttonsVPos,
+						)
+
+		Screen.__init__(self, session)
+		HelpableScreen.__init__(self)
+		# TRANSLATORS: keep it short, this is a button
+		self["key_red"] = Button(_("Reset"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_green"] = Button(_("Toggle WLAN"))
+		self._mailboxActive = False
+		if fritzbox.info[FBF_tamActive] is not None:
+			# TRANSLATORS: keep it short, this is a button
+			self["key_yellow"] = Button(_("Toggle Mailbox"))
+			self["menuActions"] = ActionMap(["OkCancelActions", "ColorActions", "NumberActions", "EPGSelectActions"],
+											{
+											"cancel": self._exit,
+											"ok": self._exit,
+											"red": self._reset,
+											"green": self._toggleWlan,
+											"yellow": (lambda: self._toggleMailbox(-1)),
+											"0": (lambda: self._toggleMailbox(0)),
+											"1": (lambda: self._toggleMailbox(1)),
+											"2": (lambda: self._toggleMailbox(2)),
+											"3": (lambda: self._toggleMailbox(3)),
+											"4": (lambda: self._toggleMailbox(4)),
+											"info": self._getInfo,
+											}, -2)
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["menuActions"], "ColorActions", [("yellow", _("Toggle all mailboxes"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["menuActions"], "NumberActions", [("0", _("Toggle 1. mailbox"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["menuActions"], "NumberActions", [("1", _("Toggle 2. mailbox"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["menuActions"], "NumberActions", [("2", _("Toggle 3. mailbox"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["menuActions"], "NumberActions", [("3", _("Toggle 4. mailbox"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["menuActions"], "NumberActions", [("4", _("Toggle 5. mailbox"))]))
+			self["FBFMailbox"] = Label(_('Mailbox'))
+			self["mailbox_inactive"] = Pixmap()
+			self["mailbox_active"] = Pixmap()
+			self["mailbox_active"].hide()
+		else:
+			self["menuActions"] = ActionMap(["OkCancelActions", "ColorActions", "EPGSelectActions"],
+											{
+											"cancel": self._exit,
+											"ok": self._exit,
+											"green": self._toggleWlan,
+											"red": self._reset,
+											"info": self._getInfo,
+											}, -2)
+
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["menuActions"], "OkCancelActions", [("cancel", _("Quit"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["menuActions"], "OkCancelActions", [("ok", _("Quit"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["menuActions"], "ColorActions", [("green", _("Toggle WLAN"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["menuActions"], "ColorActions", [("red", _("Reset"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["menuActions"], "EPGSelectActions", [("info", _("Refresh status"))]))
+
+		self["FBFInfo"] = Label(_('Getting status from FRITZ!Box Fon...'))
+
+		self["FBFInternet"] = Label('Internet')
+		self["internet_inactive"] = Pixmap()
+		self["internet_active"] = Pixmap()
+		self["internet_active"].hide()
+
+		self["FBFDsl"] = Label('DSL')
+		self["dsl_inactive"] = Pixmap()
+		self["dsl_inactive"].hide()
+		self["dsl_active"] = Pixmap()
+		self["dsl_active"].hide()
+
+		self["FBFWlan"] = Label('WLAN ')
+		self["wlan_inactive"] = Pixmap()
+		self["wlan_inactive"].hide()
+		self["wlan_active"] = Pixmap()
+		self["wlan_active"].hide()
+		self._wlanActive = False
+
+		if fritzbox.info[FBF_dectActive] is not None: 
+			self["FBFDect"] = Label('DECT')
+			self["dect_inactive"] = Pixmap()
+			self["dect_active"] = Pixmap()
+			self["dect_active"].hide()
+
+		if fritzbox.info[FBF_faxActive] is not None: 
+			self["FBFFax"] = Label('Fax')
+			self["fax_inactive"] = Pixmap()
+			self["fax_active"] = Pixmap()
+			self["fax_active"].hide()
+
+		if fritzbox.info[FBF_rufumlActive] is not None: 
+			self["FBFRufuml"] = Label(_('Call redirection'))
+			self["rufuml_inactive"] = Pixmap()
+			self["rufuml_active"] = Pixmap()
+			self["rufuml_active"].hide()
+
+		self._timer = eTimer()
+		self._timer.callback.append(self._getInfo)
+		self.onShown.append(lambda: self._timer.start(5000))
+		self.onHide.append(self._timer.stop)
+		self._getInfo()
+		self.onLayoutFinish.append(self.setWindowTitle)
+
+	def setWindowTitle(self):
+		# TRANSLATORS: this is a window title.
+		self.setTitle(_("FRITZ!Box Fon Status"))
+
+	def _getInfo(self):
+		fritzbox.getInfo(self._fillMenu)
+
+	def _fillMenu(self, status):
+		(boxInfo, upTime, ipAddress, wlanState, dslState, tamActive, dectActive, faxActive, rufumlActive) = status
+		self._wlanActive = (wlanState[0] == '1')
+		self._mailboxActive = False
+		try:
+			if not self.has_key("FBFInfo"): # screen is closed already
+				return
+
+			if boxInfo:
+				self["FBFInfo"].setText(boxInfo.replace(', ', '\n'))
+			else:
+				self["FBFInfo"].setText('BoxInfo ' + _('Status not available'))
+
+			if ipAddress:
+				if upTime:
+					self["FBFInternet"].setText('Internet ' + _('IP Address:') + ' ' + ipAddress + '\n' + _('Connected since') + ' ' + upTime)
+				else:
+					self["FBFInternet"].setText('Internet ' + _('IP Address:') + ' ' + ipAddress)
+				self["internet_inactive"].hide()
+				self["internet_active"].show()
+			else:
+				self["internet_active"].hide()
+				self["internet_inactive"].show()
+
+			if dslState:
+				if dslState[0] == '5':
+					self["dsl_inactive"].hide()
+					self["dsl_active"].show()
+					if dslState[1]:
+						self["FBFDsl"].setText('DSL ' + dslState[1])
+				else:
+					self["dsl_active"].hide()
+					self["dsl_inactive"].show()
+			else:
+				self["FBFDsl"].setText('DSL ' + _('Status not available'))
+				self["dsl_active"].hide()
+				self["dsl_inactive"].hide()
+
+			if wlanState:
+				if wlanState[0 ] == '1':
+					self["wlan_inactive"].hide()
+					self["wlan_active"].show()
+					message = 'WLAN'
+					if wlanState[1] == '0':
+						message += ' ' + _('not encrypted')
+					else:
+						message += ' ' + _('encrypted')
+					if wlanState[2]:
+						if wlanState[2] == '0':
+							message = message + ', ' + _('no device active')
+						elif wlanState[2] == '1':
+							message = message + ', ' + _('one device active')
+						else:
+							message = message + ', ' + wlanState[2] + ' ' + _('devices active')
+					self["FBFWlan"].setText(message)
+				else:
+					self["wlan_active"].hide()
+					self["wlan_inactive"].show()
+					self["FBFWlan"].setText('WLAN')
+			else:
+				self["FBFWlan"].setText('WLAN ' + _('Status not available'))
+				self["wlan_active"].hide()
+				self["wlan_inactive"].hide()
+
+			if fritzbox.info[FBF_tamActive]:
+				if  not tamActive or tamActive[0] == 0:
+					self._mailboxActive = False
+					self["mailbox_active"].hide()
+					self["mailbox_inactive"].show()
+					self["FBFMailbox"].setText(_('No mailbox active'))
+				else:
+					self._mailboxActive = True
+					message = '('
+					for i in range(5):
+						if tamActive[i+1]:
+							message = message + str(i) + ','
+					message = message[:-1] + ')'
+					self["mailbox_inactive"].hide()
+					self["mailbox_active"].show()
+					if tamActive[0] == 1:
+						self["FBFMailbox"].setText(_('One mailbox active') + ' ' + message)
+					else:
+						self["FBFMailbox"].setText(str(tamActive[0]) + ' ' + _('mailboxes active') + ' ' + message)
+	
+			if fritzbox.info[FBF_dectActive] and dectActive:
+				self["dect_inactive"].hide()
+				self["dect_active"].show()
+				if dectActive == 0:
+					self["FBFDect"].setText(_('No DECT phone registered'))
+				else:
+					if dectActive == 1:
+						self["FBFDect"].setText(_('One DECT phone registered'))
+					else:
+						self["FBFDect"].setText(str(dectActive) + ' ' + _('DECT phones registered'))
+
+			if fritzbox.info[FBF_faxActive] and faxActive:
+				self["fax_inactive"].hide()
+				self["fax_active"].show()
+				self["FBFFax"].setText(_('Software fax active'))
+
+			if fritzbox.info[FBF_rufumlActive] is not None and rufumlActive is not None:
+				if rufumlActive == 0:
+					self["rufuml_active"].hide()
+					self["rufuml_inactive"].show()
+					self["FBFRufuml"].setText(_('No call redirection active'))
+				else:
+					self["rufuml_inactive"].hide()
+					self["rufuml_active"].show()
+					if rufumlActive == 1:
+						self["FBFRufuml"].setText(_('One call redirection active'))
+					else:
+						self["FBFRufuml"].setText(str(rufumlActive) + ' ' + _('call redirections active'))
+
+		except KeyError:
+			debug("[FritzCallFBF] _fillMenu: " + traceback.format_exc())
+
+	def _toggleWlan(self):
+		if self._wlanActive:
+			debug("[FritzMenu] toggleWlan off")
+			fritzbox.changeWLAN('0')
+		else:
+			debug("[FritzMenu] toggleWlan off")
+			fritzbox.changeWLAN('1')
+
+	def _toggleMailbox(self, which):
+		debug("[FritzMenu] toggleMailbox")
+		if fritzbox.info[FBF_tamActive]:
+			debug("[FritzMenu] toggleMailbox off")
+			fritzbox.changeMailbox(which)
+
+	def _reset(self):
+		fritzbox.reset()
+		self._exit()
+
+	def _exit(self):
+		self._timer.stop()
+		self.close()
+
+
+class FritzDisplayCalls(Screen, HelpableScreen):
+
+	def __init__(self, session, text=""): #@UnusedVariable # pylint: disable=W0613
+		self.width = DESKTOP_WIDTH * scaleH(75, 85)/100
+		self.height = DESKTOP_HEIGHT * 0.75
+		dateFieldWidth = scaleH(180, 105)
+		dirFieldWidth = 16
+		lengthFieldWidth = scaleH(55, 45)
+		scrollbarWidth = scaleH(35, 35)
+		entriesWidth = self.width -scaleH(40, 5) -5
+		hereFieldWidth = entriesWidth -dirFieldWidth -5 -dateFieldWidth -5 -lengthFieldWidth -scrollbarWidth
+		fieldWidth = entriesWidth -dirFieldWidth -5 -5 -scrollbarWidth
+		fontSize = scaleV(22, 20)
+		itemHeight = 2*fontSize+5
+		entriesHeight = self.height -scaleV(15, 10) -5 -fontSize -5 -5 -5 -40 -5
+		buttonGap = (self.width -4*140)/5
+		buttonV = self.height -40
+		debug("[FritzDisplayCalls] width: " + str(self.width))
+		self.skin = """
+			<screen name="FritzDisplayCalls" position="center,center" size="%d,%d" title="Phone calls" >
+				<eLabel position="0,0" size="%d,2" backgroundColor="#aaaaaa" />
+				<widget name="statusbar" position="%d,%d" size="%d,%d" font="Regular;%d" backgroundColor="#aaaaaa" transparent="1" />
+				<eLabel position="0,%d" size="%d,2" backgroundColor="#aaaaaa" />
+				<widget source="entries" render="Listbox" position="%d,%d" size="%d,%d" scrollbarMode="showOnDemand" transparent="1">
+					<convert type="TemplatedMultiContent">
+						{"template": [
+								MultiContentEntryText(pos = (%d,%d), size = (%d,%d), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 1), # index 0 is the number, index 1 is date
+								MultiContentEntryPixmapAlphaTest(pos = (%d,%d), size = (%d,%d), png = 2), # index 1 i direction pixmap
+								MultiContentEntryText(pos = (%d,%d), size = (%d,%d), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 3), # index 2 is remote name/number
+								MultiContentEntryText(pos = (%d,%d), size = (%d,%d), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 4), # index 3 is length of call
+								MultiContentEntryText(pos = (%d,%d), size = (%d,%d), font=0, flags = RT_HALIGN_RIGHT|RT_VALIGN_CENTER, text = 5), # index 4 is my number/name for number
+							],
+						"fonts": [gFont("Regular", %d), gFont("Regular", %d)],
+						"itemHeight": %d
+						}
+					</convert>
+				</widget>
+				<eLabel position="0,%d" size="%d,2" backgroundColor="#aaaaaa" />
+				<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<widget name="key_red" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+				<widget name="key_green" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+				<widget name="key_yellow" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+				<widget name="key_blue" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+			</screen>""" % (
+						# scaleH(90, 75), scaleV(100, 78), # position 
+						self.width, self.height, # size
+						self.width, # eLabel width
+						scaleH(40, 5), scaleV(10, 5), # statusbar position
+						self.width, fontSize+5, # statusbar size
+						scaleV(21, 21), # statusbar font size
+						scaleV(10, 5)+5+fontSize+5, # eLabel position vertical
+						self.width, # eLabel width
+						scaleH(40, 5), scaleV(10, 5)+5+fontSize+5+5, # entries position
+						entriesWidth, entriesHeight, # entries size
+						5+dirFieldWidth+5, fontSize+5, dateFieldWidth, fontSize, # date pos/size
+						5, (itemHeight-dirFieldWidth)/2, dirFieldWidth, dirFieldWidth, # dir pos/size
+						5+dirFieldWidth+5, 5, fieldWidth, fontSize, # caller pos/size
+						2+dirFieldWidth+2+dateFieldWidth+5, fontSize+5, lengthFieldWidth, fontSize, # length pos/size
+						2+dirFieldWidth+2+dateFieldWidth+5+lengthFieldWidth+5, fontSize+5, hereFieldWidth, fontSize, # my number pos/size
+						fontSize-4, fontSize, # fontsize
+						itemHeight, # itemHeight
+						buttonV-5, # eLabel position vertical
+						self.width, # eLabel width
+						buttonGap, buttonV, "skin_default/buttons/red.png", # widget red
+						2*buttonGap+140, buttonV, "skin_default/buttons/green.png", # widget green
+						3*buttonGap+2*140, buttonV, "skin_default/buttons/yellow.png", # widget yellow
+						4*buttonGap+3*140, buttonV, "skin_default/buttons/blue.png", # widget blue
+						buttonGap, buttonV, scaleV(22, 21), # widget red
+						2*buttonGap+140, buttonV, scaleV(22, 21), # widget green
+						3*buttonGap+2*140, buttonV, scaleV(22, 21), # widget yellow
+						4*buttonGap+3*140, buttonV, scaleV(22, 21), # widget blue
+														)
+		# debug("[FritzDisplayCalls] skin: " + self.skin)
+		Screen.__init__(self, session)
+		HelpableScreen.__init__(self)
+
+		# TRANSLATORS: keep it short, this is a button
+		self["key_yellow"] = Button(_("All"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_red"] = Button(_("Missed"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_blue"] = Button(_("Incoming"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_green"] = Button(_("Outgoing"))
+
+		self["setupActions"] = ActionMap(["OkCancelActions", "ColorActions"],
+		{
+			"yellow": (lambda: self.display(FBF_ALL_CALLS)),
+			"red": (lambda: self.display(FBF_MISSED_CALLS)),
+			"blue": (lambda: self.display(FBF_IN_CALLS)),
+			"green": (lambda: self.display(FBF_OUT_CALLS)),
+			"cancel": self.ok,
+			"ok": self.showEntry, }, - 2)
+
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "OkCancelActions", [("ok", _("Show details of entry"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "OkCancelActions", [("cancel", _("Quit"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "ColorActions", [("yellow", _("Display all calls"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "ColorActions", [("red", _("Display missed calls"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "ColorActions", [("blue", _("Display incoming calls"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "ColorActions", [("green", _("Display outgoing calls"))]))
+
+		self["statusbar"] = Label(_("Getting calls from FRITZ!Box..."))
+		self.list = []
+		self["entries"] = List(self.list)
+		#=======================================================================
+		# fontSize = scaleV(22, 18)
+		# fontHeight = scaleV(24, 20)
+		# self["entries"].l.setFont(0, gFont("Regular", fontSize))
+		# self["entries"].l.setItemHeight(fontHeight)
+		#=======================================================================
+		debug("[FritzDisplayCalls] init: '''%s'''" % config.plugins.FritzCall.fbfCalls.value)
+		self.display()
+		self.onLayoutFinish.append(self.setWindowTitle)
+
+	def setWindowTitle(self):
+		# TRANSLATORS: this is a window title.
+		self.setTitle(_("Phone calls"))
+
+	def ok(self):
+		self.close()
+
+	def display(self, which=config.plugins.FritzCall.fbfCalls.value):
+		debug("[FritzDisplayCalls] display")
+		config.plugins.FritzCall.fbfCalls.value = which
+		config.plugins.FritzCall.fbfCalls.save()
+		fritzbox.getCalls(self, lambda x: self.gotCalls(x, which), which)
+
+	def gotCalls(self, listOfCalls, which):
+		debug("[FritzDisplayCalls] gotCalls")
+		self.updateStatus(fbfCallsChoices[which] + " (" + str(len(listOfCalls)) + ")")
+
+		directout = LoadPixmap(resolveFilename(SCOPE_PLUGINS, "Extensions/FritzCall/images/callout.png"))
+		directin = LoadPixmap(resolveFilename(SCOPE_PLUGINS, "Extensions/FritzCall/images/callin.png"))
+		directfailed = LoadPixmap(resolveFilename(SCOPE_PLUGINS, "Extensions/FritzCall/images/callinfailed.png"))
+		def pixDir(direct):
+			if direct == FBF_OUT_CALLS:
+				direct = directout
+			elif direct == FBF_IN_CALLS:
+				direct = directin
+			else:
+				direct = directfailed
+			return direct
+
+		# debug("[FritzDisplayCalls] gotCalls: %s" %repr(listOfCalls))
+		self.list = [(number, date[:6] + ' ' + date[9:14], pixDir(direct), remote, length, here) for (number, date, direct, remote, length, here) in listOfCalls]
+		self["entries"].setList(self.list)
+		if len(self.list) > 1:
+			self["entries"].setIndex(1)
+
+	def updateStatus(self, text):
+		if self.has_key("statusbar"):
+			self["statusbar"].setText(_("Getting calls from FRITZ!Box...") + ' ' + text)
+
+	def showEntry(self):
+		debug("[FritzDisplayCalls] showEntry")
+		cur = self["entries"].getCurrent()
+		if cur:
+			if cur[0]:
+				debug("[FritzDisplayCalls] showEntry %s" % (cur[0]))
+				number = cur[0]
+				fullname = phonebook.search(cur[0])
+				if fullname:
+					# we have a name for this number
+					name = fullname
+					self.session.open(FritzOfferAction, self, number, name)
+				elif cur[3]:
+					name = cur[3]
+					self.session.open(FritzOfferAction, self, number, name)
+				else:
+					# we don't
+					fullname = resolveNumberWithAvon(number, config.plugins.FritzCall.country.value)
+					if fullname:
+						name = fullname
+						self.session.open(FritzOfferAction, self, number, name)
+					else:
+						self.session.open(FritzOfferAction, self, number)
+			else:
+				# we do not even have a number...
+				self.session.open(MessageBox,
+						  _("UNKNOWN"),
+						  type=MessageBox.TYPE_INFO)
+
+
+class FritzOfferAction(Screen):
+
+	def __init__(self, session, parent, number, name=""):
+		# the layout will completely be recalculated in finishLayout
+		self.skin = """
+			<screen name="FritzOfferAction" title="Do what?" >
+				<widget name="text" size="%d,%d" font="Regular;%d" />
+				<widget name="FacePixmap" size="%d,%d" alphatest="on" />
+				<widget name="key_red_p" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<widget name="key_green_p" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<widget name="key_yellow_p" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+				<widget name="key_red" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+				<widget name="key_green" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+				<widget name="key_yellow" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+			</screen>""" % (
+							DESKTOP_WIDTH, DESKTOP_HEIGHT, # set maximum size
+							scaleH(22,21), # text
+							DESKTOP_WIDTH, DESKTOP_HEIGHT, # set maximum size
+							"skin_default/buttons/red.png",
+							"skin_default/buttons/green.png",
+							"skin_default/buttons/yellow.png",
+							) 
+		debug("[FritzOfferAction] init: %s, %s" %(number, name))
+		Screen.__init__(self, session)
+	
+		# TRANSLATORS: keep it short, this is a button
+		self["key_red"] = Button(_("Lookup"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_green"] = Button(_("Call"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_yellow"] = Button(_("Save"))
+		# TRANSLATORS: keep it short, this is a button
+		# self["key_blue"] = Button(_("Search"))
+
+		self["FritzOfferActions"] = ActionMap(["OkCancelActions", "ColorActions"],
+		{
+			"red": self._lookup,
+			"green": self._call,
+			"yellow": self._add,
+			"cancel": self._exit,
+			"ok": self._exit, }, - 2)
+
+		self._session = session
+		if config.plugins.FritzCall.internal.value and len(number) > 3 and number[0] == "0":
+			number = number[1:]
+		self._number = number
+		self._name = name.replace("\n", ", ")
+		self["text"] = Label(number + "\n\n" + name.replace(", ", "\n"))
+		self._parent = parent
+		self._lookupState = 0
+		self["key_red_p"] = Pixmap()
+		self["key_green_p"] = Pixmap()
+		self["key_yellow_p"] = Pixmap()
+		self["FacePixmap"] = Pixmap()
+		self.onLayoutFinish.append(self._finishLayout)
+		self.onLayoutFinish.append(self.setWindowTitle)
+
+	def setWindowTitle(self):
+		# TRANSLATORS: this is a window title.
+		self.setTitle(_("Do what?"))
+
+	def _finishLayout(self):
+		# pylint: disable=W0142
+		debug("[FritzCall] FritzOfferAction/finishLayout number: %s/%s" % (self._number, self._name))
+
+		faceFile = findFace(self._number, self._name)
+		picPixmap = LoadPixmap(faceFile)
+		if not picPixmap:	# that means most probably, that the picture is not 8 bit...
+			Notifications.AddNotification(MessageBox, _("Found picture\n\n%s\n\nBut did not load. Probably not PNG, 8-bit") %faceFile, type = MessageBox.TYPE_ERROR)
+			picPixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/input_error.png"))
+		picSize = picPixmap.size()
+		self["FacePixmap"].instance.setPixmap(picPixmap)
+
+		noButtons = 3
+		# recalculate window size
+		textSize = self["text"].getSize()
+		textSize = (textSize[0]+20, textSize[1]+20) # don't know, why, but size is too small
+		debug("[FritzCall] FritzOfferAction/finishLayout textsize: %s/%s" % textSize)
+		textSize = eSize(*textSize)
+		width = max(scaleH(620, 545), noButtons*145, picSize.width() + textSize.width() + 30)
+		height = max(picSize.height()+5, textSize.height()+5, scaleV(-1, 136)) + 5 + 40 + 5
+		buttonsGap = (width-noButtons*140)/(noButtons+1)
+		buttonsVPos = height-40-5
+		wSize = (width,	height)
+		wSize = eSize(*wSize)
+
+		# center the smaller vertically
+		hGap = (width-picSize.width()-textSize.width())/3
+		picPos = (hGap, (height-50-picSize.height())/2+5)
+		textPos = (hGap+picSize.width()+hGap, (height-50-textSize.height())/2+5)
+
+		# resize screen
+		self.instance.resize(wSize)
+		# resize text
+		self["text"].instance.resize(textSize)
+		# resize pixmap
+		self["FacePixmap"].instance.resize(picSize)
+		# move buttons
+		buttonPos = (buttonsGap, buttonsVPos)
+		self["key_red_p"].instance.move(ePoint(*buttonPos))
+		self["key_red"].instance.move(ePoint(*buttonPos))
+		buttonPos = (buttonsGap+140+buttonsGap, buttonsVPos)
+		self["key_green_p"].instance.move(ePoint(*buttonPos))
+		self["key_green"].instance.move(ePoint(*buttonPos))
+		buttonPos = (buttonsGap+140+buttonsGap+140+buttonsGap, buttonsVPos)
+		self["key_yellow_p"].instance.move(ePoint(*buttonPos))
+		self["key_yellow"].instance.move(ePoint(*buttonPos))
+		# move text
+		self["text"].instance.move(ePoint(*textPos))
+		# move pixmap
+		self["FacePixmap"].instance.move(ePoint(*picPos))
+		# center window
+		self.instance.move(ePoint((DESKTOP_WIDTH-wSize.width())/2, (DESKTOP_HEIGHT-wSize.height())/2))
+
+	def _setTextAndResize(self, message):
+		# pylint: disable=W0142
+		self["text"].instance.resize(eSize(*(DESKTOP_WIDTH, DESKTOP_HEIGHT)))
+		self["text"].setText(self._number + "\n\n" + message)
+		self._finishLayout()
+
+	def _lookup(self):
+		phonebookLocation = config.plugins.FritzCall.phonebookLocation.value
+		if self._lookupState == 0:
+			self._lookupState = 1
+			self._setTextAndResize(_("Reverse searching..."))
+			ReverseLookupAndNotifier(self._number, self._lookedUp, "UTF-8", config.plugins.FritzCall.country.value)
+			return
+		if self._lookupState == 1 and os.path.exists(os.path.join(phonebookLocation, "PhoneBook.csv")):
+			self._setTextAndResize(_("Searching in Outlook export..."))
+			self._lookupState = 2
+			self._lookedUp(self._number, FritzOutlookCSV.findNumber(self._number, os.path.join(phonebookLocation, "PhoneBook.csv"))) #@UndefinedVariable
+			return
+		else:
+			self._lookupState = 2
+		if self._lookupState == 2 and os.path.exists(os.path.join(phonebookLocation, "PhoneBook.ldif")):
+			self._setTextAndResize(_("Searching in LDIF..."))
+			self._lookupState = 0
+			FritzLDIF.FindNumber(self._number, open(os.path.join(phonebookLocation, "PhoneBook.ldif")), self._lookedUp)
+			return
+		else:
+			self._lookupState = 0
+			self._lookup()
+
+	def _lookedUp(self, number, name):
+		name = handleReverseLookupResult(name)
+		if not name:
+			if self._lookupState == 1:
+				name = _("No result from reverse lookup")
+			elif self._lookupState == 2:
+				name = _("No result from Outlook export")
+			else:
+				name = _("No result from LDIF")
+		self._name = name
+		self._number = number
+		debug("[FritzOfferAction] lookedUp: " + str(name.replace(", ", "\n")))
+		self._setTextAndResize(str(name.replace(", ", "\n")))
+
+	def _call(self):
+		debug("[FritzOfferAction] add: %s" %self._number)
+		fritzbox.dial(self._number)
+		self._exit()
+
+	def _add(self):
+		debug("[FritzOfferAction] add: %s, %s" %(self._number, self._name))
+		phonebook.FritzDisplayPhonebook(self._session).add(self._parent, self._number, self._name)
+		self._exit()
+
+	def _exit(self):
+		self.close()
+
+
+class FritzCallPhonebook:
+	def __init__(self):
+		debug("[FritzCallPhonebook] init")
+		# Beware: strings in phonebook.phonebook have to be in utf-8!
+		self.phonebook = {}
+		self.reload()
+
+	def reload(self):
+		debug("[FritzCallPhonebook] reload")
+		# Beware: strings in phonebook.phonebook have to be in utf-8!
+		self.phonebook = {}
+
+		if not config.plugins.FritzCall.enable.value:
+			return
+
+		phonebookFilename = os.path.join(config.plugins.FritzCall.phonebookLocation.value, "PhoneBook.txt")
+		if config.plugins.FritzCall.phonebook.value and os.path.exists(phonebookFilename):
+			debug("[FritzCallPhonebook] reload: read " + phonebookFilename)
+			phonebookTxtCorrupt = False
+			self.phonebook = {}
+			for line in open(phonebookFilename):
+				try:
+					# Beware: strings in phonebook.phonebook have to be in utf-8!
+					line = line.decode("utf-8")
+				except UnicodeDecodeError: # this is just for the case, somebody wrote latin1 chars into PhoneBook.txt
+					try:
+						line = line.decode("iso-8859-1")
+						debug("[FritzCallPhonebook] Fallback to ISO-8859-1 in %s" % line)
+						phonebookTxtCorrupt = True
+					except UnicodeDecodeError:
+						debug("[FritzCallPhonebook] Could not parse internal Phonebook Entry %s" % line)
+						phonebookTxtCorrupt = True
+				line = line.encode("utf-8")
+				elems = line.split('#')
+				if len(elems) == 2:
+					try:
+						self.phonebook[elems[0]] = elems[1]
+					except ValueError: # how could this possibly happen?!?!
+						debug("[FritzCallPhonebook] Could not parse internal Phonebook Entry %s" % line)
+						phonebookTxtCorrupt = True
+				else:
+					debug("[FritzCallPhonebook] Could not parse internal Phonebook Entry %s" % line)
+					phonebookTxtCorrupt = True
+					
+				#===============================================================
+				# found = re.match("^(\d+)#(.*)$", line)
+				# if found:
+				#	try:
+				#		self.phonebook[found.group(1)] = found.group(2)
+				#	except ValueError: # how could this possibly happen?!?!
+				#		debug("[FritzCallPhonebook] Could not parse internal Phonebook Entry %s" % line)
+				#		phonebookTxtCorrupt = True
+				# else:
+				#	debug("[FritzCallPhonebook] Could not parse internal Phonebook Entry %s" % line)
+				#	phonebookTxtCorrupt = True
+				#===============================================================
+
+			if phonebookTxtCorrupt:
+				# dump phonebook to PhoneBook.txt
+				debug("[FritzCallPhonebook] dump Phonebook.txt")
+				try:
+					os.rename(phonebookFilename, phonebookFilename + ".bck")
+					fNew = open(phonebookFilename, 'w')
+					# Beware: strings in phonebook.phonebook are utf-8!
+					for (number, name) in self.phonebook.iteritems():
+						# Beware: strings in PhoneBook.txt have to be in utf-8!
+						fNew.write(number + "#" + name.encode("utf-8"))
+					fNew.close()
+				except (IOError, OSError):
+					debug("[FritzCallPhonebook] error renaming or writing to %s" %phonebookFilename)
+
+#===============================================================================
+#		#
+#		# read entries from Outlook export
+#		#
+#		# not reliable with coding yet
+#		# 
+#		# import csv exported from Outlook 2007 with csv(Windows)
+#		csvFilename = "/tmp/PhoneBook.csv"
+#		if config.plugins.FritzCall.phonebook.value and os.path.exists(csvFilename):
+#			try:
+#				readOutlookCSV(csvFilename, self.add)
+#				os.rename(csvFilename, csvFilename + ".done")
+#			except ImportError:
+#				debug("[FritzCallPhonebook] CSV import failed" %line)
+#===============================================================================
+
+		
+#===============================================================================
+#		#
+#		# read entries from LDIF
+#		#
+#		# import ldif exported from Thunderbird 2.0.0.19
+#		ldifFilename = "/tmp/PhoneBook.ldif"
+#		if config.plugins.FritzCall.phonebook.value and os.path.exists(ldifFilename):
+#			try:
+#				parser = MyLDIF(open(ldifFilename), self.add)
+#				parser.parse()
+#				os.rename(ldifFilename, ldifFilename + ".done")
+#			except ImportError:
+#				debug("[FritzCallPhonebook] LDIF import failed" %line)
+#===============================================================================
+		
+		if fritzbox and config.plugins.FritzCall.fritzphonebook.value:
+			fritzbox.loadFritzBoxPhonebook()
+
+	def search(self, number):
+		# debug("[FritzCallPhonebook] Searching for %s" %number)
+		name = ""
+		if not self.phonebook or not number:
+			return
+
+		if config.plugins.FritzCall.prefix.value:
+			prefix = config.plugins.FritzCall.prefix.value
+			if number[0] != '0':
+				number = prefix + number
+				# debug("[FritzCallPhonebook] search: added prefix: %s" %number)
+			elif number[:len(prefix)] == prefix and self.phonebook.has_key(number[len(prefix):]):
+				# debug("[FritzCallPhonebook] search: same prefix")
+				name = self.phonebook[number[len(prefix):]]
+				# debug("[FritzCallPhonebook] search: result: %s" %name)
+		else:
+			prefix = ""
+				
+		if not name and self.phonebook.has_key(number):
+			name = self.phonebook[number]
+				
+		return name.replace(", ", "\n").strip()
+
+	def add(self, number, name):
+		'''
+		
+		@param number: number of entry
+		@param name: name of entry, has to be in utf-8
+		'''
+		debug("[FritzCallPhonebook] add")
+		name = name.replace("\n", ", ").replace('#','') # this is just for safety reasons. add should only be called with newlines converted into commas
+		self.remove(number)
+		self.phonebook[number] = name
+		if number and number != 0:
+			if config.plugins.FritzCall.phonebook.value:
+				try:
+					name = name.strip() + "\n"
+					string = "%s#%s" % (number, name)
+					# Beware: strings in PhoneBook.txt have to be in utf-8!
+					f = open(os.path.join(config.plugins.FritzCall.phonebookLocation.value, "PhoneBook.txt"), 'a')
+					f.write(string)
+					f.close()
+					debug("[FritzCallPhonebook] added %s with %s to Phonebook.txt" % (number, name.strip()))
+					return True
+	
+				except IOError:
+					return False
+
+	def remove(self, number):
+		if number in self.phonebook:
+			debug("[FritzCallPhonebook] remove entry in phonebook")
+			del self.phonebook[number]
+			if config.plugins.FritzCall.phonebook.value:
+				try:
+					phonebookFilename = os.path.join(config.plugins.FritzCall.phonebookLocation.value, "PhoneBook.txt")
+					debug("[FritzCallPhonebook] remove entry in Phonebook.txt")
+					fOld = open(phonebookFilename, 'r')
+					fNew = open(phonebookFilename + str(os.getpid()), 'w')
+					line = fOld.readline()
+					while (line):
+						elems = line.split('#')
+						if len(elems) == 2 and not elems[0] == number:
+							fNew.write(line)
+						line = fOld.readline()
+					fOld.close()
+					fNew.close()
+					# os.remove(phonebookFilename)
+					eBackgroundFileEraser.getInstance().erase(phonebookFilename)
+					os.rename(phonebookFilename + str(os.getpid()),	phonebookFilename)
+					debug("[FritzCallPhonebook] removed %s from Phonebook.txt" % number)
+					return True
+	
+				except (IOError, OSError):
+					debug("[FritzCallPhonebook] error removing %s from %s" %(number, phonebookFilename))
+		return False
+
+	class FritzDisplayPhonebook(Screen, HelpableScreen, NumericalTextInput):
+	
+		def __init__(self, session):
+			self.entriesWidth = DESKTOP_WIDTH * scaleH(75, 85)/100
+			self.height = DESKTOP_HEIGHT * 0.75
+			numberFieldWidth = scaleH(220, 160)
+			fieldWidth = self.entriesWidth -5 -numberFieldWidth -10
+			fontSize = scaleV(22, 18)
+			fontHeight = scaleV(24, 20)
+			buttonGap = (self.entriesWidth-4*140)/5
+			debug("[FritzDisplayPhonebook] width: " + str(self.entriesWidth))
+			self.skin = """
+				<screen name="FritzDisplayPhonebook" position="center,center" size="%d,%d" title="Phonebook" >
+					<eLabel position="0,0" size="%d,2" backgroundColor="#aaaaaa" />
+					<widget source="entries" render="Listbox" position="%d,%d" size="%d,%d" scrollbarMode="showOnDemand" transparent="1">
+						<convert type="TemplatedMultiContent">
+							{"template": [
+									MultiContentEntryText(pos = (%d,%d), size = (%d,%d), font=0, flags = RT_HALIGN_LEFT, text = 1), # index 0 is the name, index 1 is shortname
+									MultiContentEntryText(pos = (%d,%d), size = (%d,%d), font=0, flags = RT_HALIGN_LEFT, text = 2), # index 2 is number
+								],
+							"fonts": [gFont("Regular", %d)],
+							"itemHeight": %d
+							}
+						</convert>
+					</widget>
+					<eLabel position="0,%d" size="%d,2" backgroundColor="#aaaaaa" />
+					<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+					<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+					<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+					<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+					<widget name="key_red" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+					<widget name="key_green" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+					<widget name="key_yellow" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+					<widget name="key_blue" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+				</screen>""" % (
+						# scaleH(90, 75), scaleV(100, 73), # position 
+						self.entriesWidth, self.height, # size
+						self.entriesWidth, # eLabel width
+						scaleH(40, 5), scaleV(20, 5), # entries position
+						self.entriesWidth-scaleH(40, 5), self.height-scaleV(20, 5)-5-5-40, # entries size
+						0, 0, fieldWidth, scaleH(24,20), # name pos/size
+						fieldWidth +5, 0, numberFieldWidth, scaleH(24,20), # dir pos/size
+						fontSize, # fontsize
+						fontHeight, # itemHeight
+						self.height-40-5, # eLabel position vertical
+						self.entriesWidth, # eLabel width
+						buttonGap, self.height-40, "skin_default/buttons/red.png", # ePixmap red
+						2*buttonGap+140, self.height-40, "skin_default/buttons/green.png", # ePixmap green
+						3*buttonGap+2*140, self.height-40, "skin_default/buttons/yellow.png", # ePixmap yellow
+						4*buttonGap+3*140, self.height-40, "skin_default/buttons/blue.png", # ePixmap blue
+						buttonGap, self.height-40, scaleV(22, 21), # widget red
+						2*buttonGap+140, self.height-40, scaleV(22, 21), # widget green
+						3*buttonGap+2*140, self.height-40, scaleV(22, 21), # widget yellow
+						4*buttonGap+3*140, self.height-40, scaleV(22, 21), # widget blue
+						)
+	
+			# debug("[FritzDisplayCalls] skin: " + self.skin)
+			Screen.__init__(self, session)
+			NumericalTextInput.__init__(self)
+			HelpableScreen.__init__(self)
+		
+			# TRANSLATORS: keep it short, this is a button
+			self["key_red"] = Button(_("Delete"))
+			# TRANSLATORS: keep it short, this is a button
+			self["key_green"] = Button(_("New"))
+			# TRANSLATORS: keep it short, this is a button
+			self["key_yellow"] = Button(_("Edit"))
+			# TRANSLATORS: keep it short, this is a button
+			self["key_blue"] = Button(_("Search"))
+	
+			self["setupActions"] = ActionMap(["OkCancelActions", "ColorActions"],
+			{
+				"red": self.delete,
+				"green": self.add,
+				"yellow": self.edit,
+				"blue": self.search,
+				"cancel": self.exit,
+				"ok": self.showEntry, }, - 2)
+	
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["setupActions"], "OkCancelActions", [("ok", _("Show details of entry"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["setupActions"], "OkCancelActions", [("cancel", _("Quit"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["setupActions"], "ColorActions", [("red", _("Delete entry"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["setupActions"], "ColorActions", [("green", _("Add entry to phonebook"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["setupActions"], "ColorActions", [("yellow", _("Edit selected entry"))]))
+			# TRANSLATORS: keep it short, this is a help text
+			self.helpList.append((self["setupActions"], "ColorActions", [("blue", _("Search (case insensitive)"))]))
+	
+			self["entries"] = List([])
+			debug("[FritzCallPhonebook] displayPhonebook init")
+			self.help_window = None
+			self.sortlist = []
+			self.onLayoutFinish.append(self.setWindowTitle)
+			self.display()
+
+		def setWindowTitle(self):
+			# TRANSLATORS: this is a window title.
+			self.setTitle(_("Phonebook"))
+
+		def display(self, filterNumber=""):
+			debug("[FritzCallPhonebook] displayPhonebook/display")
+			self.sortlist = []
+			# Beware: strings in phonebook.phonebook are utf-8!
+			sortlistHelp = sorted((name.lower(), name, number) for (number, name) in phonebook.phonebook.iteritems())
+			for (low, name, number) in sortlistHelp:
+				if number == "01234567890":
+					continue
+				try:
+					low = low.decode("utf-8")
+				except UnicodeDecodeError:  # this should definitely not happen
+					try:
+						low = low.decode("iso-8859-1")
+					except UnicodeDecodeError:
+						debug("[FritzCallPhonebook] displayPhonebook/display: corrupt phonebook entry for %s" % number)
+						# self.session.open(MessageBox, _("Corrupt phonebook entry\nfor number %s\nDeleting.") %number, type = MessageBox.TYPE_ERROR)
+						phonebook.remove(number)
+						continue
+				else:
+					if filterNumber:
+						filterNumber = filterNumber.lower()
+						if low.find(filterNumber) == - 1:
+							continue
+					name = name.strip().decode("utf-8")
+					number = number.strip().decode("utf-8")
+					comma = name.find(',')
+					if comma != -1:
+						shortname = name[:comma]
+					else:
+						shortname = name
+					number = number.encode("utf-8", "replace")
+					name = name.encode("utf-8", "replace")
+					shortname = shortname.encode('utf-8', 'replace')
+					self.sortlist.append((name, shortname, number))
+				
+			self["entries"].setList(self.sortlist)
+	
+		def showEntry(self):
+			cur = self["entries"].getCurrent()
+			if cur:
+				debug("[FritzCallPhonebook] displayPhonebook/showEntry %s" % (repr(cur)))
+				number = cur[2]
+				name = cur[0]
+				self.session.open(FritzOfferAction, self, number, name)
+	
+		def delete(self):
+			cur = self["entries"].getCurrent()
+			if cur:
+				debug("[FritzCallPhonebook] displayPhonebook/delete %s" % (repr(cur)))
+				self.session.openWithCallback(
+					self.deleteConfirmed,
+					MessageBox,
+					_("Do you really want to delete entry for\n\n%(number)s\n\n%(name)s?") 
+					% { 'number':str(cur[2]), 'name':str(cur[0]).replace(", ", "\n") }
+								)
+			else:
+				self.session.open(MessageBox, _("No entry selected"), MessageBox.TYPE_INFO)
+	
+		def deleteConfirmed(self, ret):
+			debug("[FritzCallPhonebook] displayPhonebook/deleteConfirmed")
+			#
+			# if ret: delete number from sortlist, delete number from phonebook.phonebook and write it to disk
+			#
+			cur = self["entries"].getCurrent()
+			if cur:
+				if ret:
+					# delete number from sortlist, delete number from phonebook.phonebook and write it to disk
+					debug("[FritzCallPhonebook] displayPhonebook/deleteConfirmed %s" % (repr(cur)))
+					phonebook.remove(cur[2])
+					self.display()
+				# else:
+					# self.session.open(MessageBox, _("Not deleted."), MessageBox.TYPE_INFO)
+			else:
+				self.session.open(MessageBox, _("No entry selected"), MessageBox.TYPE_INFO)
+	
+		def add(self, parent=None, number="", name=""):
+			class AddScreen(Screen, ConfigListScreen):
+				'''ConfiglistScreen with two ConfigTexts for Name and Number'''
+	
+				def __init__(self, session, parent, number="", name=""):
+					#
+					# setup screen with two ConfigText and OK and ABORT button
+					# 
+					noButtons = 2
+					width = max(scaleH(-1, 570), noButtons*140)
+					height = scaleV(-1, 100) # = 5 + 126 + 40 + 5; 6 lines of text possible
+					buttonsGap = (width-noButtons*140)/(noButtons+1)
+					buttonsVPos = height-40-5
+					self.skin = """
+						<screen position="center,center" size="%d,%d" title="Add entry to phonebook" >
+						<widget name="config" position="5,5" size="%d,%d" scrollbarMode="showOnDemand" />
+						<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+						<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+						<widget name="key_red" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+						<widget name="key_green" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+						</screen>""" % (
+										width, height,
+										width - 5 - 5, height - 5 - 40 - 5,
+										buttonsGap, buttonsVPos, "skin_default/buttons/red.png",
+										buttonsGap+140+buttonsGap, buttonsVPos, "skin_default/buttons/green.png",
+										buttonsGap, buttonsVPos,
+										buttonsGap+140+buttonsGap, buttonsVPos,
+										)
+					Screen.__init__(self, session)
+					self.session = session
+					self.parent = parent
+					# TRANSLATORS: keep it short, this is a button
+					self["key_red"] = Button(_("Cancel"))
+					# TRANSLATORS: keep it short, this is a button
+					self["key_green"] = Button(_("OK"))
+					self["setupActions"] = ActionMap(["SetupActions", "ColorActions"],
+					{
+						"cancel": self.cancel,
+						"red": self.cancel,
+						"green": self.add,
+						"ok": self.add,
+					}, - 2)
+	
+					self.list = [ ]
+					ConfigListScreen.__init__(self, self.list, session=session)
+					self.name = name
+					self.number = number
+					config.plugins.FritzCall.name.value = name
+					config.plugins.FritzCall.number.value = number
+					self.list.append(getConfigListEntry(_("Name"), config.plugins.FritzCall.name))
+					self.list.append(getConfigListEntry(_("Number"), config.plugins.FritzCall.number))
+					self["config"].list = self.list
+					self["config"].l.setList(self.list)
+					self.onLayoutFinish.append(self.setWindowTitle)
+			
+				def setWindowTitle(self):
+					# TRANSLATORS: this is a window title.
+					self.setTitle(_("Add entry to phonebook"))
+
+				def add(self):
+					# get texts from Screen
+					# add (number,name) to sortlist and phonebook.phonebook and disk
+					self.name = config.plugins.FritzCall.name.value
+					self.number = config.plugins.FritzCall.number.value
+					if not self.number or not self.name:
+						self.session.open(MessageBox, _("Entry incomplete."), type=MessageBox.TYPE_ERROR)
+						return
+					# add (number,name) to sortlist and phonebook.phonebook and disk
+	#					oldname = phonebook.search(self.number)
+	#					if oldname:
+	#						self.session.openWithCallback(
+	#							self.overwriteConfirmed,
+	#							MessageBox,
+	#							_("Do you really want to overwrite entry for %(number)s\n\n%(name)s\n\nwith\n\n%(newname)s?")
+	#							% {
+	#							'number':self.number,
+	#							'name': oldname,
+	#							'newname':self.name.replace(", ","\n")
+	#							}
+	#							)
+	#						self.close()
+	#						return
+					phonebook.add(self.number, self.name)
+					self.close()
+					self.parent.display()
+	
+				def overwriteConfirmed(self, ret):
+					if ret:
+						phonebook.remove(self.number)
+						phonebook.add(self.number, self.name)
+						self.parent.display()
+	
+				def cancel(self):
+					self.close()
+	
+			debug("[FritzCallPhonebook] displayPhonebook/add")
+			if not parent:
+				parent = self
+			self.session.open(AddScreen, parent, number, name)
+	
+		def edit(self):
+			debug("[FritzCallPhonebook] displayPhonebook/edit")
+			cur = self["entries"].getCurrent()
+			if cur is None:
+				self.session.open(MessageBox, _("No entry selected"), MessageBox.TYPE_INFO)
+			else:
+				self.add(self, cur[2], cur[0])
+	
+		def search(self):
+			debug("[FritzCallPhonebook] displayPhonebook/search")
+			self.help_window = self.session.instantiateDialog(NumericalTextInputHelpDialog, self)
+			self.help_window.show()
+			# VirtualKeyboard instead of InputBox?
+			self.session.openWithCallback(self.doSearch, InputBox, _("Enter Search Terms"), _("Search phonebook"))
+	
+		def doSearch(self, searchTerms):
+			if not searchTerms:
+				searchTerms = ""
+			debug("[FritzCallPhonebook] displayPhonebook/doSearch: " + searchTerms)
+			if self.help_window:
+				self.session.deleteDialog(self.help_window)
+				self.help_window = None
+			self.display(searchTerms)
+	
+		def exit(self):
+			self.close()
+
+phonebook = FritzCallPhonebook()
+
+class FritzCallSetup(Screen, ConfigListScreen, HelpableScreen):
+
+	def __init__(self, session, args=None): #@UnusedVariable # pylint: disable=W0613
+		self.width = scaleH(20+4*(140+90)+2*(35+40)+20, 4*140+2*35)
+		width = self.width
+		debug("[FritzCallSetup] width: " + str(self.width))
+		self.skin = """
+			<screen name="FritzCallSetup" position="center,center" size="%d,%d" title="FritzCall Setup" >
+			<eLabel position="0,0" size="%d,2" backgroundColor="#aaaaaa" />
+			<widget name="consideration" position="%d,%d" halign="center" size="%d,%d" font="Regular;%d" backgroundColor="#20040404" transparent="1" />
+			<eLabel position="0,%d" size="%d,2" backgroundColor="#aaaaaa" />
+			<widget name="config" position="%d,%d" size="%d,%d" scrollbarMode="showOnDemand" backgroundColor="#20040404" transparent="1" />
+			<eLabel position="0,%d" size="%d,2" backgroundColor="#aaaaaa" />
+			<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+			<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+			<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+			<ePixmap position="%d,%d" zPosition="4" size="140,40" pixmap="%s" transparent="1" alphatest="on" />
+			<widget name="key_red" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+			<widget name="key_green" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+			<widget name="key_yellow" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+			<widget name="key_blue" position="%d,%d" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;%d" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
+			<ePixmap position="%d,%d" zPosition="4" size="35,25" pixmap="%s" transparent="1" alphatest="on" />
+			<ePixmap position="%d,%d" zPosition="4" size="35,25" pixmap="%s" transparent="1" alphatest="on" />
+			</screen>""" % (
+						# (DESKTOP_WIDTH-width)/2, scaleV(100, 73), # position 
+						width, scaleV(560, 430), # size
+						width, # eLabel width
+						scaleH(40, 20), scaleV(10, 5), # consideration position
+						scaleH(width-80, width-40), scaleV(25, 45), # consideration size
+						scaleV(22, 20), # consideration font size
+						scaleV(40, 50), # eLabel position vertical
+						width, # eLabel width
+						scaleH(40, 5), scaleV(60, 57), # config position
+						scaleH(width-80, width-10), scaleV(453, 328), # config size
+						scaleV(518, 390), # eLabel position vertical
+						width, # eLabel width
+						scaleH(20, 0), scaleV(525, 395), "skin_default/buttons/red.png", # pixmap red
+						scaleH(20+140+90, 140), scaleV(525, 395), "skin_default/buttons/green.png", # pixmap green
+						scaleH(20+2*(140+90), 2*140), scaleV(525, 395), "skin_default/buttons/yellow.png", # pixmap yellow
+						scaleH(20+3*(140+90), 3*140), scaleV(525, 395), "skin_default/buttons/blue.png", # pixmap blue
+						scaleH(20, 0), scaleV(525, 395), scaleV(21, 21), # widget red
+						scaleH(20+(140+90), 140), scaleV(525, 395), scaleV(21, 21), # widget green
+						scaleH(20+2*(140+90), 2*140), scaleV(525, 395), scaleV(21, 21), # widget yellow
+						scaleH(20+3*(140+90), 3*140), scaleV(525, 395), scaleV(21, 21), # widget blue
+						scaleH(20+4*(140+90), 4*140), scaleV(532, 402), "skin_default/buttons/key_info.png", # button info
+						scaleH(20+4*(140+90)+(35+40), 4*140+35), scaleV(532, 402), "skin_default/buttons/key_menu.png", # button menu
+													)
+
+		Screen.__init__(self, session)
+		HelpableScreen.__init__(self)
+		self.session = session
+
+		self["consideration"] = Label(_("You need to enable the monitoring on your FRITZ!Box by dialing #96*5*!"))
+		self.list = []
+
+		# Initialize Buttons
+		# TRANSLATORS: keep it short, this is a button
+		self["key_red"] = Button(_("Cancel"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_green"] = Button(_("OK"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_yellow"] = Button(_("Phone calls"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_blue"] = Button(_("Phonebook"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_info"] = Button(_("About FritzCall"))
+		# TRANSLATORS: keep it short, this is a button
+		self["key_menu"] = Button(_("FRITZ!Box Fon Status"))
+
+		self["setupActions"] = ActionMap(["ColorActions", "OkCancelActions", "MenuActions", "EPGSelectActions"],
+		{
+			"red": self.cancel,
+			"green": self.save,
+			"yellow": self.displayCalls,
+			"blue": self.displayPhonebook,
+			"cancel": self.cancel,
+			"ok": self.save,
+			"menu": self.menu,
+			"info": self.about,
+		}, - 2)
+
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "ColorActions", [("red", _("quit"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "ColorActions", [("green", _("save and quit"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "ColorActions", [("yellow", _("display calls"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "ColorActions", [("blue", _("display phonebook"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "OkCancelActions", [("ok", _("save and quit"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "OkCancelActions", [("cancel", _("quit"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "MenuActions", [("menu", _("FRITZ!Box Fon Status"))]))
+		# TRANSLATORS: keep it short, this is a help text
+		self.helpList.append((self["setupActions"], "EPGSelectActions", [("info", _("About FritzCall"))]))
+
+		ConfigListScreen.__init__(self, self.list, session=session)
+
+		# get new list of locations for PhoneBook.txt
+		self._mountedDevs = getMountedDevs()
+		self.createSetup()
+		self.onLayoutFinish.append(self.setWindowTitle)
+
+	def setWindowTitle(self):
+		# TRANSLATORS: this is a window title.
+		self.setTitle(_("FritzCall Setup") + " (" + "$Revision: 643 $"[1: - 1] + "$Date: 2011-04-30 12:38:52 +0200 (Sa, 30. Apr 2011) $"[7:23] + ")")
+
+	def keyLeft(self):
+		ConfigListScreen.keyLeft(self)
+		self.createSetup()
+
+	def keyRight(self):
+		ConfigListScreen.keyRight(self)
+		self.createSetup()
+
+	def createSetup(self):
+		self.list = [ ]
+		self.list.append(getConfigListEntry(_("Call monitoring"), config.plugins.FritzCall.enable))
+		if config.plugins.FritzCall.enable.value:
+			self.list.append(getConfigListEntry(_("FRITZ!Box FON address (Name or IP)"), config.plugins.FritzCall.hostname))
+
+			self.list.append(getConfigListEntry(_("Show after Standby"), config.plugins.FritzCall.afterStandby))
+
+			self.list.append(getConfigListEntry(_("Show only calls for specific MSN"), config.plugins.FritzCall.filter))
+			if config.plugins.FritzCall.filter.value:
+				self.list.append(getConfigListEntry(_("MSN to show (separated by ,)"), config.plugins.FritzCall.filtermsn))
+				self.list.append(getConfigListEntry(_("Filter also list of calls"), config.plugins.FritzCall.filterCallList))
+			self.list.append(getConfigListEntry(_("Mute on call"), config.plugins.FritzCall.muteOnCall))
+
+			self.list.append(getConfigListEntry(_("Show Outgoing Calls"), config.plugins.FritzCall.showOutgoing))
+			# not only for outgoing: config.plugins.FritzCall.showOutgoing.value:
+			self.list.append(getConfigListEntry(_("Areacode to add to calls without one (if necessary)"), config.plugins.FritzCall.prefix))
+			self.list.append(getConfigListEntry(_("Timeout for Call Notifications (seconds)"), config.plugins.FritzCall.timeout))
+			self.list.append(getConfigListEntry(_("Reverse Lookup Caller ID (select country below)"), config.plugins.FritzCall.lookup))
+			if config.plugins.FritzCall.lookup.value:
+				self.list.append(getConfigListEntry(_("Country"), config.plugins.FritzCall.country))
+
+			# TODO: make password unreadable?
+			self.list.append(getConfigListEntry(_("Password Accessing FRITZ!Box"), config.plugins.FritzCall.password))
+			self.list.append(getConfigListEntry(_("Extension number to initiate call on"), config.plugins.FritzCall.extension))
+			self.list.append(getConfigListEntry(_("Read PhoneBook from FRITZ!Box"), config.plugins.FritzCall.fritzphonebook))
+			if config.plugins.FritzCall.fritzphonebook.value:
+				self.list.append(getConfigListEntry(_("Append type of number"), config.plugins.FritzCall.showType))
+				self.list.append(getConfigListEntry(_("Append shortcut number"), config.plugins.FritzCall.showShortcut))
+				self.list.append(getConfigListEntry(_("Append vanity name"), config.plugins.FritzCall.showVanity))
+
+			self.list.append(getConfigListEntry(_("Use internal PhoneBook"), config.plugins.FritzCall.phonebook))
+			if config.plugins.FritzCall.phonebook.value:
+				if config.plugins.FritzCall.phonebookLocation.value in self._mountedDevs:
+					config.plugins.FritzCall.phonebookLocation.setChoices(self._mountedDevs, config.plugins.FritzCall.phonebookLocation.value)
+				else:
+					config.plugins.FritzCall.phonebookLocation.setChoices(self._mountedDevs)
+				path = config.plugins.FritzCall.phonebookLocation.value
+				# check whether we can write to PhoneBook.txt
+				if os.path.exists(os.path.join(path[0], "PhoneBook.txt")):
+					if not os.access(os.path.join(path[0], "PhoneBook.txt"), os.W_OK):
+						debug("[FritzCallSetup] createSetup: %s/PhoneBook.txt not writable, resetting to default" %(path[0]))
+						config.plugins.FritzCall.phonebookLocation.setChoices(self._mountedDevs)
+				elif not (os.path.isdir(path[0]) and os.access(path[0], os.W_OK|os.X_OK)):
+					debug("[FritzCallSetup] createSetup: directory %s not writable, resetting to default" %(path[0]))
+					config.plugins.FritzCall.phonebookLocation.setChoices(self._mountedDevs)
+
+				self.list.append(getConfigListEntry(_("PhoneBook Location"), config.plugins.FritzCall.phonebookLocation))
+				if config.plugins.FritzCall.lookup.value:
+					self.list.append(getConfigListEntry(_("Automatically add new Caller to PhoneBook"), config.plugins.FritzCall.addcallers))
+
+			self.list.append(getConfigListEntry(_("Strip Leading 0"), config.plugins.FritzCall.internal))
+			# self.list.append(getConfigListEntry(_("Default display mode for FRITZ!Box calls"), config.plugins.FritzCall.fbfCalls))
+			self.list.append(getConfigListEntry(_("Display connection infos"), config.plugins.FritzCall.connectionVerbose))
+			self.list.append(getConfigListEntry(_("Ignore callers with no phone number"), config.plugins.FritzCall.ignoreUnknown))
+			self.list.append(getConfigListEntry(_("Debug"), config.plugins.FritzCall.debug))
+
+		self["config"].list = self.list
+		self["config"].l.setList(self.list)
+
+	def save(self):
+#		debug("[FritzCallSetup] save"
+		for x in self["config"].list:
+			x[1].save()
+		if config.plugins.FritzCall.phonebookLocation.isChanged():
+			global phonebook
+			phonebook = FritzCallPhonebook()
+		if fritz_call:
+			if config.plugins.FritzCall.enable.value:
+				fritz_call.connect()
+			else:
+				fritz_call.shutdown()
+		self.close()
+
+	def cancel(self):
+#		debug("[FritzCallSetup] cancel"
+		for x in self["config"].list:
+			x[1].cancel()
+		self.close()
+
+	def displayCalls(self):
+		if config.plugins.FritzCall.enable.value:
+			if fritzbox:
+				self.session.open(FritzDisplayCalls)
+			else:
+				self.session.open(MessageBox, _("Cannot get calls from FRITZ!Box"), type=MessageBox.TYPE_INFO)
+		else:
+			self.session.open(MessageBox, _("Plugin not active"), type=MessageBox.TYPE_INFO)
+
+	def displayPhonebook(self):
+		if phonebook:
+			if config.plugins.FritzCall.enable.value:
+				self.session.open(phonebook.FritzDisplayPhonebook)
+			else:
+				self.session.open(MessageBox, _("Plugin not active"), type=MessageBox.TYPE_INFO)
+		else:
+			self.session.open(MessageBox, _("No phonebook"), type=MessageBox.TYPE_INFO)
+
+	def about(self):
+		self.session.open(FritzAbout)
+
+	def menu(self):
+		if config.plugins.FritzCall.enable.value:
+			if fritzbox and fritzbox.info:
+				self.session.open(FritzMenu)
+			else:
+				self.session.open(MessageBox, _("Cannot get infos from FRITZ!Box"), type=MessageBox.TYPE_INFO)
+		else:
+			self.session.open(MessageBox, _("Plugin not active"), type=MessageBox.TYPE_INFO)
+
+standbyMode = False
+
+class FritzCallList:
+	def __init__(self):
+		self.callList = [ ]
+	
+	def add(self, event, date, number, caller, phone):
+		debug("[FritzCallList] add: %s %s" % (number, caller))
+		if len(self.callList) > 10:
+			if self.callList[0] != "Start":
+				self.callList[0] = "Start"
+			del self.callList[1]
+
+		self.callList.append((event, number, date, caller, phone))
+	
+	def display(self):
+		debug("[FritzCallList] display")
+		global standbyMode
+		standbyMode = False
+		# Standby.inStandby.onClose.remove(self.display) object does not exist anymore...
+		# build screen from call list
+		text = "\n"
+
+		if not self.callList:
+			text = _("no calls") 
+		else:
+			if self.callList[0] == "Start":
+				text = text + _("Last 10 calls:\n")
+				del self.callList[0]
+	
+			for call in self.callList:
+				(event, number, date, caller, phone) = call
+				if event == "RING":
+					direction = "->"
+				else:
+					direction = "<-"
+	
+				# shorten the date info
+				date = date[:6] + date[9:14]
+	
+				# our phone could be of the form "0123456789 (home)", then we only take "home"
+				oBrack = phone.find('(')
+				cBrack = phone.find(')')
+				if oBrack != -1 and cBrack != -1:
+					phone = phone[oBrack+1:cBrack]
+	
+				# should not happen, for safety reasons
+				if not caller:
+					caller = _("UNKNOWN")
+				
+				#  if we have an unknown number, show the number
+				if caller == _("UNKNOWN") and number != "":
+					caller = number
+				else:
+					# strip off the address part of the remote caller/callee, if there is any
+					nl = caller.find('\n')
+					if nl != -1:
+						caller = caller[:nl]
+					elif caller[0] == '[' and caller[-1] == ']':
+						# that means, we've got an unknown number with a city added from avon.dat 
+						if (len(number) + 1 + len(caller) + len(phone)) <= 40:
+							caller = number + ' ' + caller
+						else:
+							caller = number
+	
+				while (len(caller) + len(phone)) > 40:
+					if len(caller) > len(phone):
+						caller = caller[: - 1]
+					else:
+						phone = phone[: - 1]
+	
+				text = text + "%s %s %s %s\n" % (date, caller, direction, phone)
+				debug("[FritzCallList] display: '%s %s %s %s'" % (date, caller, direction, phone))
+
+		# display screen
+		Notifications.AddNotification(MessageBox, text, type=MessageBox.TYPE_INFO)
+		# TODO please HELP: from where can I get a session?
+		# my_global_session.open(FritzDisplayCalls, text)
+		self.callList = [ ]
+
+callList = FritzCallList()
+
+def findFace(number, name):
+	debug("[FritzCall] findFace number/name: %s/%s" % (number, name))
+	if name:
+		sep = name.find(',')
+		if sep != -1:
+			name = name[:sep]
+		sep = name.find('\n')
+		if sep != -1:
+			name = name[:sep]
+	else:
+		name = _("UNKNOWN")
+
+	facesDir = os.path.join(config.plugins.FritzCall.phonebookLocation.value, "FritzCallFaces")
+	numberFile = os.path.join(facesDir, number)
+	nameFile = os.path.join(facesDir, name)
+	facesFile = ""
+	if number and os.path.exists(numberFile):
+		facesFile = numberFile
+	elif number and os.path.exists(numberFile + ".png"):
+		facesFile = numberFile + ".png"
+	elif number and os.path.exists(numberFile + ".PNG"):
+		facesFile = numberFile + ".PNG"
+	elif name and os.path.exists(nameFile + ".png"):
+		facesFile = nameFile + ".png"
+	elif name and os.path.exists(nameFile + ".PNG"):
+		facesFile = nameFile + ".PNG"
+	else:
+		facesFile = resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/input_info.png")
+
+	debug("[FritzCall] findFace result: %s" % (facesFile))
+	return facesFile
+
+class MessageBoxPixmap(Screen):
+	def __init__(self, session, text, number = "", name = "", timeout = -1):
+		self.skin = """
+	<screen name="MessageBoxPixmap" position="center,center" size="600,10" title="MessageBoxPixmap">
+		<widget name="text" position="115,8" size="520,0" font="Regular;%d" />
+		<widget name="InfoPixmap" pixmap="%s" position="5,5" size="100,100" alphatest="on" />
+	</screen>
+		""" % (
+			# scaleH(350, 60), scaleV(175, 245),
+			scaleV(24, 22), resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/input_info.png")
+			)
+		debug("[FritzCall] MessageBoxPixmap number: %s" % number)
+		Screen.__init__(self, session)
+		# MessageBox.__init__(self, session, text, type=MessageBox.TYPE_INFO, timeout=timeout)
+		self["text"] = Label(text)
+		self["InfoPixmap"] = Pixmap()
+		self._session = session
+		self._number = number
+		self._name = name
+		self._timerRunning = False
+		self._timer = None
+		self._timeout = timeout
+		self._origTitle = None
+		self._initTimeout()
+		self.onLayoutFinish.append(self._finishLayout)
+		self["actions"] = ActionMap(["OkCancelActions"],
+		{
+			"cancel": self._exit,
+			"ok": self._exit, }, - 2)
+
+	def _finishLayout(self):
+		# pylint: disable=W0142
+		debug("[FritzCall] MessageBoxPixmap/setInfoPixmap number: %s/%s" % (self._number, self._name))
+
+		faceFile = findFace(self._number, self._name)
+		picPixmap = LoadPixmap(faceFile)
+		if not picPixmap:	# that means most probably, that the picture is not 8 bit...
+			Notifications.AddNotification(MessageBox, _("Found picture\n\n%s\n\nBut did not load. Probably not PNG, 8-bit") %faceFile, type = MessageBox.TYPE_ERROR)
+			picPixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/input_error.png"))
+		picSize = picPixmap.size()
+		self["InfoPixmap"].instance.setPixmap(picPixmap)
+
+		# recalculate window size
+		textSize = self["text"].getSize()
+		textSize = (textSize[0]+20, textSize[1]+20) # don't know, why, but size is too small
+		textSize = eSize(*textSize)
+		width = max(scaleH(600, 280), picSize.width() + textSize.width() + 30)
+		height = max(scaleV(300, 250), picSize.height()+10, textSize.height()+10)
+		wSize = (width, height)
+		wSize = eSize(*wSize)
+
+		# center the smaller vertically
+		hGap = (width-picSize.width()-textSize.width())/3
+		picPos = (hGap, (height-picSize.height())/2+1)
+		textPos = (hGap+picSize.width()+hGap, (height-textSize.height())/2+1)
+
+		# resize screen
+		self.instance.resize(wSize)
+		# resize text
+		self["text"].instance.resize(textSize)
+		# resize pixmap
+		self["InfoPixmap"].instance.resize(picSize)
+		# move text
+		self["text"].instance.move(ePoint(*textPos))
+		# move pixmap
+		self["InfoPixmap"].instance.move(ePoint(*picPos))
+		# center window
+		self.instance.move(ePoint((DESKTOP_WIDTH-wSize.width())/2, (DESKTOP_HEIGHT-wSize.height())/2))
+
+	def _initTimeout(self):
+		if self._timeout > 0:
+			self._timer = eTimer()
+			self._timer.callback.append(self._timerTick)
+			self.onExecBegin.append(self._startTimer)
+			self._origTitle = None
+			if self.execing:
+				self._timerTick()
+			else:
+				self.onShown.append(self.__onShown)
+			self._timerRunning = True
+		else:
+			self._timerRunning = False
+
+	def __onShown(self):
+		self.onShown.remove(self.__onShown)
+		self._timerTick()
+
+	def _startTimer(self):
+		self._timer.start(1000)
+
+#===============================================================================
+#	def stopTimer(self):
+#		if self._timerRunning:
+#			del self._timer
+#			self.setTitle(self._origTitle)
+#			self._timerRunning = False
+#===============================================================================
+
+	def _timerTick(self):
+		if self.execing:
+			self._timeout -= 1
+			if self._origTitle is None:
+				self._origTitle = self.instance.getTitle()
+			self.setTitle(self._origTitle + " (" + str(self._timeout) + ")")
+			if self._timeout == 0:
+				self._timer.stop()
+				self._timerRunning = False
+				self._exit()
+
+	def _exit(self):
+		self.close()
+
+mutedOnConnID = None
+def notifyCall(event, date, number, caller, phone, connID):
+	if Standby.inStandby is None or config.plugins.FritzCall.afterStandby.value == "each":
+		if event == "RING":
+			global mutedOnConnID
+			if config.plugins.FritzCall.muteOnCall.value and not mutedOnConnID:
+				debug("[FritzCall] mute on connID: %s" % connID)
+				mutedOnConnID = connID
+				# eDVBVolumecontrol.getInstance().volumeMute() # with this, we get no mute icon...
+				if not eDVBVolumecontrol.getInstance().isMuted():
+					globalActionMap.actions["volumeMute"]()
+			text = _("Incoming Call on %(date)s at %(time)s from\n---------------------------------------------\n%(number)s\n%(caller)s\n---------------------------------------------\nto: %(phone)s") % { 'date':date[:8], 'time':date[9:], 'number':number, 'caller':caller, 'phone':phone }
+		else:
+			text = _("Outgoing Call on %(date)s at %(time)s to\n---------------------------------------------\n%(number)s\n%(caller)s\n---------------------------------------------\nfrom: %(phone)s") % { 'date':date[:8], 'time':date[9:], 'number':number, 'caller':caller, 'phone':phone }
+		debug("[FritzCall] notifyCall:\n%s" % text)
+		# Notifications.AddNotification(MessageBox, text, type=MessageBox.TYPE_INFO, timeout=config.plugins.FritzCall.timeout.value)
+		Notifications.AddNotification(MessageBoxPixmap, text, number=number, name=caller, timeout=config.plugins.FritzCall.timeout.value)
+	elif config.plugins.FritzCall.afterStandby.value == "inList":
+		#
+		# if not yet done, register function to show call list
+		global standbyMode
+		if not standbyMode :
+			standbyMode = True
+			Standby.inStandby.onHide.append(callList.display) #@UndefinedVariable
+		# add text/timeout to call list
+		callList.add(event, date, number, caller, phone)
+		debug("[FritzCall] notifyCall: added to callList")
+	else: # this is the "None" case
+		debug("[FritzCall] notifyCall: standby and no show")
+
+	# user exit
+	# call FritzCallserAction.sh in the same dir as Phonebook.txt with the following parameters:
+	# event: "RING" (incomning) or "CALL" (outgoing)
+	# date of event, format: "dd.mm.yy hh.mm.ss"
+	# telephone number which is calling/is called
+	# caller's name and address, format Name\n Street\n ZIP City
+	# line/number which is called/which is used for calling
+	userActionScript = os.path.join(config.plugins.FritzCall.phonebookLocation.value, "FritzCallUserAction.sh")
+	if os.path.exists(userActionScript) and os.access(userActionScript, os.X_OK):
+		cmd = userActionScript + ' "' + event + '" "' + date + '" "' + number + '" "' + caller + '" "' + phone + '"'
+		debug("[FritzCall] notifyCall: calling: %s" % cmd)
+		os.system(cmd)
+
+
+#===============================================================================
+#		We need a separate class for each invocation of reverseLookup to retain
+#		the necessary data for the notification
+#===============================================================================
+
+countries = { }
+reverselookupMtime = 0
+
+class FritzReverseLookupAndNotifier:
+	def __init__(self, event, number, caller, phone, date, connID):
+		'''
+		
+		Initiate a reverse lookup for the given number in the configured country
+		
+		@param event: CALL or RING
+		@param number: number to be looked up
+		@param caller: caller including name and address
+		@param phone: Number (and name) of or own phone
+		@param date: date of call
+		'''
+		debug("[FritzReverseLookupAndNotifier] reverse Lookup for %s!" % number)
+		self.event = event
+		self.number = number
+		self.caller = caller
+		self.phone = phone
+		self.date = date
+		self.connID = connID
+
+		if number[0] != "0":
+			self.notifyAndReset(number, caller)
+			return
+
+		ReverseLookupAndNotifier(number, self.notifyAndReset, "UTF-8", config.plugins.FritzCall.country.value)
+
+	def notifyAndReset(self, number, caller):
+		'''
+		
+		this gets called with the result of the reverse lookup
+		
+		@param number: number
+		@param caller: name and address of remote. it comes in with name, address and city separated by commas
+		'''
+		debug("[FritzReverseLookupAndNotifier] got: " + caller)
+		self.number = number
+#===============================================================================
+#		if not caller and os.path.exists(config.plugins.FritzCall.phonebookLocation.value + "/PhoneBook.csv"):
+#			caller = FritzOutlookCSV.findNumber(number, config.plugins.FritzCall.phonebookLocation.value + "/PhoneBook.csv") #@UndefinedVariable
+#			debug("[FritzReverseLookupAndNotifier] got from Outlook csv: " + caller)
+#===============================================================================
+#===============================================================================
+#		if not caller and os.path.exists(config.plugins.FritzCall.phonebookLocation.value + "/PhoneBook.ldif"):
+#			caller = FritzLDIF.findNumber(number, open(config.plugins.FritzCall.phonebookLocation.value + "/PhoneBook.ldif"))
+#			debug("[FritzReverseLookupAndNotifier] got from ldif: " + caller)
+#===============================================================================
+
+		name = handleReverseLookupResult(caller)
+		if name:
+			self.caller = name.replace(", ", "\n").replace('#','')
+			# TODO: I don't know, why we store only for incoming calls...
+			# if self.number != 0 and config.plugins.FritzCall.addcallers.value and self.event == "RING":
+			if self.number != 0 and config.plugins.FritzCall.addcallers.value:
+				debug("[FritzReverseLookupAndNotifier] add to phonebook")
+				phonebook.add(self.number, self.caller)
+		else:
+			name = resolveNumberWithAvon(self.number, config.plugins.FritzCall.country.value)
+			if not name:
+				self.caller = _("UNKNOWN")
+			else:
+				self.caller = name
+		notifyCall(self.event, self.date, self.number, self.caller, self.phone, self.connID)
+		# kill that object...
+
+class FritzProtocol(LineReceiver):
+	def __init__(self):
+		debug("[FritzProtocol] " + "$Revision: 643 $"[1:-1]	+ "$Date: 2011-04-30 12:38:52 +0200 (Sa, 30. Apr 2011) $"[7:23] + " starting")
+		global mutedOnConnID
+		mutedOnConnID = None
+		self.number = '0'
+		self.caller = None
+		self.phone = None
+		self.date = '0'
+		self.event = None
+		self.connID = None
+
+	def resetValues(self):
+		debug("[FritzProtocol] resetValues")
+		self.number = '0'
+		self.caller = None
+		self.phone = None
+		self.date = '0'
+		self.event = None
+		self.connID = None
+
+	def notifyAndReset(self):
+		notifyCall(self.event, self.date, self.number, self.caller, self.phone, self.connID)
+		self.resetValues()
+
+	def lineReceived(self, line):
+		debug("[FritzProtocol] lineReceived: %s" % line)
+#15.07.06 00:38:54;CALL;1;4;<from/our msn>;<to/extern>;
+#15.07.06 00:38:58;DISCONNECT;1;0;
+#15.07.06 00:39:22;RING;0;<from/extern>;<to/our msn>;
+#15.07.06 00:39:27;DISCONNECT;0;0;
+		anEvent = line.split(';')
+		(self.date, self.event) = anEvent[0:2]
+		self.connID = anEvent[2]
+
+		filtermsns = config.plugins.FritzCall.filtermsn.value.split(",")
+		for i in range(len(filtermsns)):
+			filtermsns[i] = filtermsns[i].strip()
+
+		if config.plugins.FritzCall.ignoreUnknown.value:
+			if self.event == "RING":
+				if not anEvent[3]:
+					debug("[FritzProtocol] lineReceived: call from unknown phone; skipping")
+					return
+				elif not anEvent[5]:
+					debug("[FritzProtocol] lineReceived: call to unknown phone; skipping")
+					return
+
+		# debug("[FritzProtocol] Volcontrol dir: %s" % dir(eDVBVolumecontrol.getInstance()))
+		# debug("[FritzCall] unmute on connID: %s?" %self.connID)
+		global mutedOnConnID
+		if self.event == "DISCONNECT" and config.plugins.FritzCall.muteOnCall.value and mutedOnConnID == self.connID:
+			debug("[FritzCall] unmute on connID: %s!" % self.connID)
+			mutedOnConnID = None
+			# eDVBVolumecontrol.getInstance().volumeUnMute()
+			if eDVBVolumecontrol.getInstance().isMuted():
+				globalActionMap.actions["volumeMute"]()
+		# not supported so far, because, taht would mean muting on EVERY connect, regardless of RING or CALL or filter active
+		#=======================================================================
+		# elif self.event == "CONNECT" and config.plugins.FritzCall.muteOnCall.value == "connect":
+		#	debug("[FritzCall] mute on connID: %s" % self.connID)
+		#	mutedOnConnID = self.connID
+		#	# eDVBVolumecontrol.getInstance().volumeMute() # with this, we get no mute icon...
+		#	if not eDVBVolumecontrol.getInstance().isMuted():
+		#		globalActionMap.actions["volumeMute"]()
+		#=======================================================================
+		elif self.event == "RING" or (self.event == "CALL" and config.plugins.FritzCall.showOutgoing.value):
+			phone = anEvent[4]
+			if self.event == "RING":
+				number = anEvent[3] 
+				if fritzbox and number in fritzbox.blacklist[0]:
+					debug("[FritzProtocol] lineReceived phone: '''%s''' blacklisted number: '''%s'''" % (phone, number))
+					return 
+			else:
+				number = anEvent[5]
+				if number in fritzbox.blacklist[1]:
+					debug("[FritzProtocol] lineReceived phone: '''%s''' blacklisted number: '''%s'''" % (phone, number))
+					return 
+
+			debug("[FritzProtocol] lineReceived phone: '''%s''' number: '''%s'''" % (phone, number))
+
+			if not (config.plugins.FritzCall.filter.value and phone not in filtermsns):
+				debug("[FritzProtocol] lineReceived no filter hit")
+				if phone:
+					phonename = phonebook.search(phone)		   # do we have a name for the number of our side?
+					if phonename:
+						self.phone = "%s (%s)" % (phone, phonename)
+					else:
+						self.phone = phone
+				else:
+					self.phone = _("UNKNOWN")
+
+				if not number:
+					debug("[FritzProtocol] lineReceived: no number")
+					self.number = _("number suppressed")
+					self.caller = _("UNKNOWN")
+				else:
+					if config.plugins.FritzCall.internal.value and len(number) > 3 and number[0] == "0":
+						debug("[FritzProtocol] lineReceived: strip leading 0")
+						self.number = number[1:]
+					else:
+						self.number = number
+						if self.event == "CALL" and self.number[0] != '0':					  # should only happen for outgoing
+							debug("[FritzProtocol] lineReceived: add local prefix")
+							self.number = config.plugins.FritzCall.prefix.value + self.number
+	
+					# strip CbC prefixes
+					if self.event == "CALL":
+						number = stripCbCPrefix(self.number, config.plugins.FritzCall.country.value)
+	
+					debug("[FritzProtocol] lineReceived phonebook.search: %s" % self.number)
+					self.caller = phonebook.search(self.number)
+					debug("[FritzProtocol] lineReceived phonebook.search reault: %s" % self.caller)
+					if not self.caller:
+						if config.plugins.FritzCall.lookup.value:
+							FritzReverseLookupAndNotifier(self.event, self.number, self.caller, self.phone, self.date, self.connID)
+							return							# reverselookup is supposed to handle the message itself
+						else:
+							self.caller = _("UNKNOWN")
+
+				self.notifyAndReset()
+
+class FritzClientFactory(ReconnectingClientFactory):
+	initialDelay = 20
+	maxDelay = 30
+
+	def __init__(self):
+		self.hangup_ok = False
+	def startedConnecting(self, connector): #@UnusedVariable # pylint: disable=W0613
+		if config.plugins.FritzCall.connectionVerbose.value:
+			Notifications.AddNotification(MessageBox, _("Connecting to FRITZ!Box..."), type=MessageBox.TYPE_INFO, timeout=2)
+
+	def buildProtocol(self, addr): #@UnusedVariable # pylint: disable=W0613
+		global fritzbox, phonebook
+		if config.plugins.FritzCall.connectionVerbose.value:
+			Notifications.AddNotification(MessageBox, _("Connected to FRITZ!Box!"), type=MessageBox.TYPE_INFO, timeout=4)
+		self.resetDelay()
+		initDebug()
+		initCbC()
+		initAvon()
+		fritzbox = FritzCallFBF()
+		phonebook = FritzCallPhonebook()
+		return FritzProtocol()
+
+	def clientConnectionLost(self, connector, reason):
+		global fritzbox
+		if not self.hangup_ok and config.plugins.FritzCall.connectionVerbose.value:
+			Notifications.AddNotification(MessageBox, _("Connection to FRITZ!Box! lost\n (%s)\nretrying...") % reason.getErrorMessage(), type=MessageBox.TYPE_INFO, timeout=config.plugins.FritzCall.timeout.value)
+		ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
+		# config.plugins.FritzCall.enable.value = False
+		fritzbox = None
+
+	def clientConnectionFailed(self, connector, reason):
+		global fritzbox
+		if config.plugins.FritzCall.connectionVerbose.value:
+			Notifications.AddNotification(MessageBox, _("Connecting to FRITZ!Box failed\n (%s)\nretrying...") % reason.getErrorMessage(), type=MessageBox.TYPE_INFO, timeout=config.plugins.FritzCall.timeout.value)
+		ReconnectingClientFactory.clientConnectionFailed(self, connector, reason)
+		# config.plugins.FritzCall.enable.value = False
+		fritzbox = None
+		
+class FritzCall:
+	def __init__(self):
+		self.dialog = None
+		self.desc = None
+		if config.plugins.FritzCall.enable.value:
+			self.connect()
+
+	def connect(self):
+		self.abort()
+		if config.plugins.FritzCall.enable.value:
+			fact = FritzClientFactory()
+			self.desc = (fact, reactor.connectTCP(config.plugins.FritzCall.hostname.value, 1012, fact)) #@UndefinedVariable # pylint: disable=E1101
+
+	def shutdown(self):
+		self.abort()
+
+	def abort(self):
+		if self.desc is not None:
+			self.desc[0].hangup_ok = True
+			self.desc[0].stopTrying()
+			self.desc[1].disconnect()
+			self.desc = None
+
+def displayCalls(session, servicelist=None): #@UnusedVariable # pylint: disable=W0613
+	if config.plugins.FritzCall.enable.value:
+		if fritzbox:
+			session.open(FritzDisplayCalls)
+		else:
+			Notifications.AddNotification(MessageBox, _("Cannot get calls from FRITZ!Box"), type=MessageBox.TYPE_INFO)
+	else:
+		Notifications.AddNotification(MessageBox, _("Plugin not active"), type=MessageBox.TYPE_INFO)
+
+def displayPhonebook(session, servicelist=None): #@UnusedVariable # pylint: disable=W0613
+	if phonebook:
+		if config.plugins.FritzCall.enable.value:
+			session.open(phonebook.FritzDisplayPhonebook)
+		else:
+			Notifications.AddNotification(MessageBox, _("Plugin not active"), type=MessageBox.TYPE_INFO)
+	else:
+		Notifications.AddNotification(MessageBox, _("No phonebook"), type=MessageBox.TYPE_INFO)
+
+def displayFBFStatus(session, servicelist=None): #@UnusedVariable # pylint: disable=W0613
+	if config.plugins.FritzCall.enable.value:
+		if fritzbox and fritzbox.info:
+			session.open(FritzMenu)
+		else:
+			Notifications.AddNotification(MessageBox, _("Cannot get infos from FRITZ!Box"), type=MessageBox.TYPE_INFO)
+	else:
+		Notifications.AddNotification(MessageBox, _("Plugin not active"), type=MessageBox.TYPE_INFO)
+
+def main(session, servicelist=None):
+	session.open(FritzCallSetup)
+
+fritz_call = None
+
+def autostart(reason, **kwargs):
+	global fritz_call
+
+	# ouch, this is a hack
+	if kwargs.has_key("session"):
+		global my_global_session
+		my_global_session = kwargs["session"]
+		return
+
+	debug("[FRITZ!Call] - Autostart")
+	if reason == 0:
+		fritz_call = FritzCall()
+	elif reason == 1:
+		fritz_call.shutdown()
+		fritz_call = None
+
+def Plugins(**kwargs): #@UnusedVariable # pylint: disable=W0613,C0103
+	what = _("Display FRITZ!box-Fon calls on screen")
+	what_calls = _("Phone calls")
+	what_phonebook = _("Phonebook")
+	what_status = _("FRITZ!Box Fon Status")
+	return [ PluginDescriptor(name="FritzCall", description=what, where=PluginDescriptor.WHERE_PLUGINMENU, icon="plugin.png", fnc=main),
+		PluginDescriptor(name=what_calls, description=what_calls, where=PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=displayCalls),
+		PluginDescriptor(name=what_phonebook, description=what_phonebook, where=PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=displayPhonebook),
+		PluginDescriptor(name=what_status, description=what_status, where=PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=displayFBFStatus),
+		PluginDescriptor(where=[PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc=autostart) ]
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/protocol.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/protocol.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/protocol.py	(revision 12232)
@@ -0,0 +1,62 @@
+from twisted.internet import reactor, protocol, ssl
+from twisted.mail import imap4
+
+# from twisted.internet import defer
+# from twisted.python import log
+# log.startLogging(open("/tmp/twisted.log","w"))
+# defer.setDebugging(True)
+from . import debug #@UnresolvedImport # pylint: disable-msg=F0401
+
+class SimpleIMAP4Client(imap4.IMAP4Client):
+	greetDeferred = None
+	def serverGreeting(self, caps):
+		debug("[SimpleIMAP4Client] serverGreeting: %s" %caps)
+		self.serverCapabilities = caps
+		if self.greetDeferred is not None:
+			self.greetDeferred(self)
+
+class SimpleIMAP4ClientFactory(protocol.ReconnectingClientFactory):
+	
+	protocol = SimpleIMAP4Client
+
+	def __init__(self, e2session, username, factory):
+		self.maxDelay = 30
+		self.noisy = True
+		self.ctx = factory
+		self.e2session = e2session
+		self.username = username
+
+	def buildProtocol(self, addr):
+		debug("[SimpleIMAP4ClientFactory] building protocol: %s" %addr)
+		pr = self.protocol(contextFactory = self.ctx)
+		pr.factory = self
+		pr.greetDeferred = self.e2session.onConnect
+		auth = imap4.CramMD5ClientAuthenticator(self.username)
+		pr.registerAuthenticator(auth)
+		return pr
+
+	def startedConnecting(self, connector):
+		debug("[SimpleIMAP4ClientFactory] startedConnecting")
+
+	def clientConnectionFailed(self, connector, reason):
+		# debug("[SimpleIMAP4ClientFactory] clientConnectionFailed: %s" %reason.getErrorMessage())
+		self.e2session.onConnectionFailed(reason)
+		protocol.ReconnectingClientFactory.clientConnectionFailed(self, connector, reason)
+
+	def clientConnectionLost(self, connector, reason):
+		# debug("[SimpleIMAP4ClientFactory] clientConnectionLost: %s" %reason.getErrorMessage())
+		self.e2session.onConnectionLost(reason)
+		protocol.ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
+
+def createFactory(e2session, username, hostname, port):
+	debug("createFactory: for %s@%s:%s" %(username, hostname, port))
+
+	f2 = ssl.ClientContextFactory()
+	factory = SimpleIMAP4ClientFactory(e2session, username, f2)
+	if port == 993:
+		reactor.connectSSL(hostname, port, factory, f2) #@UndefinedVariable # pylint: disable-msg=E1101
+	else:
+		reactor.connectTCP(hostname, port, factory) #@UndefinedVariable # pylint: disable-msg=E1101
+
+	debug("createFactory: factory started")
+	return factory
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/reverselookup.xml
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/reverselookup.xml	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/reverselookup.xml	(revision 12232)
@@ -0,0 +1,1528 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- reverselookup.xml revision 1.03 from 20, Jun 2008
+
+	 The syntax of this file is fairly self-explanatory
+     However, a few things need to be said. First and foremost
+     everything in here needs to be xml compliant, that means all
+     quotes, pound signs etc need to be properly escaped!!!
+     Otherwise jfritz will refuse too load due to of SAX errors.
+     
+     Websites and pattern entries are processed in the order they
+     are placed. This is important when determining what web site should
+     be used first and what pattern should be used for that web site first.
+   	 As soon as one matching name is found, jfritz will stop trying other
+   	 patterns / entries.
+   	 +46
+   	 Make sure that each url entry contains the string $NUMBER at the
+   	 appropriate spot or else the algorithm won't work! The attributes prefix
+   	 and areacode are optional. The attribute prefix is used to determine if 
+   	 the number needs the area code prefix or not. if the attribute area code
+   	 is set make sure to include string $AREACODE, or $PFXAREACODE at the
+   	 appropriate spot in the url. For more info see http://www.jfritz.org
+   	    	 
+-->
+
+<reverselookup version="1.01">
+	<country code="+1">
+		<website name="whitepages.com" url="http://www.whitepages.com/search/ReversePhone?phone=$NUMBER" prefix="1">
+			<entry firstOccurance="firstname">
+				<firstname>'FIRST'\s*:\s*&quot;([^&quot;]*)&quot;,</firstname>
+				<lastname>'LAST'\s*:\s*&quot;([^&quot;]*)&quot;,</lastname>
+				<street>'ADDRESS'\s*:\s*&quot;([^&quot;]*)&quot;,</street>
+				<city>'CITY'\s*:\s*&quot;([^&quot;]*)&quot;,</city>
+				<zipcode>'ZIP'\s*:\s*&quot;([^&quot;]*)&quot;,</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+1x">
+		<website name="caribbeanyellowpages.com" url="http://www.caribbeanyellowpages.com/yellowsearch.html?heading=$AREACODE$NUMBER&amp;submit2=Search&amp;ListingAgentFormat=eSYPE" prefix="" hidden="@HiddenXDoc&quot;\s*?value=&quot;([^&quot;]*)&quot;" nexturl="http://www.caribbeanyellowpages.com/ListBossPage.html?eRequestedPageType=ListingsByPhone&amp;ListingAgentFormat=eSUPE&amp;ClassID=&amp;ProductID=&amp;Tab=&amp;DoSetCookie=off&amp;Alphabet=&amp;DisableViewSwitch=false&amp;PageBossPageNumber=-1&amp;ListBossPageNumber=-1&amp;HiddenXDoc=$HIDDEN&amp;IProdItemID=&amp;originalquery=$AREACODE$NUMBER">
+			<entry>
+				<name>SUPEfindingLine[^&gt;]*&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;td\sstyle=&quot;padding-right:\s*4px;\s*padding-left:\s*4px;&quot;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+1345">
+		<website name="caymanislandsyp.com" url="http://www.caymanislandsyp.com/ListBossPage.html?heading=$PART1-$PART2&amp;submit2=Search&amp;ListingAgentFormat=eSYPE" prefix="" hidden="@HiddenXDoc&quot;\s*?value=&quot;([^&quot;]*)&quot;" nexturl="http://www.caymanislandsyp.com/ListBossPage.html?eRequestedPageType=ListingsByPhone&amp;ListingAgentFormat=eSUPE&amp;ClassID=&amp;ProductID=&amp;Tab=&amp;DoSetCookie=off&amp;Alphabet=&amp;DisableViewSwitch=false&amp;PageBossPageNumber=-1&amp;ListBossPageNumber=-1&amp;HiddenXDoc=$HIDDEN&amp;IProdItemID=&amp;originalquery=$NUMBER">
+			<entry>
+				<name>SUPEfindingLine&quot;?&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;td\sstyle=&quot;padding-right:\s*4px;\s*padding-left:\s*4px;&quot;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+1441">
+		<website name="bermudayp.com" url="http://www.informationpages.com/sys/pageserver.dll?b=43&amp;p=0&amp;s=-6&amp;f=&amp;gp=0&amp;go=$NUMBER" prefix="">
+			<entry>
+				<name>class.NameLink&quot;?&gt;([^&lt;]*)&lt;</name>
+				<street>ltext0&quot;?&gt;(?:&lt;t[^&lt;]*&lt;[^&lt;]*&lt;[^&lt;]*&lt;[^&lt;]*&lt;[^&lt;]*&lt;[^&lt;]*&lt;td&gt;)?([^,]*),</street>
+				<city>ltext0&quot;?&gt;(?:&lt;t[^&lt;]*&lt;[^&lt;]*&lt;[^&lt;]*&lt;[^&lt;]*&lt;[^&lt;]*&lt;[^&lt;]*&lt;td&gt;)?[^,]*,([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+1670">
+		<website name="cnmiphonebook.com" url="http://www.informationpages.com/sys/pageserver.dll?b=390&amp;p=1&amp;s=-4&amp;f=&amp;gp=&amp;go=$NUMBER" prefix="">
+			<entry>
+				<name>SPAN\sCLASS=WN\sSTYLE=&quot;(?:[^B]*)BACKGROUND-COLOR:#ccddff&quot;&gt;([^&lt;]*)&lt;</name>
+				<street>()</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+1671">
+		<website name="cnmiphonebook.com" url="http://www.informationpages.com/sys/pageserver.dll?b=388&amp;p=1&amp;s=-4&amp;f=&amp;gp=&amp;go=$NUMBER" prefix="">
+			<entry>
+				<name>SPAN\sCLASS=WN\sSTYLE=&quot;BACKGROUND-COLOR:#ccddff&quot;&gt;([^&lt;]*)&lt;</name>
+				<street>()</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+20">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Egypt" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$AREACODE$NUMBER&amp;substring=0&amp;Country=Egypt" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+221">
+		<website name="senegalphonebook.com" url="http://www.senegalphonebook.com/en/whitepages/?start=1&amp;q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+222">
+		<website name="mauritaniaphonebook.com" url="http://www.mauritaniaphonebook.com/en/whitepages/?start=1&amp;q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+223">
+		<website name="maliphonebook.com" url="http://www.maliphonebook.com/en/whitepages/?&amp;q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+224">
+		<website name="guineaphonebook.com" url="http://www.guineaphonebook.com/en/whitepages/?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+225">
+		<website name="abc.ci" url="http://www.abc.ci/index.php?page=4&amp;numero=$NUMBER&amp;Submit=Rechercher" prefix="">
+			<entry>
+				<name>td\swidth=&quot;49%&quot;(?:[^&gt;]*?&gt;){3}([^&lt;]*?)&lt;</name>
+				<street>&lt;i&gt;\s*([^\s]*\s*[^\s]*\s*[^\s]*)\s</street>
+				<city>&lt;i&gt;\s*[^\s]*\s*[^\s]*\s*[^\s]*\s*([^&lt;]*?)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+226">
+		<website name="burkinaphonebook.com" url="http://www.burkinaphonebook.com/en/whitepages/?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+227">
+		<website name="nigerphonebook.com" url="http://www.nigerphonebook.com/en/whitepages/?start=1&amp;q=$PART1-$PART2-$PART3-$PART4" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+228">
+		<website name="togophonebook.com" url="http://www.togophonebook.com/en/whitepages/?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+229">
+		<website name="beninphonebook.com" url="http://www.beninphonebook.com/en/whitepages/?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+230">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+		<website name="mauritius-yellow-pages.info" url="http://www.mauritius-yellow-pages.info/visitors_advanced_search_result_mauritius_yellow_pages.php?xcbocategory=0&amp;txtxoxphone=$NUMBER" nexturl="http://www.mauritius-yellow-pages.info/visitors_display_company_details_mauritius_yellow_pages.php?advertiserid=$HIDDEN" prefix="" hidden="visitors_display_company_details_mauritius_yellow_pages\.php\?advertiserid=(\d*)'">
+			<entry>
+				<name>&lt;title&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;b&gt;City:(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</street>
+				<city>&lt;b&gt;City:(?:[^&gt;]*?&gt;){11}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+236">
+		<website name="centralafricaphonebook.com" url="http://www.centralafricaphonebook.com/en/whitepages/?start=1&amp;q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+237">
+		<website name="cameroonphonebook.com" url="http://www.cameroonphonebook.com/en/whitepages/?start=1&amp;q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+238">
+		<website name="paginasamarelas.cv" url="http://www.paginasamarelas.cv/resultados_pesquisa.aspx?tipoMeio=1&amp;txtMeio=$NUMBER&amp;tipoPesq=a&amp;procura=s&amp;lang=pt" nexturl="http://www.paginasamarelas.cv/detalhe_pesquisa.aspx?id=$HIDDEN" prefix="" hidden="aspx\?id=(\d{5})">
+			<entry>
+				<name>&lt;b&gt;Nome:&lt;/b&gt;\s?([^&lt;]*)&lt;</name>
+				<street>()</street>
+				<city>&lt;b&gt;Morada:&lt;/b&gt;\s?([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+239">
+		<website name="paginasamarelas.st" url="http://213.13.158.108/saotome/resultados_pesquisa.aspx?tipoMeio=1&amp;txtMeio=$NUMBER&amp;tipoPesq=a&amp;procura=s&amp;lang=pt" nexturl="http://213.13.158.108/saotome/detalhe_pesquisa.aspx?id=$HIDDEN" prefix="" hidden="aspx\?id=(\d{5})">
+			<entry>
+				<name>&lt;b&gt;Nome:&lt;/b&gt;\s?([^&lt;]*)&lt;</name>
+				<street>()</street>
+				<city>&lt;b&gt;Morada:&lt;/b&gt;\s?([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+240">
+		<website name="malabophonebook.com" url="http://www.malabophonebook.com/pagesblanches/?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+241">
+		<website name="gabonphonebook.com" url="http://www.gabonphonebook.com/en/whitepages/?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+242">
+		<website name="congophonebook.com" url="http://www.congophonebook.com/en/whitepages/?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+244">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+248">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+250">
+		<website name="rwandaphonebook.com" url="http://www.rwandaphonebook.com/en/whitepages/?&amp;q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+251">
+		<website name="ethiopiabook.com" url="http://www.ethiopiabook.com/whitepages/?start=1&amp;q=$NUMBER" prefix="0">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+253">
+		<website name="djiboutiphonebook.com" url="http://www.djiboutiphonebook.com/pagesblanches/?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+254">
+		<website name="yellowpageskenya.com" url="http://www.yellowpageskenya.com/index.php?yp=1&amp;srchppltxt=$NUMBER&amp;search=search+for+people" prefix="">
+			<entry>
+				<name>div\sclass=.pagination(?:[^&gt;]*?&gt;){8}([^&lt;]*)&lt;</name>
+				<street>(P.\sO.\sBox\s\d{5})</street>
+				<city>P.\sO.\sBox\s\d{5}\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+255">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s\(0$AREACODE\)\s$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+257">
+		<website name="burundiphonebook.com" url="http://www.burundiphonebook.com/en/whitepages/?start=1&amp;q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;h4&gt;([^&lt;]*)&lt;</name>
+				<street>(?:&lt;address&gt;([^,^&lt;]*?,[^,^&lt;]*?),[^&lt;]*?&lt;)|(?:&lt;address&gt;([^,^&lt;]*?),[^&lt;]*?&lt;)</street>
+				<city>(?:&lt;address&gt;(?:[^,^&lt;]*?,){0,2}([^&lt;]*?)&lt;/address&gt;)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+258">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s(?:\(\d*?\)\s)$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+260">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s\(0$AREACODE\)\s$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+262">
+		<website name="infobel.com" url="http://infobel.com/en/france/Inverse.aspx?qPhone=0262$NUMBER&amp;qSelLang3=&amp;SubmitREV=Search&amp;inphCoordType=EPSG" prefix="">
+			<entry>
+				<name>div\sclass=.result-head.&gt;&lt;h3&gt;1\.\s*([^&lt;]*)&lt;</name>
+				<street>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;([^,]*),</street>
+				<city>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*\d{5}\s*([^&lt;]*)&lt;</city>
+				<zipcode>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*(\d{5})</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+263">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s\(0$AREACODE\)\s$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+		<website name="telone.co.zw" url="http://www.telone.co.zw/cgi-bin/searchdir.pl" prefix="" post="searchtxt=$NUMBER&amp;city=0$AREACODE&amp;I1.x=26&amp;I1.y=8&amp;searchcol=number&amp;searchcol1=resbus">
+			<entry>
+				<name>Address(?:[^&gt;]*?&gt;){8}([^&lt;]*)&lt;</name>
+				<street>Address(?:[^&gt;]*?&gt;){16}([^&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+264">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s\(0$AREACODE\)\s$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+265">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s(?:\(09265\)\s)?$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>()</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+266">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s$PART1-$PART2">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+267">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$AREACODE$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s$AREACODE-$NUMBER">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+268">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$AREACODE$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s$AREACODE-$NUMBER">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*(?:&lt;br&gt;[^&lt;]*))&lt;|Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+269">
+		<website name="infobel.com" url="http://infobel.com/en/france/Inverse.aspx?qPhone=0269$NUMBER&amp;qSelLang3=&amp;SubmitREV=Search&amp;inphCoordType=EPSG" prefix="">
+			<entry>
+				<name>div\sclass=.result-head.&gt;&lt;h3&gt;1\.\s*([^&lt;]*)&lt;</name>
+				<street>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;([^,]*),</street>
+				<city>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*\d{5}\s*([^&lt;]*)&lt;</city>
+				<zipcode>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*(\d{5})</zipcode>
+			</entry>
+		</website>
+		<website name="comorestelecom.km" url="http://www.comorestelecom.km/annu_inverse.php?passage=1&amp;phone=$NUMBER&amp;Submit=Rechercher" prefix="">
+			<entry>
+				<name>Votre\srequ&amp;ecirc;te[^\d]*$NUMBER(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</name>
+				<street>Votre\srequ&amp;ecirc;te[^\d]*$NUMBER(?:[^&gt;]*&gt;){9}([^&amp;]*&amp;[^&amp;]*)</street>
+				<city>Votre\srequ&amp;ecirc;te[^\d]*$NUMBER(?:[^&gt;]*&gt;){9}(?:[^&amp;]*&amp;nbsp;){2}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+27">
+		<website name="brabys.co.za" url="http://www.brabys.co.za/search-Results.asp?region=-1&amp;town=-1&amp;numnum=$NUMBER" nexturl="http://www.brabys.co.za/$HIDDEN" prefix="" hidden="&lt;a\shref=&quot;([^&quot;]*)&quot;(?:[^&gt;]*&gt;){6}\s\(0$AREACODE\)">
+			<entry>
+				<name>font-size:\ssmaller;"(?:[^;]*;){3}([^&lt;]*)&lt;</name>
+				<street>Physical\sAddress(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>Physical\sAddress(?:[^&gt;]*?&gt;){6}([^&lt;]*&lt;br&gt;[^&lt;]*)&lt;</city>
+				<zipcode>Physical\sAddress(?:[^&gt;]*?&gt;){8}\s?([^&lt;]*)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+297">
+		<website name="arubian.net" url="http://arubian.net/cgi-bin/data.cgi" prefix="" post="pass=ok&amp;user=phonebook&amp;searchtype=any&amp;field=&amp;searchtext=$PART1-$PART2&amp;find=GO">
+			<entry>
+				<name>Address(?:[^&gt;]*?&gt;){3}&quot;([^&quot;]*)&quot;&lt;</name>
+				<street>Address(?:[^&gt;]*?&gt;){5}&quot;([^&quot;]*)&quot;&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+298">
+		<website name="nummar.fo" url="http://www.nummar.fo/urslit.php?leita=vidka&amp;nummar=$NUMBER" prefix="">
+			<entry>
+				<name>AutoNumber1(?:[^&gt;]*&gt;){10}([^,^&lt;]*),</name>
+				<street>AutoNumber1(?:[^&gt;]*&gt;){10}(?:[^,^&lt;]*),([^,^&lt;]*),[^&lt;]*&lt;</street>
+				<city>AutoNumber1(?:[^&gt;]*&gt;){10}(?:[^,^&lt;]*,[^,^&lt;]*,)([^&lt;]*)&lt;|AutoNumber1(?:[^&gt;]*&gt;){10}(?:[^,^&lt;]*,)([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+30">
+		<website name="whitepages.gr" url="http://www.whitepages.gr/en/results.aspx" prefix="" post="x_tel=$NUMBER">
+			<entry>
+				<name>&lt;td\sclass=&quot;text-black&quot;\sheight=&quot;46&quot;\svalign=&quot;top&quot;\salign=&quot;left&quot;\s?&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>reslist_ctl01_straddr[^&gt;]*&gt;([^&lt;]*)&lt;</street>
+				<city>reslist_ctl01_district[^&gt;]*&gt;([^&lt;]*)&lt;</city>
+				<zipcode>reslist_ctl01_postal[^&gt;]*&gt;([^&lt;]*)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+31">
+		<website name="www.nummerzoeker.com" url="http://www.nummerzoeker.com/?phone=$NUMBER&amp;maxrows=10&amp;page=0&amp;export=excel" prefix="0">
+			<entry firstOccurance="lastname">
+				<firstname>^[^,]*,[^,]*,([^,]*),[^,]*,[^,]*,[^,]*$</firstname>
+				<lastname>^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$</lastname>
+				<name>^[^,]*,([^,]*,[^,]*),[^,]*,[^,]*,[^,]*$</name>
+				<street>^[^,]*,[^,]*,[^,]*,([^,]*),[^,]*,[^,]*$</street>
+				<city>^[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,([^,]*)$</city>
+				<zipcode>^[^,]*,[^,]*,[^,]*,[^,]*,([^,]*),[^,]*$</zipcode>
+			</entry>
+		</website>
+		<website name="www.gebeld.nl" url="http://www.gebeld.nl/content.asp?zapp=zapp&amp;land=Nederland&amp;zoek=numm&amp;searchfield1=fullnumber&amp;searchfield2=&amp;queryfield1=$NUMBER" prefix="0">
+			<entry>
+				<firstname>&lt;td &gt;&lt;font size=&quot;2&quot; face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; &gt;\s*(.*?)(?: |&amp;nbsp;)[^ &lt;\r]*\s*&lt;/font&gt;</firstname>
+				<lastname>&lt;td &gt;&lt;font size=&quot;2&quot; face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; &gt;\s*.*?(?: |&amp;nbsp;)([^ &lt;\r]*)\s*&lt;/font&gt;</lastname>
+				<street>&lt;tr bgcolor=&quot;f5f5f5&quot;&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;([^&lt;]*)&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;\s*&lt;tr bgcolor=&quot;f5f5f5&quot;&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;[^&amp;]*&amp;nbsp;[^&lt;]*&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;</street>
+				<city>&lt;tr bgcolor=&quot;f5f5f5&quot;&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;[^&lt;]*&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;\s*&lt;tr bgcolor=&quot;f5f5f5&quot;&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;[^&amp;]*&amp;nbsp;([^&lt;]*)&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;</city>
+				<zipcode>&lt;tr bgcolor=&quot;f5f5f5&quot;&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;[^&lt;]*&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;\s*&lt;tr bgcolor=&quot;f5f5f5&quot;&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;([^&amp;]*)&amp;nbsp;[^&lt;]*&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+32">
+		<website name="gebeld.nl" url="http://www.gebeld.nl/content.asp?zapp=zapp&amp;land=Belgie&amp;zoek=numm&amp;searchfield1=fullnumber&amp;searchfield2=&amp;queryfield1=$NUMBER" prefix="0">
+			<entry>
+				<name>/font(?:[^&gt;]*?&gt;){4}([^&lt;]*?)&lt;</name>
+				<street>/font(?:[^&gt;]*?&gt;){12}([^&lt;]*?)&lt;</street>
+				<city>/font(?:[^&gt;]*?&gt;){19}([^&amp;]*?)&amp;nbsp;</city>
+				<zipcode>/font(?:[^&gt;]*?&gt;){19}[^&amp;]*?&amp;nbsp;([^&lt;]*?)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+33">
+		<website name="www.annuaireinverse.com" url="http://www.annuaireinverse.com/reponses.asp?LANGUE=FRFR-XXXXX&amp;RECHERCHE=EXACTE&amp;image=RechercheV4&amp;RN=$NUMBER" prefix="0">
+			<entry firstOccurance="lastname">
+				<number>tblAdresses\[0\]\[5\] = "&lt;[^&gt;]*&gt;&lt;b&gt;[^&lt;]*&lt;/b&gt;&lt;br&gt;[^&lt;]*&lt;br&gt;[^&lt;]*&lt;br&gt;([^&lt;]*)&lt;/font&gt;&quot;</number>
+				<lastname>tblAdresses\[0\]\[0\] = &quot;([^&quot;]+)&quot;;</lastname>
+				<firstname>tblAdresses\[0\]\[1\] = &quot;([^&quot;]+)&quot;;</firstname>
+				<name>tblAdresses\[0\]\[5\] = "&lt;[^&gt;]*&gt;&lt;b&gt;([^&lt;]*)&lt;/b&gt;&lt;br&gt;[^&lt;]*&lt;br&gt;[^&lt;]*&lt;br&gt;[^&lt;]*&lt;/font&gt;&quot;</name>
+				<street>tblAdresses\[0\]\[2\] = &quot;([^&quot;]+)&quot;;</street>
+				<zipcode>tblAdresses\[0\]\[3\] = &quot;([^&quot;]+)&quot;;</zipcode>
+				<city>tblAdresses\[0\]\[4\] = &quot;([^&quot;]+)&quot;;</city>
+			</entry>
+		</website>
+	</country>
+	<country code="+350">
+		<website name="gibyellow.gi" url="http://www.gibyellow.gi/number_results.asp?Number=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;strong&gt;([^&lt;]*?)&lt;/strong&gt;(?:[^&gt;]*?&gt;){7}$NUMBER&lt;</name>
+				<street>&lt;td class=&quot;name&quot;&gt;$NUMBER&lt;/td&gt;(?:[^v]+(?!a).){2}[^&gt;]*?&gt;([^&lt;]*?)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+351">
+		<website name="pai.pt" url="http://www.pai.pt/search/$NUMBER.html" prefix="">
+			<entry>
+				<name>bppost.&gt;([^&lt;]*?)&lt;</name>
+				<street>addrBlock\saddressTab\sact(?:[^&gt;]*?&gt;){2}\s*([^&lt;]*?)&lt;</street>
+				<city>addrBlock\saddressTab\sact(?:[^&gt;]*?&gt;){4}[^\s]*?\s([^&lt;]*?)&lt;</city>
+				<zipcode>addrBlock\saddressTab\sact(?:[^&gt;]*?&gt;){4}([^\s]*?)\s</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+352">
+		<website name="infobel.com" url="http://infobel.com/en/luxembourg/Inverse.aspx?qPhone=$NUMBER&amp;qSelLang3=&amp;SubmitREV=Search&amp;inphCoordType=EPSG" prefix="">
+			<entry>
+				<name>&lt;div class=\"result-item\"&gt;&lt;h2&gt;[^&lt;]*&lt;a [^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;</name>
+				<street>&lt;div class=\"result-box-col\"&gt;&lt;div&gt;&lt;strong&gt;([^,]*),\s*\d{4}\s*[^lt;]*&lt;/strong&gt;</street>
+				<city>&lt;div class=\"result-box-col\"&gt;&lt;div&gt;&lt;strong&gt;[^,]*,\s*\d{4}\s*([^lt;]*)&lt;/strong&gt;</city>
+				<zipcode>&lt;div class=\"result-box-col\"&gt;&lt;div&gt;&lt;strong&gt;[^,]*,\s*(\d{4})\s*[^lt;]*&lt;/strong&gt;</zipcode>
+			</entry>
+		</website>
+		<website name="editustel.lu" url="http://www.editustel.lu/luxweb/neosearchAT.do?input=$NUMBER" prefix="">
+			<entry>
+				<name>raisSoc[^&gt;]*&gt;([^&lt;]*?)&lt;</name>
+				<street>raisSoc(?:[^&gt;]*?&gt;){5}([^&lt;]*?)&lt;</street>
+				<city>raisSoc(?:[^&gt;]*?&gt;){6}L-\d{4}&amp;nbsp;([^&lt;^\(]*)</city>
+				<zipcode>raisSoc(?:[^&gt;]*?&gt;){6}L-(\d{4})&amp;nbsp;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+354">
+		<website name="simaskra.is" url="http://ja.is/gular?q=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;strong\sclass=&quot;name\sblack&quot;&gt;([^&lt;]*?)&lt;</name>
+				<street>&lt;em\sclass=&quot;home&quot;&gt;[^&gt;]*?&gt;([^&lt;]*?)&lt;</street>
+				<city>&lt;em\sclass=&quot;zone&quot;>[^\s]*?\s([^&lt;]*?)&lt;</city>
+				<zipcode>&lt;em\sclass=&quot;zone&quot;>([^\s]*?)\s[^&lt;]*?&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+355">
+		<website name="albanianyellowpages.com" url="http://www.albanianyellowpages.com/cgi-bin/yb/advanced2.pl?address1=Doesn%27t+Matter&amp;address2=Doesn%27t+Matter&amp;companyemailaddress=Doesn%27t+Matter&amp;dateadd=Doesn%27t+Matter&amp;datemod=Doesn%27t+Matter&amp;emailaddr=Doesn%27t+Matter&amp;homepage=Doesn%27t+Matter&amp;host=Doesn%27t+Matter&amp;id=Doesn%27t+Matter&amp;ip=Doesn%27t+Matter&amp;category=&amp;name=&amp;establish=&amp;city=&amp;state=&amp;zipcode=&amp;country=Doesn%27t+Matter&amp;phone=355+$AREACODE+$NUMBER&amp;fax=&amp;I1.x=0&amp;I1.y=0" prefix="" hidden="http://www.albanianyellowpages.com/cgi-bin/yb/org.pl\?id=([^&amp;]*)&amp;" nexturl="http://www.albanianyellowpages.com/cgi-bin/yb/org.pl?id=$HIDDEN&amp;formlist=advanced2&amp;formid=$HIDDEN&amp;begin=1&amp;end=1">
+			<entry>
+				<name>file\.gif(?:[^&gt;]*&gt;){9}([^&lt;]*?)&lt;</name>
+				<street>Address:(?:[^&gt;]*&gt;){6}([^&lt;]*?)&lt;</street>
+				<city>City:(?:[^&gt;]*&gt;){6}([^&lt;]*?)&lt;</city>
+				<zipcode>Zip\s*Code:(?:[^&gt;]*&gt;){6}([^&lt;]*?)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+356">
+		<website name="maltacom.com" url="http://www.maltacom.com/edirnew/modules/edir_checkquery.asp?g_telephone=$NUMBER" prefix="">
+			<entry>
+				<name>(?:&lt;td class=ln&gt;&lt;font class=fcbd&gt;)([^&lt;]*?)&lt;</name>
+				<street>PhoneNo(?:[^&gt;]*&gt;){30}([^&lt;]*)&lt;</street>
+				<city>PhoneNo(?:[^&gt;]*&gt;){34}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+358">
+		<website name="yritystele.fi" url="http://www.yritystele.fi/query?what=adv&amp;form=adv&amp;phone=$NUMBER" prefix="0">
+			<entry>
+				<name>toggleIPText(?:[^&gt;]*?&gt;){2}([^&lt;]*?)&lt;</name>
+				<street>toggleIPText(?:[^&gt;]*?&gt;){4}\s*?\|\s*?([^,]*?),</street>
+				<city>toggleIPText(?:[^&gt;]*?&gt;){4}(?:[^,]*?,){1,2}\s*\d{5}\s([^&lt;]*?)&lt;</city>
+				<zipcode>toggleIPText(?:[^&gt;]*?&gt;){4}(?:[^,]*?,){1,2}\s*(\d{5})\s[^&lt;]*?&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+36">
+		<website name="tudakozo.t-com.hu" url="http://www.tudakozo.t-com.hu/main?rand=6037541983298298990&amp;session_name=&amp;session_isFonetic=&amp;session_searchType=2&amp;session_custType=0&amp;session_location=&amp;session_zipcode=&amp;session_street=&amp;session_houseNo=&amp;session_areaCode=$AREACODE&amp;session_phoneNumber=$NUMBER&amp;session_queryType=2&amp;func0=firstQuery%28session_queryType%2Csession_custType%2Csession_searchType%2Csession_name%2Csession_location%2Csession_street%2Csession_zipcode%2Csession_houseNo%2Csession_isFonetic%2Csession_areaCode%2Csession_phoneNumber%29&amp;xsl=result&amp;xml=result&amp;func_newsess=&amp;OnError=xml%3Dmain%26xsl%3Dmain" prefix="">
+			<entry>
+				<name>onclick=&quot;getDatasheet[^&gt;]*?&gt;\(?([^&lt;^\(]*?)\(?&lt;</name>
+				<street>KiFindMet(?:[^&gt;]*?&gt;){3}:\s(?:[^,]*?,)(?:&amp;nbsp;)?([^&lt;]*?)&lt;</street>
+				<city>KiFindMet(?:[^&gt;]*?&gt;){3}:\s([^\d]*?)\d\d\d\d,</city>
+				<zipcode>KiFindMet(?:[^&gt;]*?&gt;){3}:\s(?:[^\d]*?)(\d\d\d\d),</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+370">
+		<website name="imones.lt" url="http://www.imones.lt/en/?submit=yes&amp;search=full&amp;page=full&amp;action=search&amp;qphone=$AREACODE$NUMBER" prefix="">
+			<entry>
+				<name>rowname(?:[^&gt;]*&gt;){2}([^&lt;]*)&lt;</name>
+				<street>rowadr&quot;&gt;\d{5}[^,]*,\s([^&lt;]*)&lt;|rowadr&quot;&gt;([^,]*),</street>
+				<city>rowadr&quot;&gt;\d{5}([^,]*),|rowadr&quot;&gt;[^,]*?,\s\d{5}\s([^&lt;]*)&lt;</city>
+				<zipcode>rowadr&quot;&gt;(\d{5})|rowadr&quot;&gt;[^,]*,\s(\d{5})\s[^&lt;]*&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+371">
+		<website name="zl.lv" url="http://www.zl.lv/portal/detail-search.php?comp=&amp;phone=$NUMBER&amp;meklet_detail=Suchen" prefix="">
+			<entry>
+				<name>tooltip[^&gt;]*?&gt;([^&lt;]*?)&lt;</name>
+				<street>tooltip(?:[^&gt;]*?&gt;){4}([^,]*?),</street>
+				<city>tooltip(?:[^&gt;]*?&gt;){4}[^,]*?,([^,]*?),</city>
+				<zipcode>tooltip(?:[^&gt;]*?&gt;){4}(?:[^,]*?,){2}([^&lt;]*?)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+372">
+		<website name="telemedia.ee" url="http://www.telemedia.ee/telemedia.php?lang=et&amp;tab=num&amp;list=on&amp;po=&amp;kw=$NUMBER&amp;pohi=on" prefix="">
+			<entry>
+				<name>favorlink3.&gt;([^&lt;]*?)&lt;</name>
+				<street>favorlink3.(?:[^&gt;]*?&gt;){10}(?:&amp;nbsp;)?(([^\s\d]+\s)+\d+?)</street>
+				<city>favorlink3.(?:[^&gt;]*?&gt;){10}(?: )?(?:[^\s\d]+\s)+\d+\s(([^\s]+\s)+)\d{5}</city>
+				<zipcode>favorlink3.(?:[^&gt;]*?&gt;){10}.+(\d{5})&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+375">
+		<website name="b2b.by" url="http://www.b2b.by/en/advanced.php?region=0&amp;tel=$NUMBER" prefix="">
+			<entry>
+				<name>a\shref=.infopage\.php[^&gt;]*&gt;([^&lt;]*)&lt;(?:[^&gt;]*&gt;){5}0$AREACODE</name>
+				<street>a\shref=.infopage\.php(?:[^&gt;]*?&gt;){4}(.+)\s[^&amp;]*&amp;....;\s\d{6}&lt;(?:[^&gt;]*&gt;){2}0$AREACODE</street>
+				<city>a\shref=.infopage\.php(?:[^&gt;]*?&gt;){4}.+\s([^&amp;]*)&amp;....;\s\d{6}&lt;(?:[^&gt;]*&gt;){2}0$AREACODE</city>
+				<zipcode>a\shref=.infopage\.php(?:[^&gt;]*?&gt;){4}.+(\d{6})&lt;(?:[^&gt;]*&gt;){2}0$AREACODE</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+378">
+		<website name="paginebianche.it" url="http://www.paginebianche.it/execute.cgi?btt=1&amp;tl=2&amp;tr=106&amp;tc=&amp;cb=&amp;qs=0549+$NUMBER" prefix="">
+			<entry>
+				<name>class=&quot;dati&quot;&gt;[^&gt;]*?&gt;([^&lt;]*)&lt;</name>
+				<street>class=&quot;dati&quot;&gt;(?:[^&gt;]*?&gt;){3}\d{5}&amp;nbsp;[^&amp;]*?[^-]*?-([^&lt;]*?)&lt;</street>
+				<city>class=&quot;dati&quot;&gt;(?:[^&gt;]*?&gt;){3}\d{5}&amp;nbsp;([^&amp;]*)[^-]*-[^&lt;]*&lt;</city>
+				<zipcode>class=&quot;dati&quot;&gt;(?:[^&gt;]*?&gt;){3}(\d{5})&amp;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+380">
+		<website name="business-ua.com" url="http://business-ua.com/advsearch.phtml?aphone=$NUMBER&amp;adv_sr=10" prefix="">
+			<entry>
+				<name>&lt;p\sclass=pt1>&lt;b&gt;([^&lt;]*)&lt;/b&gt;[^\(]*\(0$AREACODE\)\s$NUMBER&lt;/p&gt;</name>
+				<street>&lt;p class=small&gt;\d*,\s[^,]*,([^&lt;]*)&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\(0$AREACODE\)\s$NUMBER&lt;/p&gt;</street>
+				<city>&lt;p class=small&gt;\d*,\s([^,]*),[^&lt;]*&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\(0$AREACODE\)\s$NUMBER&lt;/p&gt;</city>
+				<zipcode>&lt;p class=small&gt;(\d*),[^&lt;]*&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\(0$AREACODE\)\s$NUMBER&lt;/p&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+381">
+		<website name="telekom.yu" url="http://www.telekom.yu/WhitePages/SearchPage.asp" prefix="" nexturl="http://www.telekom.yu/WhitePages/ResultPage.asp" post="Telefon=3444169&amp;Ulica=&amp;MG=011&amp;Ime=&amp;Broj=&amp;Mesto=&amp;Prezime=&amp;submit.x=38&amp;submit.y=12" hidden="(wrzlgrmpf)" cookie="\[([^;]*);">
+			<entry>
+				<name>&lt;p\sclass=pt1>&lt;b&gt;([^&lt;]*)&lt;/b&gt;[^\(]*\(0$AREACODE\)\s$NUMBER&lt;/p&gt;</name>
+				<street>&lt;p class=small&gt;\d*,\s[^,]*,([^&lt;]*)&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\(0$AREACODE\)\s$NUMBER&lt;/p&gt;</street>
+				<city>&lt;p class=small&gt;\d*,\s([^,]*),[^&lt;]*&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\(0$AREACODE\)\s$NUMBER&lt;/p&gt;</city>
+				<zipcode>&lt;p class=small&gt;(\d*),[^&lt;]*&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\(0$AREACODE\)\s$NUMBER&lt;/p&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+385">
+		<website name="tportal.hr" url="http://www.tportal.hr/imenik/bijele.aspx?u=$NUMBER" prefix="0" hidden="@__VIEWSTATE&quot;\svalue=&quot;([^&quot;]*)&quot;" post="__VIEWSTATE=$HIDDEN&amp;tUpit=$NUMBER&amp;dizbor=0&amp;dzup=0&amp;tMjesto=&amp;tUlica=&amp;imbSearch.x=38&amp;imbSearch.y=14">
+			<entry>
+				<name>images/det.gif(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</name>
+				<street>prozor.focus\(\)&quot;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>prozor.focus\(\)&quot;&gt;([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+386">
+		<website name="rumenestrani.com" url="http://www.rumenestrani.com/Php3/show.php3?koren=checkbox&amp;naziv2=&amp;priimek2=&amp;x=0&amp;y=0&amp;telefonska2=$NUMBER&amp;regija2=All+regions&amp;obcina2=All+municipalities&amp;naselje2=&amp;ulica2=&amp;hisna2=&amp;posta2=&amp;eposta2=&amp;internet2=&amp;davcna2=&amp;dejavnost2=&amp;storitve2=&amp;omrezna%5B1%5D=61&amp;omrezna%5B7%5D=64&amp;omrezna%5B2%5D=62&amp;omrezna%5B8%5D=65&amp;omrezna%5B3%5D=602&amp;omrezna%5B9%5D=66&amp;omrezna%5B4%5D=69&amp;omrezna%5B10%5D=67&amp;omrezna%5B5%5D=63&amp;omrezna%5B11%5D=68&amp;omrezna%5B6%5D=601&amp;omrezna%5B12%5D=608&amp;iskanje=napredno" prefix="">
+			<entry>
+				<name>href=/Php3/show.php3.un_id[^&gt;]*?&gt;([^&lt;]*)&lt;</name>
+				<street>href=/Php3/show.php3.un_id(?:[^&gt;]*?&gt;){5}([^&lt;]*)&lt;</street>
+				<city>href=/Php3/show.php3.un_id(?:[^&gt;]*?&gt;){6}\d*.([^&lt;]*)&lt;</city>
+				<zipcode>href=/Php3/show.php3.un_id(?:[^&gt;]*?&gt;){6}(\d*)\s</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+387">
+		<website name="bhtelecom.ba" url="http://www.bhtelecom.ba/telefon_imenik.html" prefix="" hidden="id=&quot;_uqid&quot;\svalue=&quot;([^&quot;]*)&quot;$id=&quot;_cdt&quot;\svalue=&quot;([^&quot;]*)&quot;$" post="di=033&amp;br=215277&amp;btnSearch=Trazi&amp;_uqid=$HIDDEN1&amp;_cdt=$HIDDEN2&amp;_hsh=%23%23%23HSH%23%23%23" nexturl="http://www.bhtelecom.ba/index.php?id=536&amp;a=search" cookie="\[([^]]*)\]">
+			<entry>
+				<name>&lt;p\sclass=pt1>&lt;b&gt;([^&lt;]*)&lt;/b&gt;[^\(]*\($AREACODE\)\s$NUMBER&lt;/p&gt;</name>
+				<street>&lt;p class=small&gt;\d*,\s[^,]*,([^&lt;]*)&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\($AREACODE\)\s$NUMBER&lt;/p&gt;</street>
+				<city>&lt;p class=small&gt;\d*,\s([^,]*),[^&lt;]*&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\($AREACODE\)\s$NUMBER&lt;/p&gt;</city>
+				<zipcode>&lt;p class=small&gt;(\d*),[^&lt;]*&lt;/p&gt;&lt;/td&gt;&lt;td colspan=5\swidth=90\salign=left\svalign=center&gt;&lt;p\sclass=small&gt;\($AREACODE\)\s$NUMBER&lt;/p&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+39">
+		<website name="paginebianche.it" url="http://www.paginebianche.it/execute.cgi?btt=1&amp;ts=106&amp;cb=8&amp;mr=10&amp;rk=&amp;om=&amp;qs=$NUMBER" prefix="0">
+			<entry>
+				<name>class=&quot;org&quot;&gt;([^&lt;]*)&lt;</name>
+				<street>class=&quot;street-address&quot;>([^&lt;]*)&lt;</street>
+				<city>class=&quot;locality&quot;>([^&lt;]*)&lt;</city>
+				<zipcode>class=&quot;postal-code&quot;>([^&lt;]*)&lt;</zipcode>
+			</entry>
+			<entry>
+				<name>&lt;a [^&gt;]*&gt;&lt;img [^&gt;]*&gt;&lt;/a&gt;&lt;a [^&gt;]*&gt;([^&lt;]*)</name>
+				<street>&lt;font [^&gt;]*&gt;[0-9]*&amp;nbsp;[^&amp;]*[^-]*-([^&lt;]*)&lt;</street>
+				<city>&lt;font [^&gt;]*&gt;[0-9]*&amp;nbsp;([^&amp;]*)[^-]*-[^&lt;]*&lt;</city>
+				<zipcode>&lt;font [^&gt;]*&gt;([0-9]*)&amp;nbsp;[^&amp;]*[^-]*-[^&lt;]*&lt;</zipcode>
+			</entry>
+			<entry>
+				<name>&lt;td class=&quot;dati&quot;&gt;&lt;span [^&gt;]*&gt;([^&lt;]*)&lt;/span&gt;&lt;br&gt;[0-9]*&amp;nbsp;[^&amp;]*[^-]*-[^&lt;]*&lt;</name>
+				<street>&lt;td class=&quot;dati&quot;&gt;&lt;span [^&gt;]*&gt;[^&lt;]*&lt;/span&gt;&lt;br&gt;[0-9]*&amp;nbsp;[^&amp;]*[^-]*-([^&lt;]*)&lt;</street>
+				<city>&lt;td class=&quot;dati&quot;&gt;&lt;span [^&gt;]*&gt;[^&lt;]*&lt;/span>&lt;br&gt;[0-9]*&amp;nbsp;([^&amp;]*)[^-]*-[^&lt;]*&lt;</city>
+				<zipcode>&lt;td class=&quot;dati&quot;&gt;&lt;span [^&gt;]*&gt;[^&lt;]*&lt;/span&gt;&lt;br&gt;([0-9]*)&amp;nbsp;[^&amp;]*[^-]*-[^&lt;]*&lt;</zipcode>
+			</entry>
+		</website>
+		<website name="infobel.com" url="http://www.infobel.com/it/Italy/Inverse.aspx?qPhone=$NUMBER" prefix="0">
+			<entry>
+				<name>&lt;div class="result-item"&gt;&lt;h[1-9]&gt;1. (?:&lt;a href=&quot;[^&quot;]*&quot;&gt;)?([^&lt;]*)(?:&lt;/a&gt;)?&lt;!--[^&lt;]*&lt;/h[1-9]&gt;</name>
+				<street>&lt;div class=&quot;result-box-col&quot;&gt;&lt;div&gt;&lt;strong&gt;([^,]*),.[0-9]+\s*[^&lt;]*&lt;/strong&gt;&lt;/div&gt;</street>
+				<city>&lt;div class=&quot;result-box-col&quot;&gt;&lt;div&gt;&lt;strong&gt;[^,]*,.[0-9]+\s*([^&lt;]*)&lt;/strong&gt;&lt;/div&gt;</city>
+				<zipcode>&lt;div class=&quot;result-box-col&quot;&gt;&lt;div&gt;&lt;strong&gt;[^,]*,.([0-9]+)\s*[^&lt;]*&lt;/strong&gt;&lt;/div&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+41">
+		<website name ="tel.local.ch" url="http://tel.local.ch/de/q/?ext=1&amp;phone=$NUMBER" prefix="0">
+			<entry>
+				<name>&lt;h[1-9](?:&gt;&lt;a)?\sclass=&quot;fn&quot;[^&gt;]*&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span class=&quot;street-address&quot;&gt;([^&lt;]*)&lt;/span&gt;</street>
+				<city>&lt;span class=&quot;locality&quot;&gt;(?:&lt;a href=[^&gt;]*&gt;)?([^&lt;]*)(?:&lt;/a&gt;)?&lt;/span&gt;</city>
+				<zipcode>&lt;span class=&quot;postal-code&quot;>([^&lt;]*)&lt;/span&gt;</zipcode>
+			</entry>
+		</website>		
+		<website name="tel.search.ch" url="http://tel.search.ch/result.html?tel=$NUMBER" prefix="0">
+			<entry>
+				<name>&lt;div class=&quot;rname&quot;&gt;&lt;h[1-9]*&gt;&lt;a[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;</name>
+				<street>&lt;div class=&quot;raddr&quot;&gt;([^,]*),\s*&lt;span class=&quot;tel_addrpart&quot;&gt;\s*[0-9]*[^&lt;]*&lt;/span&gt;&lt;/div&gt;</street>
+				<city>&lt;div class=&quot;raddr&quot;&gt;[^,]*,\s*&lt;span class=&quot;tel_addrpart&quot;&gt;\s*[0-9]*([^&lt;/]*)(?:/[^&lt;]*)?&lt;/span&gt;&lt;/div&gt;</city>
+				<zipcode>&lt;div class=&quot;raddr&quot;&gt;[^,]*,\s*&lt;span class=&quot;tel_addrpart&quot;&gt;\s*([0-9]*)[^&lt;]*&lt;/span&gt;&lt;/div&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+423">
+		<website name="tel.search.ch" url="http://tel.search.ch/result.html?tel=00423$NUMBER" prefix="">
+			<entry>
+				<name>&lt;div class=&quot;rname&quot;&gt;&lt;h[1-9]&gt;&lt;a[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;</name>
+				<street>&lt;div class=&quot;raddr&quot;&gt;([^&lt;,]*),\s*[0-9]*[^&lt;]*&lt;/div&gt;</street>
+				<city>&lt;div class=&quot;raddr&quot;&gt;[^&lt;,]*,\s*[0-9]*([^&lt;^/]*)(?:/FL)?&lt;/div&gt;</city>
+				<zipcode>&lt;div class=&quot;raddr&quot;&gt;[^&lt;,]*,\s*([0-9]*)[^&lt;]*&lt;/div&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+43">
+		<website name="herold.at (Privat)" url="http://www.herold.at/servlet/at.herold.sp.servlet.SPWPSearchServlet?searchmask=2&amp;phone=$NUMBER" prefix="0">
+			<entry>
+				<name>&lt;h[1-9]&gt;&lt;a href=&quot;[^&quot;]*&quot;(?:\s*class=&quot;bold&quot;)?&gt;([^&lt;]*)&lt;/a&gt;&lt;/h[1-9]&gt;</name>
+				<street>&lt;div class=&quot;addrF&quot;&gt;&lt;p(?:\sclass=&quot;bold&quot;)?&gt;\s*(?:[^&lt;]+&lt;br/&gt;)?[^,]*,\s*([^&lt;]*)&lt;br /&gt;&lt;/p&gt;</street>
+				<city>&lt;div class=&quot;addrF&quot;&gt;&lt;p(?:\sclass=&quot;bold&quot;)?&gt;\s*(?:[^&lt;]+&lt;br/&gt;)?\d+ ([^,]*),\s*[^&lt;]*&lt;br /&gt;&lt;/p&gt;</city>
+				<zipcode>&lt;div class=&quot;addrF&quot;&gt;&lt;p(?:\sclass=&quot;bold&quot;)?&gt;\s*(?:[^&lt;]+&lt;br/&gt;)?(\d+) [^,]*,\s*[^&lt;]*&lt;br /&gt;&lt;/p&gt;</zipcode>
+			</entry>
+		</website>
+		<website name="herold.at (Firma)" url="http://www.herold.at/servlet/at.herold.sp.servlet.SPYPSearchServlet?searchmask=2&amp;phone=$NUMBER" prefix="0">
+			<entry>
+				<name>&lt;h[1-9]&gt;&lt;a href=&quot;[^&quot;]*&quot;\s*class=&quot;bold&quot;&gt;([^&lt;]*)&lt;/a&gt;&lt;/h[1-9]&gt;</name>
+				<street>&lt;div class=&quot;addrF&quot;&gt;&lt;p class=&quot;bold&quot;&gt;\s*[^,]*,\s*([^&lt;]*)&lt;br/&gt;&lt;/p&gt;</street>
+				<city>&lt;div class=&quot;addrF&quot;&gt;&lt;p class=&quot;bold&quot;&gt;\s*[^\s]*([^,]*),\s[^&lt;]*&lt;br/&gt;&lt;/p&gt;</city>
+				<zipcode>&lt;div class=&quot;addrF&quot;&gt;&lt;p class=&quot;bold&quot;&gt;\s*([^\s]*)\s[^,]*,\s*[^&lt;]*&lt;br/&gt;&lt;/p&gt;</zipcode>
+			</entry>
+		</website>
+		<website name="tb-online.at" url="http://www.tb-online.at/index.php?pc=in&amp;telnummer=$NUMBER&amp;aktion=suchein" prefix="0">
+			<entry>
+				<!-- 
+				zipcode hidden as image...
+				-->
+				<name>&lt;p\s*class=&quot;name&quot;&gt;\s*([^&lt;]*)&lt;/p&gt;</name>
+				<street>&lt;p&gt;([^&lt;]*)&lt;/p&gt;\s*&lt;p&gt;&lt;img class=&quot;img&quot; src=&quot;grafikpng.php?[^&gt;]*&gt;&amp;nbsp;[^&lt;]*&lt;/p&gt;</street>
+				<city>&lt;p&gt;[^&lt;]*&lt;/p&gt;\s*&lt;p&gt;&lt;img class=&quot;img&quot; src=&quot;grafikpng.php?[^&gt;]*&gt;&amp;nbsp;([^&lt;]*)&lt;/p&gt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>				
+	</country>	
+	<country code="+45">
+		<website name="degulesider.dk" url="http://www.degulesider.dk/vbw/super/resultat.do?twoFieldName=$NUMBER&amp;twoFieldAddr=&amp;Image52.x=0&amp;Image52.y=0" prefix="0">
+			<entry>
+				<name>&lt;!--\sCompany Name\s--&gt;[^&gt;]*&gt;\s*([^&lt;]*)&lt;</name>
+				<street>&lt;!--\sCompany Address\s--&gt;\s*([^&lt;]*)&lt;</street>
+				<city>&lt;!--\sCompany Address\s--&gt;[^&gt;]*&gt;\s*?\d\d\d\d\s?([^&lt;]*)&lt;</city>
+				<zipcode>&lt;!--\sCompany Address\s--&gt;[^&gt;]*&gt;\s*?(\d\d\d\d)[^&lt;]*&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+46">
+		<website name="privatpersoner.eniro.se" url="http://privatpersoner.eniro.se/query?what=wp&amp;search_word=$NUMBER&amp;geo_area=" prefix="0">
+			<entry firstOccurance="firstname">
+				<firstname>&lt;span class=&quot;given-name&quot;&gt;([^&lt;]*)&lt;/span&gt;</firstname>
+				<lastname>&lt;span class=&quot;family-name&quot;&gt;([^&lt;]*)&lt;/span&gt;</lastname>
+				<street>&lt;span class=&quot;street-address&quot;&gt;([^&lt;]*)&lt;/span&gt;</street>
+				<city>&lt;span class=&quot;locality&quot;&gt;([^&lt;]*)&lt;/span&gt;</city>
+				<zipcode>&lt;span class=&quot;postal-code&quot;&gt;([^&lt;]*)&lt;/span&gt;</zipcode>
+			</entry>
+			<entry firstOccurance="firstname">
+				<firstname>&lt;span class=&quot;given-name&quot;&gt;([^&lt;]*)&lt;/span&gt;</firstname>
+				<lastname>&lt;span class=&quot;given-name&quot;&gt;([^&lt;]*)&lt;/span&gt;&lt;/a&gt;</lastname>
+				<street>&lt;span class=&quot;street-address&quot;&gt;([^&lt;]*)&lt;/span&gt;</street>
+				<city>&lt;span class=&quot;locality&quot;&gt;([^&lt;]*)&lt;/span&gt;</city>
+				<zipcode>&lt;span class=&quot;postal-code&quot;&gt;([^&lt;]*)&lt;/span&gt;</zipcode>
+			</entry>
+			<entry>
+				<name>fn expand(?:(?:.*owner-of-cell)|[^&gt;]*&gt;)[^&gt;]*&gt;([^&lt;]*)&lt;</name>
+				<street>street-address&quot;?&gt;([^&lt;]*)&lt;</street>
+				<city>locality&quot;?&gt;([^&lt;]*)&lt;</city>
+				<zipcode>postal-code&quot;?&gt;([^&lt;]*)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+47">
+		<website name="gulesider.no" url="http://www.gulesider.no/gs/categoryList.c?q=$NUMBER" prefix="">
+			<entry>
+				<name swapFirstAndLastName="true">&lt;h2 class=&quot;name&quot;&gt;\s*&lt;a href=&quot;[^&quot;]*&quot;\s*title=&quot;[^&quot;]*&quot;&gt;\s*([- \w]*)\s*?&lt;span&gt;</name>
+				<street>&lt;p class=&quot;[^&quot;]*&quot;&gt;\s*([ \w]*),\s*\d+ \w+\s*&lt;/p&gt;</street>
+				<city>&lt;p class=&quot;[^&quot;]*&quot;&gt;\s*[ \w]*,\s*\d+ (\w+)\s*&lt;/p&gt;</city>
+				<zipcode>&lt;p class=&quot;[^&quot;]*&quot;&gt;\s*[ \w]*,\s*(\d+) \w+\s*&lt;/p&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+48">
+		<website name="teleadreson.pl" url="http://www.teleadreson.pl/" prefix="" post="searchtext=&amp;english=yes&amp;database=TADRES%2FADDR.&amp;menuitem=searchname&amp;obrotrange_min=0&amp;obrotrange_max=1000000000&amp;rokrange_min=0&amp;rokrange_max=9999&amp;liczbarange_min=0&amp;liczbarange_max=1000000000&amp;listreportstat=report&amp;listlimit=20&amp;vindexfirst=0&amp;recordnumberlast=1&amp;vindex=0&amp;recordnumber=1&amp;currenthtmlpage=HomePage&amp;flagset=&amp;database=TADRES%2FADDR.&amp;listlimit=20&amp;flagset=&amp;searchtext=%28$AREACODE%29$NUMBER&amp;searchsubmit=Search&amp;nacetext=&amp;sictext=&amp;pnatext=&amp;obrotrange_min=0&amp;obrotrange_max=1000000000&amp;rokrange_min=0&amp;rokrange_max=9999&amp;liczbarange_min=0&amp;liczbarange_max=1000000000&amp;listreportstat=report">
+			<entry>
+				<name>Company\sname(?:[^&gt;]*&gt;){3}([^&lt;]*?)&lt;</name>
+				<street>Address(?:[^&gt;]*&gt;){3}([^&lt;]*?)&lt;</street>
+				<city>City(?:[^&gt;]*&gt;){3}([^&lt;]*?)&lt;</city>
+				<zipcode>Zip\scode(?:[^&gt;]*&gt;){3}([^&lt;]*?)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+49">
+		<website name="www.dasoertliche.de" url="http://dasoertliche.de/Controller?form_name=search_inv&amp;ph=$NUMBER" prefix="0">
+			<entry firstOccurance="zipcode">
+				<name>\sna: &quot;([^&quot;]*)&quot;,</name>
+				<street>\sst: &quot;([^&quot;]*)&quot;,</street>
+				<city>\sci: &quot;([^&quot;]*)&quot;,</city>
+				<zipcode>\spc: &quot;([^&quot;]*)&quot;,</zipcode>
+			</entry>
+	        <entry>
+	        	<name>class=&quot;preview&quot;&gt;([^&lt;]*)&lt;span class="preview_box"&gt;</name>
+	        	<street>^\s*([^,&gt;]+),&amp;nbsp;\d{5}&amp;nbsp;[^&lt;]*&lt;/div&gt;</street>
+	        	<city>^[^,]*,&amp;nbsp;\d{5}&amp;nbsp;([^&lt;]*)&lt;/div&gt;</city>
+	        	<zipcode>^[^,]*,&amp;nbsp;(\d{5})&amp;nbsp;[^&lt;]*&lt;/div&gt;</zipcode>
+	        </entry>
+	        <entry>
+	        	<name>class=&quot;entry&quot;\s*(?:onmouseover=&quot;&quot;)?\s*&gt;([^&lt;]*)&lt;/a&gt;</name>
+	        	<street>^\s*([^,&gt;]+),&amp;nbsp;\d{5}&amp;nbsp;[^&lt;]*&lt;/div&gt;</street>
+	        	<city>^[^,]*,&amp;nbsp;\d{5}&amp;nbsp;([^&lt;]*)&lt;/div&gt;</city>
+	        	<zipcode>^[^,]*,&amp;nbsp;(\d{5})&amp;nbsp;[^&lt;]*&lt;/div&gt;</zipcode>
+	        </entry>
+		</website>
+		<website name="www.dastelefonbuch.de" url="http://www3.dastelefonbuch.de/?la=de&amp;kw=$NUMBER&amp;cmd=detail&amp;recSelected=0" prefix="0">
+			<entry>
+				<name>&lt;div id=&quot;detail-hl&quot;&gt;&lt;h2&gt;([^&lt;]*)&lt;/h2&gt;</name>
+				<street>&lt;div class=&quot;addr&quot; title=&quot;Adresse&quot;&gt;\s*?&lt;div&gt;.*?&lt;/div&gt;\s*?&lt;div&gt;\s*?([^&lt;]*)&lt;br /&gt;\d{5}&amp;nbsp;[^&lt;]*&lt;br /&gt;&lt;/div&gt;\s*?&lt;/div&gt;</street>
+				<city>&lt;div class=&quot;addr&quot; title=&quot;Adresse&quot;&gt;\s*?&lt;div&gt;.*?&lt;/div&gt;\s*?&lt;div&gt;\s*?[^&lt;]*&lt;br /&gt;\d{5}&amp;nbsp;([^&lt;]*)&lt;br /&gt;&lt;/div&gt;\s*?&lt;/div&gt;</city>
+				<zipcode>&lt;div class=&quot;addr&quot; title=&quot;Adresse&quot;&gt;\s*?&lt;div&gt;.*?&lt;/div&gt;\s*?&lt;div&gt;\s*?[^&lt;]*&lt;br /&gt;(\d{5})&amp;nbsp;[^&lt;]*&lt;br /&gt;&lt;/div&gt;\s*?&lt;/div&gt;</zipcode>
+			</entry>
+		</website>
+		<website name="www.dastelefonbuch.de" url="http://www.dastelefonbuch.de/?sourceid=Mozilla-search&amp;cmd=search&amp;kw=$NUMBER" prefix="0">
+			<entry>
+				<name>&lt;div class=&quot;(?:short|long)&quot;&gt;(?:&lt;b&gt;)?&lt;a href=[^&gt;]*&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;td\sclass=&quot;col2&quot;(?: onclick=&quot;[^&quot;]*&quot;)?&gt;([^&lt;]*)&lt;</street>
+				<city>&lt;td class=&quot;col3&quot;(?: onclick=&quot;[^&quot;]*&quot;)?&gt;\d{5}&amp;nbsp;([^&lt;]*)&lt;</city>
+				<zipcode>&lt;td class=&quot;col3&quot;(?: onclick=&quot;[^&quot;]*&quot;)?&gt;(\d{5})</zipcode>
+			</entry>
+		</website>
+		<website name="www.goyellow.de" url="http://www.goyellow.de/inverssuche/?TEL=$NUMBER" prefix="0">
+	        <entry>
+	        	<name>&lt;a onClick=&quot;[^&quot;]*&quot; title=&quot;[^&quot;]*&quot; href=&quot;[^&quot;]*&quot;&gt;\s*&lt;span class=&quot;normal&quot;&gt;([^&lt;]*)&lt;/span&gt;</name>
+		  		<street>&lt;span class=&quot;street&quot;&gt;([^&lt;]*)&lt;/span&gt;</street>
+	        	<city>&lt;span class=&quot;city&quot;&gt;([^&lt;]*)&lt;/span&gt;</city>
+	        	<zipcode>&lt;span class=&quot;postcode&quot;&gt;([^&lt;]*)&lt;/span&gt;</zipcode>
+	        </entry>
+		</website>
+		<website name="www.11880.com" url="http://www.11880.com/Suche/index.cfm?&amp;fuseaction=Suche.rueckwaertssucheresult&amp;init=true&amp;tel=$NUMBER" prefix="0">
+	        <entry>
+	        	<name>&lt;a style=&quot;text-decoration: underline;&quot; href=&quot;[^&quot;]*?&quot;\s+onclick=&quot;[^&quot;]*?&quot;\s+class=&quot;popup&quot;[^&gt;]*?&gt;([^&lt;]*?)&lt;/a&gt;</name>
+	        	<street>^\t*?([^,\t]*?), [\d]{5} [^&lt;]*?&lt;br /&gt;</street>
+	        	<city>^\t*?[^,\t]*?, [\d]{5} ([^&lt;]*?)&lt;br /&gt;</city>
+	        	<zipcode>^\t*?[^,\t]*?, ([\d]{5}) [^&lt;]*?&lt;br /&gt;</zipcode>
+	        </entry>
+		</website>
+	</country>
+	<country code="+501">
+		<website name="belizeweb.com" url="http://www.belizeweb.com:8080/directory/index-new.jsp" cookie="(JSESSIONID=[^;]*);" nexturl="http://www.belizeweb.com:8080/directory/index-new.jsp?dirlist=$PART1-$PART2&amp;imageField.x=0&amp;imageField.y=0&amp;maxrecords=5" post="" hidden="(wrzlgrmpf)" prefix="">
+			<entry>
+				<name>Phone\sNumber(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</name>
+				<street>()</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+502">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=3&amp;npa=Guatemala&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}Guatemala\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+503">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=2&amp;npa=El+Salvador&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}El Salvador\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+504">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=7&amp;npa=Honduras&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}Honduras\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+505">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=5&amp;npa=Nicaragua&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}Nicaragua\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+506">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=8&amp;npa=Costa+Rica&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}Costa Rica\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+507">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=4&amp;npa=Panam%e1&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}Panam%e1\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+508">
+		<website name="cheznoo.net" url="http://www.cheznoo.net/portaildata/annuaire/resultats.php" prefix="" post="nom=&amp;num=$NUMBER&amp;Recherche.x=27&amp;Recherche.y=11&amp;search_info=r1">
+			<entry>
+				<name>pour\s&lt;b&gt;(?:[^&gt;]*&gt;){12}(?:&amp;nbsp;)?([^&lt;]*)&lt;</name>
+				<street>pour\s&lt;b&gt;(?:[^&gt;]*&gt;){22}(?:&amp;nbsp;)?([^&lt;^:]*)::</street>
+				<city>pour\s&lt;b&gt;(?:[^&gt;]*&gt;){22}[^&lt;^:]*::([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+51">
+		<website name="paginasblancas.com.pe" url="http://paginasblancas.com.pe/resultados.asp?t=$NUMBER&amp;d=$CODE" prefix="">
+			<entry>
+				<name>Table12(?:[^&gt;]*?&gt;){6}([^&lt;]*)&lt;</name>
+				<street>cel05[^&gt;]*?&gt;([^&lt;]*)&lt;</street>
+				<city>cel05(?:[^&gt;]*?&gt;){2}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+52">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=9&amp;npa=M%e9xico&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}M%e9xico\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+54">
+		<website name="paginasdoradas.com" url="http://www.paginasdoradas.com/BuscarTelefonica.action?apellido=&amp;provinciasId=0&amp;localidad.descripcion=&amp;telefono.area=0$AREACODE&amp;telefono.prefijo=$PART1&amp;telefono.sufijo=$PART2" prefix="">
+			<entry>
+				<name>titu1[^&gt;]*&gt;([^&lt;]*)&lt;</name>
+				<street>textgris[^&gt;]*&gt;&lt;strong&gt;([^&lt;]*)&lt;</street>
+				<city>textgris[^&gt;]*&gt;&lt;strong&gt;[^&gt;]*&gt;\s-\s([^-]*)-</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+55">
+		<website name="listaonline.com.br" url="http://www.listaonline.com.br/pagamanet/web/companyCategory.aspx?ipa=16&amp;npa=Brasil&amp;ies=$CODE&amp;idi=3&amp;sp=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+56">
+		<website name="chilnet.cl" url="http://www.chilnet.cl/SE/results.asp?keywords=$NUMBER&amp;wordstype=ALL&amp;notkeyword=&amp;optcategory=companies&amp;optSearchBy=phonphone&amp;Countrychk=1&amp;optArea=ALL&amp;chkCompBranchs=branchs" prefix="" hidden="&lt;a\shref=&quot;/rc/company/results_company_mbr\.asp\?meco_code=([^&quot;]*)&quot;&gt;" nexturl="http://www.chilnet.cl/rc/company/results_company_mbr.asp?meco_code=$HIDDEN">
+			<entry>
+				<name>tradename&quot;&gt;([^&lt;]*)&lt;</name>
+				<street>taxid(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>taxid(?:[^&gt;]*&gt;){8}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+58">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=15&amp;npa=Venezuela&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}Venezuela\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+590">
+		<website name="infobel.com" url="http://infobel.com/en/france/Inverse.aspx?qPhone=0590$NUMBER&amp;qSelLang3=&amp;SubmitREV=Search&amp;inphCoordType=EPSG" prefix="">
+			<entry>
+				<name>div\sclass=.result-head.&gt;&lt;h3&gt;1\.\s*([^&lt;]*)&lt;</name>
+				<street>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;([^,]*),</street>
+				<city>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*\d{5}\s*([^&lt;]*)&lt;</city>
+				<zipcode>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*(\d{5})</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+591">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=22&amp;npa=Bolivia&amp;ies=$CODE&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}Costa Rica\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+593">
+		<website name="paginasamarillas.com" url="http://www.paginasamarillas.com/pagamanet/web/companyCategory.aspx?ipa=6&amp;npa=Ecuador&amp;ies=*&amp;idi=2&amp;txb=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=.txtTitleBlack.&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){3}([^&lt;]*)&lt;</street>
+				<city>&lt;span\sclass=.txtTitleBlack.&gt;(?:[^&gt;]*&gt;){5}Ecuador\s-\s([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+594">
+		<website name="infobel.com" url="http://infobel.com/en/france/Inverse.aspx?qPhone=0594$NUMBER&amp;qSelLang3=&amp;SubmitREV=Search&amp;inphCoordType=EPSG" prefix="">
+			<entry>
+				<name>div\sclass=.result-head.&gt;&lt;h3&gt;1\.\s*([^&lt;]*)&lt;</name>
+				<street>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;([^,]*),</street>
+				<city>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*\d{5}\s*([^&lt;]*)&lt;</city>
+				<zipcode>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*(\d{5})</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+595">
+		<website name="guiaslatinas.com.py" url="http://www.guiaslatinas.com.py/apag.php?mod=2&amp;ciu=0&amp;tel=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;span\sclass=resul&gt;([^&lt;]*)&lt;(?:[^&gt;]*?&gt;){10}[^\(]*\(0$AREACODE\)</name>
+				<street>&lt;b&gt;Direcci%f3n\s?:&lt;/b&gt;&lt;br&gt;([^&lt;]*)&lt;br&gt;[^\(]*\(0$AREACODE\)</street>
+				<city>&lt;b&gt;Direcci%f3n\s?:&lt;/b&gt;&lt;br&gt;[^&lt;]*&lt;br&gt;([^\(]*)\(0$AREACODE\)</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+596">
+		<website name="infobel.com" url="http://infobel.com/en/france/Inverse.aspx?qPhone=0596$NUMBER&amp;qSelLang3=&amp;SubmitREV=Search&amp;inphCoordType=EPSG" prefix="">
+			<entry>
+				<name>div\sclass=.result-head.&gt;&lt;h3&gt;1\.\s*([^&lt;]*)&lt;</name>
+				<street>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;([^,]*),</street>
+				<city>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*\d{5}\s*([^&lt;]*)&lt;</city>
+				<zipcode>div\sclass=.result-box-col.&gt;&lt;div&gt;&lt;strong&gt;[^,]*,[^\d]*(\d{5})</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+63">
+		<website name="pinoysearch.com" url="http://www.pinoysearch.com/index.php?view=r&amp;telno=$NUMBER&amp;Submit=Search" prefix="" nexturl="http://www.pinoysearch.com/$HIDDEN" hidden="sresult&quot;&gt;&lt;a\shref=&quot;([^&quot;]*)&quot;">
+			<entry>
+				<name>class=&quot;sresult2&quot;&gt;(?:&lt;br/&gt;)?&lt;b&gt;([^&lt;]*(?:&lt;/b&gt;[^&lt;]*)?)&lt;</name>
+				<street>Address\s:&lt;/td&gt;&lt;td&gt;([^&lt;]*)&lt;</street>
+				<city>Town/City\s:&lt;/td&gt;&lt;td&gt;([^&lt;]*)&lt;</city>
+				<zipcode>ZIP\sCode\s:&lt;/td&gt;&lt;td&gt;([^&lt;]*)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+65">
+		<website name="yellowpages.com.sg" url="http://www.yellowpages.com.sg/newiyp/wp/newwpsearch2008.do?searchCriteria=Company+Name+%2F+Residential&amp;phoneCriteria=$NUMBER&amp;locTerm=00&amp;stype=7&amp;applicationInd=wp&amp;searchType=4&amp;accessType=1&amp;productType=EIB&amp;searchTab=phoneTab&amp;areaCode=00" prefix="">
+			<entry>
+				<name>advertiserName=(.*?)&amp;amp;url</name>
+				<street>()</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+678">
+		<website name="vatu.com" url="http://www.vatu.com/index.php?p=an&amp;t=pb&amp;request=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;b&gt;name\sand\saddress(?:[^&gt;]*?&gt;){7}([^&lt;]*)&lt;</name>
+				<street>()</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+689">
+		<website name="annuaireopt.pf" url="http://www.annuaireopt.pf/list_inv.jsp?nom=$NUMBER&amp;submit=Search" prefix="">
+			<entry>
+				<name>pginvtitre(?:[^&gt;]*?&gt;){2}([^&lt;]*)&lt;</name>
+				<street>pginvdesc(?:[^&gt;]*?&gt;){2}([^&lt;]*)&lt;br&gt;[^&lt;]*&lt;</street>
+				<city>pginvdesc(?:[^&gt;]*?&gt;){2}[^&lt;]*&lt;br&gt;[^&lt;]*&lt;br&gt;([^&lt;]*)&lt;</city>
+				<zipcode>pginvdesc(?:[^&gt;]*?&gt;){2}[^&lt;]*&lt;br&gt;([^&lt;]*)&lt;br&gt;[^&lt;]*&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+691">
+		<website name="telecom.fm" url="http://telecom.fm/cgi/phonebook.exe" prefix="" post="exchange=$AREACODE&amp;line=$NUMBER">
+			<entry>
+				<name>class=&quot;ph_na&quot;&gt;([^&lt;]*)&lt;</name>
+				<street>()</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+7">
+		<website name="yellowpages.ru" url="http://www.yellowpages.ru/eng/nd$CODE/qu7/sq30/wophone%3A$NUMBER" hidden="&lt;a\shref\=&quot;([^&quot;]*)&quot;\sclass\=&quot;comp_header" nexturl="http://www.yellowpages.ru$HIDDEN" prefix="">
+			<entry>
+				<name>Postal\saddress\s([^:]*):</name>
+				<street>target=&quot;_blank&quot;&gt;\d{6}&lt;/a&gt;,\s*[^,]*,([^&lt;]*)&lt;</street>
+				<city>target=&quot;_blank&quot;&gt;\d{6}&lt;/a&gt;,\s*([^,]*),</city>
+				<zipcode>target=&quot;_blank&quot;&gt;(\d{6})&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+731">
+		<website name="yellow-pages.kz" url="http://www.yellow-pages.kz/kz/en/phone_search/0/1/$NUMBER" prefix="">
+			<entry>
+				<name>&lt;/noindex&gt;&lt;div\sstyle=&quot;padding-left:10px;&quot;&gt;&lt;b&gt;([^&lt;]*?)&lt;</name>
+				<street>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(?:\d*?,)?([^&lt;]*?)&lt;</street>
+				<city>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;([^,]*?),</city>
+				<zipcode>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(\d*?),</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+81">
+		<website name="yellowpage-jp.com" url="http://yellowpage-jp.com/search.php?mids%5B%5D=6&amp;query=%280$AREACODE%29$PART1-$PART2&amp;andor=AND&amp;submit=Search&amp;action=results" hidden="&lt;a\shref\=.modules/mxdirectory/singlelink.php\?([^'^\&quot;]+).&gt;" nexturl="http://yellowpage-jp.com/modules/mxdirectory/singlelink.php?$HIDDEN" prefix="">
+			<entry>
+				<name>&lt;td\sstyle=.color:#ff6633;text-align:center.&gt;[^&gt;]*&gt;([^&lt;]*?)&lt;</name>
+				<street>http://yellowpage-jp.com/modules/mxdirectory/viewrating.php(?:[^&gt;]*&gt;){7}([^,]*,[^,]*),</street>
+				<city>http://yellowpage-jp.com/modules/mxdirectory/viewrating.php(?:[^&gt;]*&gt;){7}(?:[^,]*,){2}([^&lt;]*)&lt;</city>
+				<zipcode>&lt;b&gt;ZIP[^&gt;]*&gt;\s?([^&lt;]*)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+84">
+		<website name="yp.com.vn" url="http://www.yp.com.vn/eYP_VWhitePage.asp" cookie="\[([^;]*);" nexturl="http://www.yp.com.vn/YP_EListSubPhone.asp" post="Phone=$NUMBER&amp;Province=$CODE&amp;submit=Search" hidden="(wrzlgrmpf)" prefix="">
+			<entry>
+				<name>&lt;td\scolspan=.3.\sbgcolor=.#FFFF99.&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>td\sclass=.gensmall.&gt;Address(?:[^&gt;]*&gt;){2}([^&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+853">
+		<website name="yellowpages.com.mo" url="http://www.yellowpages.com.mo/en/searchresult.asp?telid=$NUMBER&amp;lang=e" prefix="">
+			<entry>
+				<name>class=.(?:nm00e|nm220e).&gt;([^&lt;]*)&lt;</name>
+				<street>(?:iaddrt|icon_address)\.gif[^&gt;]*&gt;([^&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+855">
+		<website name="yellowpages-cambodia.com" url="http://www.yellowpages-cambodia.com/search/?q=0$AREACODE+$PART1+$PART2" prefix="">
+			<entry>
+				<name>fn\sorg&quot;[^&gt;]*&gt;([^&lt;]*)&lt;</name>
+				<street>street-address&quot;&gt;([^&lt;]*)&lt;</street>
+				<city>region&quot;&gt;([^&lt;]*)&lt;</city>
+				<zipcode>postal-code&quot;&gt;([^&lt;]*)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+8621">
+		<website name="yellowpage.com.cn" url="http://en.yellowpage.com.cn:8080/search.php?&amp;telephone=$NUMBER&amp;search=&amp;go=START+SEARCH" nexturl="http://en.yellowpage.com.cn:8080/search.php?search=&amp;page=0&amp;telephone=$NUMBER&amp;detail=$HIDDEN" hidden="detail=([^&quot;]*)&quot;" prefix="">
+			<entry>
+				<name>text_headline_14&quot;&gt;([^&lt;]*)&lt;</name>
+				<street>/data/company/(?:[^&gt;]*&gt;){18}([^,]*(?:,[^,]*)?),\s?\d{6}\s?&lt;/td&gt;</street>
+				<city>(Shanghai)</city>
+				<zipcode>/data/company/(?:[^&gt;]*&gt;){18}[^,]*(?:,[^,]*)?,\s?(\d{6})\s?&lt;/td&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+90">
+		<website name="ttrehber.tr.gov" url="http://www.ttrehber.gov.tr/trk-wp/IDA2?REQ=20&amp;IDAERROR=&amp;QRY=bus&amp;CTRY=trk&amp;LANG=tu&amp;PAGE=complexSearch&amp;LIP=complexSearch&amp;ACTION=search&amp;STP=C&amp;ACD=$AREACODE&amp;TEL=$NUMBER&amp;sorgula=Ki%FEi+%2F+Kurum+Sorgula" prefix="0" areacode="3">
+			<entry>
+				<name>&lt;td class=&quot;level0&quot;&gt;([^&lt;]*)&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;</name>
+				<street>&lt;td align=&quot;left&quot;&gt;([^,]*),[^&lt;]*&lt;/td&gt;</street>
+				<city>&lt;td align=&quot;left&quot;&gt;[^,]*,(?:[^,]*,\s*[0-9]*([^,]*,[^&lt;]*)|\s*[0-9]*([^,]*,[^&lt;]*)|([^&lt;]*))&lt;/td&gt;</city>
+				<zipcode>&lt;td align=&quot;left&quot;&gt;[^,]*, ([0-9]*)[^&lt;]*&lt;/td&gt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+9111">
+		<website name="phonebook.bol.net.in" url="http://phonebook.bol.net.in/indvtel1.jsp?TELEPHONE_NO=$NUMBER" prefix="">
+			<entry>
+				<name>TelephoneNo(?:[^&gt;]*?&gt;){7}([^&lt;]*?)&lt;</name>
+				<street>TelephoneNo(?:[^&gt;]*?&gt;){10}([^&lt;]*?)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+9133">
+		<website name="calcutta.bsnl.co.in" url="http://www.calcutta.bsnl.co.in/directory/telno.php?telno=$NUMBER&amp;search=Search" prefix="">
+			<entry>
+				<name>&gt;Address&lt;(?:[^&gt;]*?&gt;){11}([^&lt;]*)&lt;</name>
+				<street>&gt;Address&lt;(?:[^&gt;]*?&gt;){15}([^&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+9144">
+		<website name="chennai.bsnl.co.in" url="http://chennai.bsnl.co.in/newdq/telno.asp" cookie="\[([^;]*);" nexturl="http://chennai.bsnl.co.in/newdq/telno.asp" post="telno=$NUMBER&amp;B1=SEARCH" prefix="">
+			<entry>
+				<name>&gt;Address&lt;(?:[^&gt;]*?&gt;){11}([^&lt;]*)&lt;</name>
+				<street>&gt;Address&lt;(?:[^&gt;]*?&gt;){15}([^&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+92">
+		<website name="pakdatabase.com" url="http://www.pakdatabase.com/directory/dirrespwd.asp" post="selection=0&amp;city=$CODE&amp;searchtype=P&amp;enter=$NUMBER&amp;hidefied=1" prefix="">
+			<entry>
+				<name>Draw\sthe\smore\sinfo(?:[^&gt;]*&gt;){10}([^\.]*)\.</name>
+				<street>Draw\sthe\smore\sinfo(?:[^&gt;]*&gt;){10}(?:[^\.]*)\.([^\&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+961">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Lebanon" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+962">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Jordan" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+963">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Syria" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+964">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Iraq" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+965">
+		<website name="ekyp.com" url="http://www.ekyp.com/search-3.php?firmname=&amp;phone=$NUMBER&amp;category=ANY&amp;submit=Search" prefix="">
+			<entry>
+				<name>nt\.gif(?:[^&gt;]*&gt;){5}([^&lt;]*?)&lt;</name>
+				<street>()</street>
+				<city>Area(?:[^&gt;]*&gt;){6}([^&lt;]*?)&lt;</city>
+				<zipcode>ZIP\sCode(?:[^&gt;]*&gt;){6}([^&lt;]*?)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+966">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Saudi%20Arabia" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+967">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Yemen" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+968">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Oman" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+971">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=United+Arab+Emirates" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+972">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Palestine" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+		<website name="441il.com" url="http://441il.com/en/looktra.php?area=0$AREACODE&amp;phone=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;TR&gt;&lt;TD&gt;([^&lt;]*)&lt;</name>
+				<street>&lt;TR&gt;&lt;TD&gt;(?:[^&gt;]*&gt;){2}([^&lt;]*)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+973">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Bahrain" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+974">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Qatar" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+977">
+		<website name="ypofnepal.com" url="http://www.ypofnepal.com/search/?start=1&amp;q=$NUMBER" nexturl="http://www.ypofnepal.com$HIDDEN" prefix="" hidden="var\slst=[^']*'([^']*)'">
+			<entry>
+				<name>&lt;h2\sid=.name.&gt;([^&lt;]*)&lt;</name>
+				<street>street-address.&gt;([^&lt;]*)&lt;</street>
+				<city>locality&quot;&gt;([^&lt;]*)&lt;</city>
+				<zipcode>postal-code&quot;&gt;([^&lt;]*)&lt;</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+98">
+		<website name="ameinfo.com" url="http://www.ameinfo.com/cgi-bin/db/search.cgi?query=$NUMBER&amp;substring=0&amp;Country=Iran" prefix="">
+			<entry>
+				<name>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){4}([^&lt;]*)&lt;</street>
+				<city>style=&quot;font-size:10pt;&quot;&gt;&lt;b&gt;(?:[^&gt;]*&gt;){5}([^&lt;]*)&lt;</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+992">
+		<website name="yellow-pages.kz" url="http://www.yellow-pages.kz/tj/en/phone_search/0/1/$NUMBER" prefix="">
+			<entry>
+				<name>&lt;/noindex&gt;&lt;div\sstyle=&quot;padding-left:10px;&quot;&gt;&lt;b&gt;([^&lt;]*?)&lt;</name>
+				<street>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(?:\d*?,)?([^&lt;]*?)&lt;</street>
+				<city>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;([^,]*?),</city>
+				<zipcode>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(\d*?),</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+993">
+		<website name="yellow-pages.kz" url="http://www.yellow-pages.kz/tr/en/phone_search/0/1/$NUMBER" prefix="">
+			<entry>
+				<name>&lt;/noindex&gt;&lt;div\sstyle=&quot;padding-left:10px;&quot;&gt;&lt;b&gt;([^&lt;]*?)&lt;</name>
+				<street>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(?:\d*?,)?([^&lt;]*?)&lt;</street>
+				<city>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;([^,]*?),</city>
+				<zipcode>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(\d*?),</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+994">
+		<website name="yellow-pages.kz" url="http://www.yellow-pages.kz/az/en/phone_search/0/1/$NUMBER" prefix="">
+			<entry>
+				<name>&lt;/noindex&gt;&lt;div\sstyle=&quot;padding-left:10px;&quot;&gt;&lt;b&gt;([^&lt;]*?)&lt;</name>
+				<street>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(?:\d*?,)?([^&lt;]*?)&lt;</street>
+				<city>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;([^,]*?),</city>
+				<zipcode>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(\d*?),</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+995">
+		<website name="yellowpages.ge" url="http://www.yellowpages.ge/csearch.php?lan=2&amp;phone=$NUMBER" prefix="">
+			<entry>
+				<name>&lt;font\sface=&quot;&quot;\ssize=2&gt;&amp;nbsp;&lt;b&gt;([^&lt;]*)&lt;</name>
+				<street>i/r-e.gif(?:[^&gt;]*&gt;){8}([^&lt;]*?)&lt;</street>
+				<city>()</city>
+				<zipcode>()</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+996">
+		<website name="yellow-pages.kz" url="http://www.yellow-pages.kz/kg/en/phone_search/0/1/$NUMBER" prefix="">
+			<entry>
+				<name>&lt;/noindex&gt;&lt;div\sstyle=&quot;padding-left:10px;&quot;&gt;&lt;b&gt;([^&lt;]*?)&lt;</name>
+				<street>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(?:\d*?,)?([^&lt;]*?)&lt;</street>
+				<city>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;([^,]*?),</city>
+				<zipcode>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(\d*?),</zipcode>
+			</entry>
+		</website>
+	</country>
+	<country code="+998">
+		<website name="yellow-pages.kz" url="http://www.yellow-pages.kz/uz/en/phone_search/0/1/$NUMBER" prefix="">
+			<entry>
+				<name>&lt;/noindex&gt;&lt;div\sstyle=&quot;padding-left:10px;&quot;&gt;&lt;b&gt;([^&lt;]*?)&lt;</name>
+				<street>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(?:\d*?,)?([^&lt;]*?)&lt;</street>
+				<city>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;([^,]*?),</city>
+				<zipcode>\.\.\.&lt;/a>&lt;br&gt;&lt;br&gt;[^,]*?,\s(\d*?),</zipcode>
+			</entry>
+		</website>
+	</country>
+</reverselookup>
+	
+
+	
Index: ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/uu.py
===================================================================
--- ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/uu.py	(revision 12232)
+++ ipk/source.sh4/infos_fritzcall/usr/lib/enigma2/python/Plugins/Extensions/FritzCall/uu.py	(revision 12232)
@@ -0,0 +1,186 @@
+#! /usr/bin/python2.5
+
+# Copyright 1994 by Lance Ellinghouse
+# Cathedral City, California Republic, United States of America.
+#                        All Rights Reserved
+# Permission to use, copy, modify, and distribute this software and its
+# documentation for any purpose and without fee is hereby granted,
+# provided that the above copyright notice appear in all copies and that
+# both that copyright notice and this permission notice appear in
+# supporting documentation, and that the name of Lance Ellinghouse
+# not be used in advertising or publicity pertaining to distribution
+# of the software without specific, written prior permission.
+# LANCE ELLINGHOUSE DISCLAIMS ALL WARRANTIES WITH REGARD TO
+# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS, IN NO EVENT SHALL LANCE ELLINGHOUSE CENTRUM BE LIABLE
+# FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Modified by Jack Jansen, CWI, July 1995:
+# - Use binascii module to do the actual line-by-line conversion
+#   between ascii and binary. This results in a 1000-fold speedup. The C
+#   version is still 5 times faster, though.
+# - Arguments more compliant with python standard
+
+"""Implementation of the UUencode and UUdecode functions.
+
+encode(in_file, out_file [,name, mode])
+decode(in_file [, out_file, mode])
+"""
+
+import binascii
+import os
+import sys
+
+__all__ = ["Error", "encode", "decode"]
+
+class Error(Exception):
+    pass
+
+def encode(in_file, out_file, name=None, mode=None):
+    """Uuencode file"""
+    #
+    # If in_file is a pathname open it and change defaults
+    #
+    if in_file == '-':
+        in_file = sys.stdin
+    elif isinstance(in_file, basestring):
+        if name is None:
+            name = os.path.basename(in_file)
+        if mode is None:
+            try:
+                mode = os.stat(in_file).st_mode
+            except AttributeError:
+                pass
+        in_file = open(in_file, 'rb')
+    #
+    # Open out_file if it is a pathname
+    #
+    if out_file == '-':
+        out_file = sys.stdout
+    elif isinstance(out_file, basestring):
+        out_file = open(out_file, 'w')
+    #
+    # Set defaults for name and mode
+    #
+    if name is None:
+        name = '-'
+    if mode is None:
+        mode = 0666
+    #
+    # Write the data
+    #
+    out_file.write('begin %o %s\n' % ((mode&0777),name))
+    data = in_file.read(45)
+    while len(data) > 0:
+        out_file.write(binascii.b2a_uu(data))
+        data = in_file.read(45)
+    out_file.write(' \nend\n')
+
+
+def decode(in_file, out_file=None, mode=None, quiet=0):
+    """Decode uuencoded file"""
+    #
+    # Open the input file, if needed.
+    #
+    if in_file == '-':
+        in_file = sys.stdin
+    elif isinstance(in_file, basestring):
+        in_file = open(in_file)
+    #
+    # Read until a begin is encountered or we've exhausted the file
+    #
+    while True:
+        hdr = in_file.readline()
+        if not hdr:
+            raise Error('No valid begin line found in input file')
+        if not hdr.startswith('begin'):
+            continue
+        hdrfields = hdr.split(' ', 2)
+        if len(hdrfields) == 3 and hdrfields[0] == 'begin':
+            try:
+                int(hdrfields[1], 8)
+                break
+            except ValueError:
+                pass
+    if out_file is None:
+        out_file = hdrfields[2].rstrip()
+        if os.path.exists(out_file):
+            raise Error('Cannot overwrite existing file: %s' % out_file)
+    if mode is None:
+        mode = int(hdrfields[1], 8)
+    #
+    # Open the output file
+    #
+    opened = False
+    if out_file == '-':
+        out_file = sys.stdout
+    elif isinstance(out_file, basestring):
+        fp = open(out_file, 'wb')
+        try:
+            os.path.chmod(out_file, mode) #@UndefinedVariable
+        except AttributeError:
+            pass
+        out_file = fp
+        opened = True
+    #
+    # Main decoding loop
+    #
+    s = in_file.readline()
+    while s and s.strip() != 'end':
+        try:
+            data = binascii.a2b_uu(s)
+        except binascii.Error, v:
+            # Workaround for broken uuencoders by /Fredrik Lundh
+            nbytes = (((ord(s[0])-32) & 63) * 4 + 5) // 3
+            data = binascii.a2b_uu(s[:nbytes])
+            if not quiet:
+                sys.stderr.write("Warning: %s\n" % v)
+        out_file.write(data)
+        s = in_file.readline()
+    if not s:
+        raise Error('Truncated input file')
+    if opened:
+        out_file.close()
+
+def test():
+    """uuencode/uudecode main program"""
+
+    import optparse
+    parser = optparse.OptionParser(usage='usage: %prog [-d] [-t] [input [output]]')
+    parser.add_option('-d', '--decode', dest='decode', help='Decode (instead of encode)?', default=False, action='store_true')
+    parser.add_option('-t', '--text', dest='text', help='data is text, encoded format unix-compatible text?', default=False, action='store_true')
+
+    (options, args) = parser.parse_args()
+    if len(args) > 2:
+        parser.error('incorrect number of arguments')
+        sys.exit(1)
+
+    input = sys.stdin
+    output = sys.stdout
+    if len(args) > 0:
+        input = args[0]
+    if len(args) > 1:
+        output = args[1]
+
+    if options.decode:
+        if options.text:
+            if isinstance(output, basestring):
+                output = open(output, 'w')
+            else:
+                print sys.argv[0], ': cannot do -t to stdout'
+                sys.exit(1)
+        decode(input, output)
+    else:
+        if options.text:
+            if isinstance(input, basestring):
+                input = open(input, 'r')
+            else:
+                print sys.argv[0], ': cannot do -t from stdin'
+                sys.exit(1)
+        encode(input, output)
+
+if __name__ == '__main__':
+    test()
