not storing subscriber in session to avoid "store_session: data too large" errors

3.3
Daniel Tiefnig 14 years ago
parent db00cbcf68
commit 7a9f15557d

@ -119,35 +119,35 @@ sub detail : Local {
$c->stash->{template} = 'tt/subscriber_detail.tt';
my $is_new = $c->request->params->{new};
my $preferences;
my ($preferences, $subscriber);
unless($is_new) {
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
my $regcon;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_registered_devices',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$regcon
);
$c->session->{subscriber}{registered_contacts} = $regcon if eval { @$regcon };
$$subscriber{registered_contacts} = $regcon if eval { @$regcon };
my $regpeer;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_registered_peer',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$regpeer
);
@ -157,11 +157,11 @@ sub detail : Local {
$$regpeer{contacts} =~ s/>/\>/g;
$$regpeer{contacts_short} =~ s/</\&lt;/g;
$$regpeer{contacts_short} =~ s/>/\&gt;/g;
$c->session->{subscriber}{registered_peer} = $regpeer;
$$subscriber{registered_peer} = $regpeer;
}
eval { $c->session->{subscriber}{aliases} = [ sort @{$c->session->{subscriber}{aliases}} ] };
$c->stash->{subscriber} = $c->session->{subscriber};
eval { $$subscriber{aliases} = [ sort @{$$subscriber{aliases}} ] };
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber}{subscriber_id} = $subscriber_id;
$c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
@ -211,26 +211,27 @@ sub update_subscriber : Local {
my ( $self, $c ) = @_;
my (%settings, %messages);
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
if($subscriber_id) {
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
} else {
my $checkresult;
$c->session->{subscriber}{account_id} = $c->request->params->{account_id};
$$subscriber{account_id} = $c->request->params->{account_id};
$c->session->{subscriber}{username} = $c->request->params->{username};
$$subscriber{username} = $c->request->params->{username};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_username',
$c->session->{subscriber}{username}, \$checkresult
$$subscriber{username}, \$checkresult
);
$messages{username} = 'Client.Syntax.MalformedUsername' unless($checkresult);
$c->session->{subscriber}{domain} = $c->request->params->{domain};
$$subscriber{domain} = $c->request->params->{domain};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_domain',
$c->session->{subscriber}{domain}, \$checkresult
$$subscriber{domain}, \$checkresult
);
$messages{domain} = 'Client.Syntax.MalformedDomain' unless($checkresult);
}
@ -264,7 +265,7 @@ sub update_subscriber : Local {
);
$messages{webusername} = 'Client.Syntax.MalformedUsername' unless($checkresult);
} else {
$settings{webusername} = $c->session->{subscriber}{username};
$settings{webusername} = $$subscriber{username};
}
@ -301,9 +302,9 @@ sub update_subscriber : Local {
if($c->model('Provisioning')->call_prov( $c, 'billing', ($subscriber_id
? 'update_voip_account_subscriber'
: 'add_voip_account_subscriber'),
{ id => $c->session->{subscriber}{account_id},
subscriber => { username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ id => $$subscriber{account_id},
subscriber => { username => $$subscriber{username},
domain => $$subscriber{domain},
%settings
},
},
@ -315,12 +316,12 @@ sub update_subscriber : Local {
$c->response->redirect("/subscriber/detail?subscriber_id=$subscriber_id");
} else {
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$c->session->{subscriber}
\$subscriber
);
$c->response->redirect("/subscriber/detail?subscriber_id=". $c->session->{subscriber}{subscriber_id});
$c->response->redirect("/subscriber/detail?subscriber_id=". $$subscriber{subscriber_id});
}
return;
}
@ -333,8 +334,8 @@ sub update_subscriber : Local {
if($subscriber_id) {
$c->response->redirect("/subscriber/detail?subscriber_id=$subscriber_id&edit_subscriber=1");
} else {
$c->session->{restore_subscriber_input}{username} = $c->session->{subscriber}{username};
$c->response->redirect("/subscriber/detail?account_id=". $c->session->{subscriber}{account_id} ."&new=1");
$c->session->{restore_subscriber_input}{username} = $$subscriber{username};
$c->response->redirect("/subscriber/detail?account_id=". $$subscriber{account_id} ."&new=1");
}
return;
}
@ -344,26 +345,27 @@ sub edit_aliases : Local {
$c->stash->{template} = 'tt/subscriber_edit_aliases.tt';
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_voip_account_subscriber',
{ id => $c->session->{subscriber}{account_id},
username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ id => $$subscriber{account_id},
username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$c->session->{subscriber}
\$subscriber
);
eval {
$c->session->{subscriber}{alias_numbers} =
$$subscriber{alias_numbers} =
[ sort { $$a{cc}.$$a{ac}.$$a{sn} cmp $$b{cc}.$$b{ac}.$$b{sn} }
@{$c->session->{subscriber}{alias_numbers}} ];
@{$$subscriber{alias_numbers}} ];
};
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
if(defined $c->session->{aliasadd}) {
@ -378,19 +380,20 @@ sub do_edit_aliases : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $acid = $c->session->{subscriber}{account_id};
my $acid = $$subscriber{account_id};
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_voip_account_subscriber',
{ id => $acid,
username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$c->session->{subscriber}
\$subscriber
);
# delete button next to entries in alias list
@ -401,9 +404,9 @@ sub do_edit_aliases : Local {
my $cc = $c->request->params->{alias_del_cc};
my $ac = $c->request->params->{alias_del_ac};
my $sn = $c->request->params->{alias_del_sn};
my $aliaslist = $c->session->{subscriber}{alias_numbers};
my $aliaslist = $$subscriber{alias_numbers};
if(defined $aliaslist) {
$c->session->{subscriber}{alias_numbers} = [ grep { $$_{cc} ne $cc or $$_{ac} ne $ac or $$_{sn} ne $sn } @$aliaslist ];
$$subscriber{alias_numbers} = [ grep { $$_{cc} ne $cc or $$_{ac} ne $ac or $$_{sn} ne $sn } @$aliaslist ];
}
}
@ -434,9 +437,9 @@ sub do_edit_aliases : Local {
unless $checkresult;
unless(keys %messages) {
my $aliaslist = $c->session->{subscriber}{alias_numbers};
my $aliaslist = $$subscriber{alias_numbers};
$aliaslist = [] unless defined $aliaslist;
$c->session->{subscriber}{alias_numbers} = [ @$aliaslist, { cc => $cc, ac => $ac, sn => $sn } ];
$$subscriber{alias_numbers} = [ @$aliaslist, { cc => $cc, ac => $ac, sn => $sn } ];
} else {
$c->session->{aliasadd} = { cc => $cc, ac => $ac, sn => $sn };
}
@ -445,9 +448,9 @@ sub do_edit_aliases : Local {
unless(keys %messages) {
$c->model('Provisioning')->call_prov( $c, 'billing', 'update_voip_account_subscriber',
{ id => $acid,
subscriber => { username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
alias_numbers => $c->session->{subscriber}{alias_numbers},
subscriber => { username => $$subscriber{username},
domain => $$subscriber{domain},
alias_numbers => $$subscriber{alias_numbers},
},
},
undef
@ -470,17 +473,19 @@ Locks a subscriber.
sub lock : Local {
my ( $self, $c ) = @_;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $lock = $c->request->params->{lock};
$c->model('Provisioning')->call_prov( $c, 'billing', 'lock_voip_account_subscriber',
{ id => $c->session->{subscriber}{account_id},
username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ id => $$subscriber{account_id},
username => $$subscriber{username},
domain => $$subscriber{domain},
lock => $lock,
},
undef
@ -499,17 +504,18 @@ sub terminate : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
if($c->model('Provisioning')->call_prov( $c, 'billing', 'terminate_voip_account_subscriber',
{ id => $c->session->{subscriber}{account_id},
username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ id => $$subscriber{account_id},
username => $$subscriber{username},
domain => $$subscriber{domain},
},
undef))
{
@ -527,17 +533,19 @@ sub terminate : Local {
sub expire : Local {
my ( $self, $c ) = @_;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
my $contact_id = $c->request->params->{contact_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
if($c->model('Provisioning')->call_prov( $c, 'voip', 'delete_subscriber_registered_device',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
id => $contact_id,
},
undef
@ -560,67 +568,69 @@ sub preferences : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/subscriber_preferences.tt';
my $subscriber;
my $preferences;
my $speed_dial_slots;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
# voicebox requires a number
if(length $c->session->{subscriber}{sn} && $c->config->{voicemail_features}) {
if(length $$subscriber{sn} && $c->config->{voicemail_features}) {
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_voicebox_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$c->session->{subscriber}{voicebox_preferences}
$$subscriber{voicebox_preferences}
);
}
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_speed_dial_slots',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$speed_dial_slots
);
if($c->config->{fax_features}) {
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_fax_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$c->session->{subscriber}{fax_preferences}
$$subscriber{fax_preferences}
);
}
if($c->config->{subscriber}{audiofile_features}) {
my $audio_files;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_audio_files',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$audio_files
);
$c->session->{subscriber}{audio_files} = $audio_files if eval { @$audio_files };
$$subscriber{audio_files} = $audio_files if eval { @$audio_files };
}
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_reminder',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$c->session->{subscriber}{reminder}
$$subscriber{reminder}
);
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber}{subscriber_id} = $subscriber_id;
$c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})->
config->{VARIABLES}{site_config}{language},
@ -770,16 +780,17 @@ sub update_preferences : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $preferences;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
@ -822,17 +833,17 @@ sub update_preferences : Local {
} elsif($fw_target =~ /^[a-z0-9&=+\$,;?\/_.!~*'()-]+\@[a-z0-9.-]+(:\d{1,5})?$/i) {
$fw_target = 'sip:'. lc $fw_target;
} elsif($fw_target =~ /^[a-z0-9&=+\$,;?\/_.!~*'()-]+$/) {
$fw_target = 'sip:'. lc($fw_target) .'@'. $c->session->{subscriber}{domain};
$fw_target = 'sip:'. lc($fw_target) .'@'. $$subscriber{domain};
} else {
$messages{$fwtype} = 'Client.Voip.MalformedTarget';
$fw_target = $c->request->params->{$fwtype .'_sipuri'};
}
} elsif($fw_target_select eq 'voicebox') {
$fw_target = 'sip:vmu'.$c->session->{subscriber}{cc}.$c->session->{subscriber}{ac}.$c->session->{subscriber}{sn}."\@$vbdom";
$fw_target = 'sip:vmu'.$$subscriber{cc}.$$subscriber{ac}.$$subscriber{sn}."\@$vbdom";
} elsif($fw_target_select eq 'fax2mail') {
$fw_target = 'sip:+'.$c->session->{subscriber}{cc}.$c->session->{subscriber}{ac}.$c->session->{subscriber}{sn}."\@$fmdom";
$fw_target = 'sip:'.$$subscriber{cc}.$$subscriber{ac}.$$subscriber{sn}."\@$fmdom";
} elsif($fw_target_select eq 'conference') {
$fw_target = 'sip:conf='.$c->session->{subscriber}{cc}.$c->session->{subscriber}{ac}.$c->session->{subscriber}{sn}."\@$confdom";
$fw_target = 'sip:conf='.$$subscriber{cc}.$$subscriber{ac}.$$subscriber{sn}."\@$confdom";
}
$$preferences{$fwtype} = $fw_target;
} elsif($$db_pref{preference} eq 'cli') {
@ -895,8 +906,8 @@ sub update_preferences : Local {
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
preferences => $preferences,
},
undef
@ -923,11 +934,12 @@ sub update_reminder : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $reminder;
$$reminder{time} = $c->request->params->{time};
@ -937,8 +949,8 @@ sub update_reminder : Local {
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_reminder',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
data => $reminder,
},
undef
@ -963,16 +975,17 @@ sub update_voicebox : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $vboxprefs;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_voicebox_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$vboxprefs
);
@ -999,8 +1012,8 @@ sub update_voicebox : Local {
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_voicebox_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
preferences => $vboxprefs,
},
undef
@ -1199,16 +1212,17 @@ sub edit_list : Local {
$c->stash->{template} = 'tt/subscriber_edit_list.tt';
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $preferences;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
@ -1235,7 +1249,7 @@ sub edit_list : Local {
}
}
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
$c->stash->{list_name} = $list;
@ -1257,16 +1271,17 @@ sub do_edit_list : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $preferences;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
@ -1283,9 +1298,9 @@ sub do_edit_list : Local {
} elsif($add =~ s/^\+// or $add =~ s/^$ccdp//) {
# nothing more to do
} elsif($add =~ s/^$acdp//) {
$add = $c->session->{subscriber}{cc} . $add;
$add = $$subscriber{cc} . $add;
} else {
$add = $c->session->{subscriber}{cc} . $c->session->{subscriber}{ac} . $add;
$add = $$subscriber{cc} . $$subscriber{ac} . $add;
}
my $blocklist = $$preferences{$list};
$blocklist = [] unless defined $blocklist;
@ -1309,7 +1324,7 @@ sub do_edit_list : Local {
} elsif($del =~ s/^\+// or $del =~ s/^$ccdp//) {
# nothing more to do
} elsif($del =~ s/^$acdp//) {
$del = $c->session->{subscriber}{cc} . $del;
$del = $$subscriber{cc} . $del;
}
$blocklist = [ $blocklist ] unless ref $blocklist;
if($c->request->params->{block_stat}) {
@ -1332,7 +1347,7 @@ sub do_edit_list : Local {
} elsif($act =~ s/^\+// or $act =~ s/^$ccdp//) {
# nothing more to do
} elsif($act =~ s/^$acdp//) {
$act = $c->session->{subscriber}{cc} . $act;
$act = $$subscriber{cc} . $act;
}
$blocklist = [ $blocklist ] unless ref $blocklist;
if($c->request->params->{block_stat}) {
@ -1347,8 +1362,8 @@ sub do_edit_list : Local {
unless(keys %messages) {
$c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
preferences => {
$list => $$preferences{$list},
},
@ -1369,16 +1384,17 @@ sub edit_iplist : Local {
$c->stash->{template} = 'tt/subscriber_edit_iplist.tt';
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $preferences;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
@ -1398,7 +1414,7 @@ sub edit_iplist : Local {
}
}
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
$c->stash->{list_name} = $list;
@ -1414,16 +1430,17 @@ sub do_edit_iplist : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $preferences;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
@ -1457,8 +1474,8 @@ sub do_edit_iplist : Local {
unless(keys %messages) {
$c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
preferences => {
$list => $$preferences{$list},
},
@ -1478,16 +1495,17 @@ sub edit_speed_dial_slots : Local {
$c->stash->{template} = 'tt/subscriber_edit_speeddial.tt';
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $speed_dial_slots;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_speed_dial_slots',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$speed_dial_slots
);
@ -1539,7 +1557,7 @@ sub edit_speed_dial_slots : Local {
}
}
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
if(defined $c->session->{addslottxt}) {
@ -1558,11 +1576,12 @@ sub do_edit_speed_dial_slots : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
# add new entry form
@ -1578,7 +1597,7 @@ sub do_edit_speed_dial_slots : Local {
$add_destination = admin::Utils::get_qualified_number_for_subscriber($c, $add_destination);
my $checkresult;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_E164_number', $add_destination, \$checkresult);
$destination = 'sip:'. $add_destination .'@'. $c->session->{subscriber}{domain}
$destination = 'sip:'. $add_destination .'@'. $$subscriber{domain}
if $checkresult;
} else {
$destination = $add_destination;
@ -1589,8 +1608,8 @@ sub do_edit_speed_dial_slots : Local {
if($checkadd_slot and $checkadd_destination) {
$c->model('Provisioning')->call_prov( $c, 'voip', 'create_speed_dial_slot',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
data => {
slot => $add_slot,
destination => $add_destination
@ -1620,8 +1639,8 @@ sub do_edit_speed_dial_slots : Local {
my $delete_slotid = $c->request->params->{delete_id};
if(defined $delete_slotid) {
$c->model('Provisioning')->call_prov( $c, 'voip', 'delete_speed_dial_slot',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
id => $delete_slotid
},
undef
@ -1642,7 +1661,7 @@ sub do_edit_speed_dial_slots : Local {
$update_destination = admin::Utils::get_qualified_number_for_subscriber($c, $update_destination);
my $checkresult;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_E164_number', $update_destination, \$checkresult);
$destination = 'sip:'. $update_destination .'@'. $c->session->{subscriber}{domain}
$destination = 'sip:'. $update_destination .'@'. $$subscriber{domain}
if $checkresult;
} else {
$destination = $update_destination;
@ -1653,8 +1672,8 @@ sub do_edit_speed_dial_slots : Local {
if($checkupdate_slot and $checkupdate_destination) {
$c->model('Provisioning')->call_prov( $c, 'voip', 'update_speed_dial_slot',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
id => $update_slotid,
data => {
slot => $update_slot,
@ -1697,11 +1716,12 @@ sub update_fax : Local {
my ( $self, $c ) = @_;
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $faxprefs;
$$faxprefs{name} = $c->request->params->{name} || undef;
@ -1714,8 +1734,8 @@ sub update_fax : Local {
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_fax_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
preferences => $faxprefs,
},
undef
@ -1742,16 +1762,17 @@ sub edit_destlist : Local {
$c->stash->{template} = 'tt/subscriber_edit_destlist.tt';
my %messages;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $preferences;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_fax_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
@ -1771,7 +1792,7 @@ sub edit_destlist : Local {
}
}
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
$c->stash->{list_name} = $list;
$c->stash->{edit_dest} = $c->request->params->{list_edit};
@ -1789,16 +1810,17 @@ sub do_edit_destlist : Local {
my %messages;
my %entry;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
my $preferences;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_fax_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
},
\$preferences
);
@ -1851,8 +1873,8 @@ sub do_edit_destlist : Local {
unless(keys %messages) {
$c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_fax_preferences',
{ username => $c->session->{subscriber}{username},
domain => $c->session->{subscriber}{domain},
{ username => $$subscriber{username},
domain => $$subscriber{domain},
preferences => {
$list => $$preferences{$list},
},
@ -1871,18 +1893,20 @@ sub edit_audio_files : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/subscriber_edit_audio_files.tt';
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
my %settings;
$settings{username} = $c->session->{subscriber}{username};
$settings{domain} = $c->session->{subscriber}{domain};
$settings{username} = $$subscriber{username};
$settings{domain} = $$subscriber{domain};
my $audio_files;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_audio_files',
@ -1923,18 +1947,19 @@ sub do_create_audio : Local {
my %messages;
my %settings;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
$settings{username} = $c->session->{subscriber}{username};
$settings{domain} = $c->session->{subscriber}{domain};
$settings{username} = $$subscriber{username};
$settings{domain} = $$subscriber{domain};
$settings{handle} = $c->request->params->{handle};
$settings{data}{description} = $c->request->params->{description}
if length $c->request->params->{description};
@ -1971,18 +1996,19 @@ sub do_update_audio : Local {
my %messages;
my %settings;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
$settings{username} = $c->session->{subscriber}{username};
$settings{domain} = $c->session->{subscriber}{domain};
$settings{username} = $$subscriber{username};
$settings{domain} = $$subscriber{domain};
$settings{handle} = $c->request->params->{handle};
unless(length $settings{handle}) {
$c->response->redirect("/subscriber/edit_audio_files?subscriber_id=$subscriber_id");
@ -2023,18 +2049,19 @@ sub do_delete_audio : Local {
my ( $self, $c ) = @_;
my %settings;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
$c->stash->{subscriber} = $c->session->{subscriber};
$c->stash->{subscriber} = $subscriber;
$c->stash->{subscriber_id} = $subscriber_id;
$settings{username} = $c->session->{subscriber}{username};
$settings{domain} = $c->session->{subscriber}{domain};
$settings{username} = $$subscriber{username};
$settings{domain} = $$subscriber{domain};
$settings{handle} = $c->request->params->{handle};
unless(length $settings{handle}) {
$c->response->redirect("/subscriber/edit_audio_files?subscriber_id=$subscriber_id");
@ -2064,15 +2091,16 @@ sub listen_audio : Local {
my ( $self, $c ) = @_;
my %settings;
my $subscriber;
my $subscriber_id = $c->request->params->{subscriber_id};
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id',
{ subscriber_id => $subscriber_id },
\$c->session->{subscriber}
\$subscriber
);
$settings{username} = $c->session->{subscriber}{username};
$settings{domain} = $c->session->{subscriber}{domain};
$settings{username} = $$subscriber{username};
$settings{domain} = $$subscriber{domain};
$settings{handle} = $c->request->params->{handle};
unless(length $settings{handle}) {
$c->response->redirect("/subscriber/edit_audio_files?subscriber_id=$subscriber_id");

Loading…
Cancel
Save