I am using asterisk with mobile sip clients, whose connection is highly unstable and thus, I can not much rely on their “registered” status and, to minimize power consumtion, I do not use qualify requests.
If on incoming call the sip client is unavalable, the call must be served through another route (outbound call is made via pstn to the actual client cell phone). So, in our case to check whether the client is online we use simple script which makes first a test sip call for 2 sec. If sip-client is online the call ends up with dialstatus=no answer, if registered, but unavailable for any reason, with another status, so I can make decision as to the correct route.
That worked perfectly well on 1.4. Now we upgraded to 1.8 and we have a problem - now we get always “no answer” on the test call. I even tried to rise timeout of test call higher, and it turns out that if the client was registered before and then connection was lost, the caller will be waiting during all that timeout and recieves at the end in 1.8 “no answer” reply.
This is fundamentally wrong in my view. Can I somehow revert to original behaviour, as it was in asterisk 1.4 ?
Or, alternatively, can i somehow force one-time qualify request via dialplan to get to know for sure that the client is available, and not just registered ???