How to integrate hotdesk with queue?

My custom variables.
User extension => SIP/1001
Station => 5001
Queue name => Helpdesk, with queue numer 3000
Softphone = XLite

Currently, I have a hotdesk system and a queue system. They both work fine separately.

When I log into station 5001 with SIP/1001, whoever dial 1001 will be routed to the station 5001 and rings.

However, due to unregistered SIP/1001 on XLite, the member status of SIP/1001 in the Helpdesk queue = Unavailable.

When other users dial 3000, station 5001 with SIP/1001 logged in won’t ring.

There is no problem if SIP/1001 is registered on the softphone.

The queue is as below:
[ul]Helpdesk has 0 calls (max unlimited) in ‘roundrobin’ strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0s
SIP/1001 with penalty 1 (Unavailable) has taken no calls yet
No Callers[/ul]

Any method to make the member SIP/1001 status to become “not in use” or “available”?
Please suggest.

Thanks in advance.


use agents channel in the queues.conf.


use agents channel in the queues.conf.[/quote]

Thanks. I’ll read and do research on it. :smile:

Isn’t this just a duplicate of another thread (how to manually set available)?

To avoid an unavailable state, the device needs to have a known IP address (either specified explicitly or the phone must register. For some reason you don’t seem to be prepared to have the phone register.

You must also either not have the qualify option enabled, or the phone must respond properly to OPTION packets. Although the X-Lite has some limitations (broken re-invite and nobbled transfers) I believe it responds to OPTION. It is certainly capable of registering.

You can hide the unavailable state by interposing a local channel, but that would seem to be a workaround for a problem that you are imposing on yourself.

Originally, I thought you were using an Agent channel, with AgentLogin, which would allow you to be on the queue without the ability to make outgoing calls (unavailable should stop all calls to the phone, not those from the queue). I have a feeling even this wouldn’t work if the device state was UNAVAILABLE, even though it shouldn’t really require a known IP address at the device level.

For version 1.2 you might have used AgentCallbackLogin, for outgoing calls from a queue, but that is now deprecated. However, there is a description of how to simulate this with local channels in the documentation included with the Asterisk source code. This has the bug that it hides the device status from Queue, which means that Queue will think it is callable. Of course, if the status is unavailable, that call will fail.

If you are not registering because you don’t want people to be able to dial the phone, you misunderstand the distinction between devices and extensions. People can only call extensions in a context allowed to them. That extension can actually call devices whose names are totally unlike the extension “number”, and good security practice is actually to do that.

Sorry for late reply, I was sick for 3 days last week.

I don’t register my user extensions on the XLite because I am doing hotdesking. I only register the devices(stations) , in my case is station 5001, but not user extensions. User extensions sign in to the stations without register on the softphone.
My code as following:

[macro-phone-login] exten => s,1,Set(HUSER=${ARG1}) exten => s,n,Set(PHONE=${ARG2}) exten => s,n,NoOp(Hotdesk user ${HUSER} login into station ${PHONE}) exten => s,n,Set(OLDPHONE=${DB(HOTDESK/${HUSER}/PHONE)}) exten => s,n,Set(OLDHUSER=${DB(HOTDESK/${PHONE}/HUSER)}) exten => s,n,Set(DB(HOTDESK/${OLDHUSER}/PHONE)=) exten => s,n,Set(DB(HOTDESK/${OLDPHONE}/HUSER)=) exten => s,n,Set(DB(HOTDESK/${HUSER}/PHONE)=${PHONE}) exten => s,n,Set(DB(HOTDESK/${PHONE}/HUSER)=${HUSER}) exten => s,n,PlayBack(agent-loginok)

I’ve tried out the local channel that David55 you suggested, but it still doesn’t work right as the member status in queue remains unavailable.

The reason I am not using agent channel is AgentLogin() is not flexible. I wish to pause and unpause member (AgentLogin() can only wait music on hold and receive call whenever calls come in), and allow agents to pick up and hang up phones with keying in a DTMF (i know this can be done in the queue.conf).

Now I am finding a way to make the queue member become available without registering the member on a softphone.

Or, is there any alternative method to configure a hotdesking with registered users?

Sorry for so troublesome, but I really out of ideas.

Thanks so much David for bearing with me.

AgentLogin is compatible with Pause.
In current versions, AgentLogin should be compatible with the acknowledge call with DTMF mode.

You have non-default penalty. Unless you also have a non-default max-penalty, that member will never be used.

I tried to use agent channel for the queue, but the member status is still unavailable.

So, I wish to ask, is it possible to reach a queue member without having the queue member registered on a softphone? …

Or, is there any example code of integrating hot desking with queue for me to get some idea? …