Generally, cs-cart sessions are reset when either the user-agent or the ip adress changes on a new page load.
The causes of this can be hard to determine.
I'd suggest you add some logging into the Session class to see when either of the above (or if) is causing the session reset.
There are defines you can set to disable those checks. That too might help you determine if one of them is the source of your problem.
You can try to comment out these lines in config.php
// Session options // define('SESS_VALIDATE_IP', true); // link session ID with ip address define('SESS_VALIDATE_UA', true); // link session ID with user-agent
The other define used to restart a session is 'FORCE_SESSION_START' which is used by some payment methods.
Additionallly you should verify that your define of SESSION_ALIVE_TIME is valid in config.php.
You have a call center that uses phones for entering orders? It should not affect your operations.