From e782ed19793db5608a0917fc5ec206d9e53f7045 Mon Sep 17 00:00:00 2001 From: markusbloch Date: Fri, 22 Aug 2014 20:27:56 +0000 Subject: [PATCH] FB_CALLMONITOR: fixing non-equal call id's when using unique call id's git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@6445 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/72_FB_CALLMONITOR.pm | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/fhem/FHEM/72_FB_CALLMONITOR.pm b/fhem/FHEM/72_FB_CALLMONITOR.pm index 927662e18..73d290df6 100755 --- a/fhem/FHEM/72_FB_CALLMONITOR.pm +++ b/fhem/FHEM/72_FB_CALLMONITOR.pm @@ -237,7 +237,11 @@ FB_CALLMONITOR_Read($) if($array[1] eq "CALL" or $array[1] eq "RING") { delete($hash->{helper}{TEMP}{$array[2]}) if(exists($hash->{helper}{TEMP}{$array[2]})); - + + if(AttrVal($name, "unique-call-ids", "0") eq "1") + { + $hash->{helper}{TEMP}{$array[2]}{call_id} = Digest::MD5::md5_hex($data); + } } if($array[1] eq "CALL") @@ -280,22 +284,25 @@ FB_CALLMONITOR_Read($) foreach my $key (keys %{$hash->{helper}{TEMP}{$array[2]}}) { - readingsBulkUpdate($hash, $key, $hash->{helper}{TEMP}{$array[2]}{$key}); + readingsBulkUpdate($hash, $key, $hash->{helper}{TEMP}{$array[2]}{$key}) unless($key eq "call_id"); } + if(AttrVal($name, "unique-call-ids", "0") eq "1" and exists($hash->{helper}{TEMP}{$array[2]}{call_id})) + { + readingsBulkUpdate($hash, "call_id", $hash->{helper}{TEMP}{$array[2]}{call_id}); + } + else + { + readingsBulkUpdate($hash, "call_id", $array[2]); + } + if($array[1] eq "DISCONNECT") { delete($hash->{helper}{TEMP}{$array[2]}) if(exists($hash->{helper}{TEMP}{$array[2]})); } - if(AttrVal($name, "unique-call-ids", "0") eq "1") - { - readingsBulkUpdate($hash, "call_id" ,Digest::MD5::md5_hex($data)); - } - else - { - readingsBulkUpdate($hash, "call_id", $array[2]); - } + + readingsEndUpdate($hash, 1); }