From 18d700a5285aec3fc84a1c6f326b03c71ae6ec10 Mon Sep 17 00:00:00 2001 From: Daniel Tiefnig Date: Thu, 8 Apr 2010 01:45:36 +0000 Subject: [PATCH] fixed call normalization for click2dial --- lib/csc/Controller/call.pm | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/lib/csc/Controller/call.pm b/lib/csc/Controller/call.pm index 20fe35b..bb86789 100644 --- a/lib/csc/Controller/call.pm +++ b/lib/csc/Controller/call.pm @@ -3,6 +3,7 @@ package csc::Controller::call; use strict; use warnings; use base 'Catalyst::Controller'; +use csc::Utils; use RPC::XML::Client; @@ -49,26 +50,10 @@ sub click2dial : Local { my $callee = $c->request->param('d'); if($callee =~ /^\+?\d+$/) { - if($callee =~ /^0[1-9][0-9]+$/) - { - $callee =~ s/^0//; - $callee = "00" . $c->session->{user}{data}{cc} . $callee; - } - elsif($callee =~ /^00[1-9][0-9]+$/) - { - # we're fine already - } - elsif($callee =~ /^\+[1-9][0-9]+$/) - { - $callee =~ s/^\+/00/; - } - elsif($callee =~ /^[1-9][0-9]+$/) - { - $callee = "00" . $c->session->{user}{data}{cc} . - $c->session->{user}{data}{ac} . $callee; - } - else - { + $callee = csc::Utils::get_qualified_number_for_subscriber($c, $callee); + my $checkresult; + return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_E164_number', $callee, \$checkresult); + unless($checkresult) { $c->log->error('***call::click2dial with invalid callee ' . $callee); # TODO: Error handling, invalid uri or number