You have to change the session timeout in your php.ini file. It may not be possible on some shared hosting environments. This is something you should ask you hosting provider about. You shouldn't need to have a started session in order to keep the session alive.
You can use an AJAX trick to keep the session alive indefinitely by silently posting to a page every 20 minutes while the site is open using javascript, but that is more work than simply extending the session timeout if that is possible.