Two phones, one line

Hi all,
Just diving into Asterisk properly after skimming the surface for a while - the previous technician who maintained it left, so I’m trying to get my head round it in a hurry.
We’re running Asterisk 1.8.25.0, have numerous outbound trunks (including a GSM gateway for cellular backup).
What we would like to achieve for one user is to have his phone at his desk (extension 101) ring at the same time as his mobile handset, for when he’s out on the shop floor. At the moment, 101 is in a queue and all calls flow in nicely. Is there a way to link his mobile handset to either the same extension (similar to the 2Talk one number feature), or would I have to add his handset to the queue and have them both ring at once?
If I have to go the queue route, is there a way to only allow one call at a time to be answered from the queue? Say he’s on line 1, I don’t want line 2 ringing until he hangs up the call on line 1 - at which point line 1 and 2 should both ring at once until he answers it on either one.
The reason for this is that the queue announces what number in the queue the caller is, and having multiple phones ringing breaks that feature for some reason - when they aren’t answered and go back to the queue they go to the end, instead of retaining their position.

I can set up extensions and sip fairly well - I have full voice prompts going at the moment. Just this queue thing has me scratching my head. Any suggestions would be greatly appreciated.

& in the dialstring.

Yeah, that’s how I have previous ones running - trouble is that will ring both, regardless of whether either line is busy.
I want line 1 & 2 to be treated as one line, so if 1 is engaged then 2 is viewed as the same - and vice versa.

Group counts.

You can also check the status of the device with DEVICE_STATE().

Device state will not show in use status out of the box, you will need to enable call limits. However grou counts is the preferred way of doing this sort of thing in recent versions.

So I have my SIP phones set up in sip.conf like this:
[101] ;Reception
type=friend
secret=%password%
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=internal
mailbox=101
callgroup=1
pickupgroup=1
limitonpeer=yes
call-limit=1
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/255.255.255.0

[102] ;Reception Mobile
type=friend
secret=%password%
qualify=yes
nat=no
callerid=Reception <101>
host=dynamic
canreinvite=no
context=internal
mailbox=101
callgroup=1
pickupgroup=1
limitonpeer=yes
call-limit=1
deny=0.0.0.0/0.0.0.0
permit=192.168.1.0/255.255.255.0


In queues.conf I have this entered:
[reception-queue]
musiconhold = moh-200804
strategy = ringall
timeout = 300
retry = 5
announce-frequency = 60
periodic-announce-frequency=60
announce-holdtime = yes
announce-round-seconds = 10
context=reception-queue-out
autopause = no
ringinuse = no

queue-youarenext = queue-youarenext ; (“You are now first in line.”)
queue-thereare = queue-thereare ; (“There are”)
queue-callswaiting = queue-callswaiting ; (“calls waiting.”)
queue-holdtime = queue-holdtime ; (“The current est. holdtime is”)
queue-minutes = queue-minutes ; (“minutes.”)
queue-seconds = queue-seconds ; (“seconds.”)
queue-thankyou = queue-thankyou ; (“Thank you for your patience.”)
queue-lessthan = queue-less-than ; (“less than”)
queue-reporthold = queue-reporthold ; (“Hold time”)
periodic-announce = queue-periodic-announce ; (“All reps busy / wait for next”)
member => SIP/101
member => SIP/102


In extensions.conf I have a date and time checking section set up (for public holidays and after hours menu switchover, along with weekend state and on-call technician call forwarding)
Following that, calls go to:
[bal-main]
exten => s,1,Answer
exten => s,2,Set(NUMTIMEOUTS=0)
exten => s,3,ExecIfTime(08:20-11:59,mon-fri,,?Background(newmenus/good-morning-and-welcome))
exten => s,4,ExecIfTime(12:00-17:15,mon-fri,,?Background(newmenus/good-afternoon-and-welcome))
exten => s,n,Background(newmenus/new-main-menu)
exten => s,n,Background(treva/silence-2sec)
exten => s,n,Background(treva/Press-Star-To-Repeat)
exten => s,n,WaitExten(10)

exten => 1,1,Goto(bal-sales,s,1) ; 1 - for sales, press 1
exten => 2,1,Goto(bal-service,s,1) ; 2 - for service & technical support, press 2
exten => 3,1,Goto(bal-blueprint,s,1) ; 3 - for blueprint imaging, press 3
exten => 4,1,Goto(bal-accounts,s,1) ; 4 - for account enquiries, press 4
exten => 5,1,Goto(bal-promotions,s,1) ; 5 - for promotions menu, press 5
exten => 6,1,Goto(bal-companyinfo,s,1) ; 6 - for company information, press 6
exten => 0,1,Goto(bal-reception,s,1) ; 0 - for all other enquiries, please press 0

[bal-reception]
exten => s,1,Playback(treva/treva-please-hold-while-we-transfer-you-to-reception)
exten => s,2,Wait(2)
exten => s,3,Set(CALLERID(name)=${IF(${DB_EXISTS(cidname/${CALLERID(num)})}?${DB(cidname/${CALLERID(num)})}:${CALLERID(name)})} ;LookupCIDName
exten => s,4,Set(CALLERID(name)=RCP>${CALLERID(name)})
exten => s,5,Queue(reception-queue,tT)


What would I need to change to get the queue accepting one live call at a time across two phones?