Think through what you're suggesting.
A session times out after an inactivity people, so intrinsically doesn't (and can't!) happen as part of a request... because a request implies activity. To redirect a request... there needs to be a request being made. But there is no request being made when a session times out.
You cannot interact with the browser in onSessionEnd(), because onSessionEnd() isn't - by definition - connected to browser activity.
What you want to do is to redirect to the login page when the session starts, not when it ends. Intrinsically the request after a session has ended will start a new session... and the redirect to the login page.
Thanks Adam, i've put the call to login page inside onSessionStart. What happens is, i'm using cftooltips ajax style (passing val as url param to a page). Everything works fine, until session ends. When that happens, the tootltip shows (part of) the login page instead of the value passed
Now, Ajax is itself a request, would something like this work, if i create a onRequestStart function, checking for a session var, if not there, can i force onSessionStart to run? something like:
<cfif session.someVar eq ''>