Use extension attributes in DECT thread
This commit is contained in:
parent
6c391dc9bb
commit
e51cf2fc48
@ -63,7 +63,7 @@ class Dect:
|
|||||||
# accessible by extension number
|
# accessible by extension number
|
||||||
extensions_by_num = {e.num: e for e in extensions}
|
extensions_by_num = {e.num: e for e in extensions}
|
||||||
# accessible by device IPEI, for devices with static IPEI in configuration
|
# accessible by device IPEI, for devices with static IPEI in configuration
|
||||||
extensions_by_ipei = {e._c['dect_ipei']: e for _, e in extensions_by_num.items() if e._c.get('dect_ipei')}
|
extensions_by_ipei = {e.dect_ipei: e for _, e in extensions_by_num.items() if e.dect_ipei is not None}
|
||||||
|
|
||||||
# signal if new extensions got created
|
# signal if new extensions got created
|
||||||
created_tmp_ext = False
|
created_tmp_ext = False
|
||||||
@ -92,13 +92,12 @@ class Dect:
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
# update user in OMM if name of extension changed
|
# update user in OMM if name of extension changed
|
||||||
elif e._c['name'] != user.name:
|
elif e.name != user.name:
|
||||||
self.c.set_user_name(user.uid, e._c['name'])
|
self.c.set_user_name(user.uid, e.name)
|
||||||
|
|
||||||
|
if e.dect_ipei is not None and user.relType != mitel_ommclient2.types.PPRelTypeType("Unbound"):
|
||||||
if e._c.get('dect_ipei') and user.relType != mitel_ommclient2.types.PPRelTypeType("Unbound"):
|
|
||||||
d = self.c.get_device(user.ppn)
|
d = self.c.get_device(user.ppn)
|
||||||
if d.ipei != e._c['dect_ipei']:
|
if d.ipei != e.dect_ipei:
|
||||||
logger.debug(f"Detaching {user} {d}")
|
logger.debug(f"Detaching {user} {d}")
|
||||||
self.c.detach_user_device(user.uid, user.ppn)
|
self.c.detach_user_device(user.uid, user.ppn)
|
||||||
|
|
||||||
@ -132,13 +131,13 @@ class Dect:
|
|||||||
self.fp.temp_extensions.pop(ui.num)
|
self.fp.temp_extensions.pop(ui.num)
|
||||||
self.c.set_user_num(d.uid, e.num)
|
self.c.set_user_num(d.uid, e.num)
|
||||||
self.c.set_user_sipauth(d.uid, e.num, self.get_sip_password_for_number(e.num))
|
self.c.set_user_sipauth(d.uid, e.num, self.get_sip_password_for_number(e.num))
|
||||||
self.c.set_user_name(user.uid, e._c['name'])
|
self.c.set_user_name(user.uid, e.name)
|
||||||
|
|
||||||
# create a new user on OMM if none exist and bind it to not bound device on OMM
|
# create a new user on OMM if none exist and bind it to not bound device on OMM
|
||||||
else:
|
else:
|
||||||
logger.debug(f'Creating and binding user for {d}')
|
logger.debug(f'Creating and binding user for {d}')
|
||||||
user = self.create_and_bind_user(d, e.num)
|
user = self.create_and_bind_user(d, e.num)
|
||||||
self.c.set_user_name(user.uid, e._c['name'])
|
self.c.set_user_name(user.uid, e.name)
|
||||||
|
|
||||||
# assign any unbound device without static assigned IPEI a temporary extension
|
# assign any unbound device without static assigned IPEI a temporary extension
|
||||||
elif d.relType == mitel_ommclient2.types.PPRelTypeType("Unbound"):
|
elif d.relType == mitel_ommclient2.types.PPRelTypeType("Unbound"):
|
||||||
@ -156,14 +155,17 @@ class Dect:
|
|||||||
|
|
||||||
# update rounting when new extensions got created
|
# update rounting when new extensions got created
|
||||||
if created_tmp_ext:
|
if created_tmp_ext:
|
||||||
|
logger.info("notify for routing update")
|
||||||
self.fp.queues['routing'].put({"type": "sync"})
|
self.fp.queues['routing'].put({"type": "sync"})
|
||||||
|
|
||||||
|
logger.info("finished sync")
|
||||||
|
|
||||||
def claim_extension(self, current_extension, token):
|
def claim_extension(self, current_extension, token):
|
||||||
new_extension = None
|
new_extension = None
|
||||||
|
|
||||||
# find an extension that can be claimed with the provided token
|
# find an extension that can be claimed with the provided token
|
||||||
for ext in self.fp.extensions.extensions_by_type("dect"):
|
for ext in self.fp.extensions.extensions_by_type("dect"):
|
||||||
if ext._c.get('dect_claim_token') == token:
|
if ext.dect_claim_token == token:
|
||||||
new_extension = ext
|
new_extension = ext
|
||||||
break
|
break
|
||||||
|
|
||||||
@ -178,7 +180,7 @@ class Dect:
|
|||||||
# assign new extension to the user on OMM
|
# assign new extension to the user on OMM
|
||||||
self.c.set_user_num(user.uid, new_extension.num)
|
self.c.set_user_num(user.uid, new_extension.num)
|
||||||
self.c.set_user_sipauth(user.uid, e.num, self.get_sip_password_for_number(new_extension.num))
|
self.c.set_user_sipauth(user.uid, e.num, self.get_sip_password_for_number(new_extension.num))
|
||||||
self.c.set_user_name(user.uid, new_extension._c['name'])
|
self.c.set_user_name(user.uid, new_extension.name)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
logger.info("starting dect thread")
|
logger.info("starting dect thread")
|
||||||
|
Loading…
Reference in New Issue
Block a user