diff --git a/fhem/FHEM/72_FB_CALLMONITOR.pm b/fhem/FHEM/72_FB_CALLMONITOR.pm
index 4e267b698..16ca96740 100755
--- a/fhem/FHEM/72_FB_CALLMONITOR.pm
+++ b/fhem/FHEM/72_FB_CALLMONITOR.pm
@@ -88,7 +88,7 @@ FB_CALLMONITOR_Initialize($)
$hash->{GetFn} = "FB_CALLMONITOR_Get";
$hash->{DefFn} = "FB_CALLMONITOR_Define";
$hash->{UndefFn} = "FB_CALLMONITOR_Undef";
- $hash->{AttrList}= "do_not_notify:0,1 loglevel:1,2,3,4,5 remove-leading-zero:0,1 reverse-search-cache-file reverse-search:all,klicktel.de,dasoertliche.de,none reverse-search-cache:0,1 event-on-update-reading event-on-change-reading";
+ $hash->{AttrList}= "do_not_notify:0,1 loglevel:1,2,3,4,5 local-area-code remove-leading-zero:0,1 reverse-search-cache-file reverse-search:all,klicktel.de,dasoertliche.de,none reverse-search-cache:0,1 event-on-update-reading event-on-change-reading";
}
@@ -183,6 +183,7 @@ FB_CALLMONITOR_Read($)
my @array;
my $reverse_search = undef;
my $data = $buf;
+ my $area_code = AttrVal($name, "local-area-code", "");
my $external_number = undef;
@@ -194,6 +195,19 @@ FB_CALLMONITOR_Read($)
$external_number =~ s/^0// if(AttrVal($name, "remove-leading-zero", "0") eq "1");
+ if(defined($external_number) and not $external_number =~ /^0/ and $area_code ne "")
+ {
+ if($area_code =~ /^0[1-9]+$/)
+ {
+ $external_number = AttrVal($name, "local-area-code", "").$external_number;
+ }
+ else
+ {
+ Log 2, "FB_CALLMONITOR: given local area code '$area_code' is not an area code. therefore will be ignored";
+ }
+
+ }
+
$reverse_search = FB_CALLMONITOR_reverseSearch($hash, $external_number) if(defined($external_number) and AttrVal($name, "reverse-search", "none") ne "none");
readingsBeginUpdate($hash);
@@ -473,6 +487,8 @@ sub FB_CALLMONITOR_loadCacheFile($)
If this attribute is activated, a leading zero will be removed from the external_number (e.g. in telefon systems).
Possible values: 0 => off , 1 => on
Default Value is 0 (off)
+