+sub switch_cust {
+ my $p = shift;
+ my($context, $session, $custnum) = _custoragent_session_custnum($p);
+ return { 'error' => $session } if $context eq 'error';
+
+ $session->{'custnum'} = $p->{'custnum'}
+ if exists $session->{'customers'}{ $p->{'custnum'} };
+
+ my $conf = new FS::Conf;
+ my $timeout = $conf->config('selfservice-session_timeout') || '1 hour';
+ _cache->set( $p->{'session_id'}, $session, $timeout );
+
+ return { 'error' => '',
+ %{ customer_info( { session_id=>$p->{'session_id'} } ) },
+ };
+}
+