X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCTI.pm;h=6989e7ebd49c2fc917fcf2c56a6291c8a0d4ab86;hb=5474d397bbc42ffaea0b51ebb4bb9a4c7afaa881;hp=8605ff163485d7fe1501d9b56121b04139bd4b9d;hpb=53d80f2a01439ee73cf679c53326ec8fb32ab1ed;p=kivitendo-erp.git diff --git a/SL/CTI.pm b/SL/CTI.pm index 8605ff163..6989e7ebd 100644 --- a/SL/CTI.pm +++ b/SL/CTI.pm @@ -30,7 +30,13 @@ sub call { sub call_link { my ($class, %params) = @_; - return "controller.pl?action=CTI/call&number=" . uri_encode($class->sanitize_number(number => $params{number})) . ($params{internal} ? '&internal=1' : ''); + my $config = $::lx_office_conf{cti} || {}; + + if ($config->{dial_command}) { + return "controller.pl?action=CTI/call&number=" . uri_encode($class->sanitize_number(number => $params{number})) . ($params{internal} ? '&internal=1' : ''); + } else { + return 'callto://' . uri_encode($class->sanitize_number(number => $params{number})); + } } sub sanitize_number { @@ -40,9 +46,10 @@ sub sanitize_number { my $idp = $config->{international_dialing_prefix} // '00'; my $number = $params{number} // ''; - $number =~ s/[^0-9+\.-]//g; # delete unsupported characters + $number =~ s/[^0-9+]//g; # delete unsupported characters my $countrycode = $number =~ s/^(?: $idp | \+ ) ( \d{2} )//x ? $1 : ''; # TODO: countrycodes can have more or less than 2 digits $number =~ s/^0//x if $countrycode; # kill non standard optional zero after global identifier + $number =~ s{[^0-9]+}{}g; return '' unless $number;