|
|
|
@ -363,6 +363,7 @@ def deactivate_all_dynamic_bridges(system_name):
|
|
|
|
|
|
|
|
|
|
|
|
### MODIFIED: Core logic updated to handle special TGIDs (9990-9999) correctly with SINGLE_MODE
|
|
|
|
### MODIFIED: Core logic updated to handle special TGIDs (9990-9999) correctly with SINGLE_MODE
|
|
|
|
def rule_timer_loop():
|
|
|
|
def rule_timer_loop():
|
|
|
|
|
|
|
|
logger.debug('(ROUTER) routerHBP Rule timer loop started')
|
|
|
|
_now = time()
|
|
|
|
_now = time()
|
|
|
|
_remove_bridges = deque()
|
|
|
|
_remove_bridges = deque()
|
|
|
|
|
|
|
|
|
|
|
|
@ -401,9 +402,9 @@ def rule_timer_loop():
|
|
|
|
if _system['SYSTEM'] not in _active_dynamic_bridges:
|
|
|
|
if _system['SYSTEM'] not in _active_dynamic_bridges:
|
|
|
|
_active_dynamic_bridges[_system['SYSTEM']] = []
|
|
|
|
_active_dynamic_bridges[_system['SYSTEM']] = []
|
|
|
|
_active_dynamic_bridges[_system['SYSTEM']].append((_bridge, _system))
|
|
|
|
_active_dynamic_bridges[_system['SYSTEM']].append((_bridge, _system))
|
|
|
|
pass
|
|
|
|
logger.debug('(ROUTER) Conference Bridge ACTIVE (INFINITE TIMER): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
pass
|
|
|
|
logger.debug('(ROUTER) Conference Bridge INACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))
|
|
|
|
elif _system['TO_TYPE'] == 'OFF':
|
|
|
|
elif _system['TO_TYPE'] == 'OFF':
|
|
|
|
if _system['ACTIVE'] == False:
|
|
|
|
if _system['ACTIVE'] == False:
|
|
|
|
# Activar inmediatamente sin timer
|
|
|
|
# Activar inmediatamente sin timer
|
|
|
|
@ -412,6 +413,7 @@ def rule_timer_loop():
|
|
|
|
logger.info('(ROUTER) Conference Bridge ACTIVATED (NO TIMEOUT): System: %s, Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))
|
|
|
|
logger.info('(ROUTER) Conference Bridge ACTIVATED (NO TIMEOUT): System: %s, Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
_bridge_used = True
|
|
|
|
_bridge_used = True
|
|
|
|
|
|
|
|
logger.debug('(ROUTER) Conference Bridge ACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
# COMPORTAMIENTO ORIGINAL (SINGLE MODE ACTIVADO o bridges estáticos o TGIDs especiales)
|
|
|
|
# COMPORTAMIENTO ORIGINAL (SINGLE MODE ACTIVADO o bridges estáticos o TGIDs especiales)
|
|
|
|
if _system['TO_TYPE'] == 'ON':
|
|
|
|
if _system['TO_TYPE'] == 'ON':
|
|
|
|
@ -427,7 +429,7 @@ def rule_timer_loop():
|
|
|
|
_bridge_used = True
|
|
|
|
_bridge_used = True
|
|
|
|
logger.info('(ROUTER) Conference Bridge ACTIVE (ON timer running): System: %s Bridge: %s, TS: %s, TGID: %s, Timeout in: %.2fs,', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']), timeout_in)
|
|
|
|
logger.info('(ROUTER) Conference Bridge ACTIVE (ON timer running): System: %s Bridge: %s, TS: %s, TGID: %s, Timeout in: %.2fs,', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']), timeout_in)
|
|
|
|
elif _system['ACTIVE'] == False:
|
|
|
|
elif _system['ACTIVE'] == False:
|
|
|
|
pass
|
|
|
|
logger.debug('(ROUTER) Conference Bridge INACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))
|
|
|
|
elif _system['TO_TYPE'] == 'OFF':
|
|
|
|
elif _system['TO_TYPE'] == 'OFF':
|
|
|
|
if _system['ACTIVE'] == False:
|
|
|
|
if _system['ACTIVE'] == False:
|
|
|
|
if _system['TIMER'] < _now:
|
|
|
|
if _system['TIMER'] < _now:
|
|
|
|
@ -440,11 +442,13 @@ def rule_timer_loop():
|
|
|
|
logger.info('(ROUTER) Conference Bridge INACTIVE (OFF timer running): System: %s Bridge: %s, TS: %s, TGID: %s, Timeout in: %.2fs,', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']), timeout_in)
|
|
|
|
logger.info('(ROUTER) Conference Bridge INACTIVE (OFF timer running): System: %s Bridge: %s, TS: %s, TGID: %s, Timeout in: %.2fs,', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']), timeout_in)
|
|
|
|
elif _system['ACTIVE'] == True:
|
|
|
|
elif _system['ACTIVE'] == True:
|
|
|
|
_bridge_used = True
|
|
|
|
_bridge_used = True
|
|
|
|
|
|
|
|
logger.debug('(ROUTER) Conference Bridge ACTIVE (no change): System: %s Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
if _system['SYSTEM'][0:3] != 'OBP':
|
|
|
|
if _system['SYSTEM'][0:3] != 'OBP':
|
|
|
|
_bridge_used = True
|
|
|
|
_bridge_used = True
|
|
|
|
elif _system['SYSTEM'][0:3] == 'OBP' and _system['TO_TYPE'] == 'STAT':
|
|
|
|
elif _system['SYSTEM'][0:3] == 'OBP' and _system['TO_TYPE'] == 'STAT':
|
|
|
|
_bridge_used = True
|
|
|
|
_bridge_used = True
|
|
|
|
|
|
|
|
logger.debug('(ROUTER) Conference Bridge NO ACTION: System: %s, Bridge: %s, TS: %s, TGID: %s', _system['SYSTEM'], _bridge, _system['TS'], int_id(_system['TGID']))
|
|
|
|
|
|
|
|
|
|
|
|
if _bridge_used == False:
|
|
|
|
if _bridge_used == False:
|
|
|
|
_remove_bridges.append(_bridge)
|
|
|
|
_remove_bridges.append(_bridge)
|
|
|
|
@ -454,12 +458,12 @@ def rule_timer_loop():
|
|
|
|
logger.debug('(ROUTER) Unused conference bridge %s removed',_bridgerem)
|
|
|
|
logger.debug('(ROUTER) Unused conference bridge %s removed',_bridgerem)
|
|
|
|
|
|
|
|
|
|
|
|
if CONFIG['REPORTS']['REPORT']:
|
|
|
|
if CONFIG['REPORTS']['REPORT']:
|
|
|
|
report_server.send_clients(b'bridge updated')
|
|
|
|
reactor.callFromThread(report_server.send_clients, b'bridge updated')
|
|
|
|
|
|
|
|
|
|
|
|
### END MODIFIED ###
|
|
|
|
### END MODIFIED ###
|
|
|
|
|
|
|
|
|
|
|
|
def statTrimmer():
|
|
|
|
def statTrimmer():
|
|
|
|
pass
|
|
|
|
logger.debug('(ROUTER) STAT trimmer loop started')
|
|
|
|
_remove_bridges = deque()
|
|
|
|
_remove_bridges = deque()
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
for _bridge in BRIDGES:
|
|
|
|
_bridge_stat = False
|
|
|
|
_bridge_stat = False
|
|
|
|
@ -539,7 +543,7 @@ def bridgeDebug():
|
|
|
|
logger.info('(BRIDGEDEBUG) The server currently has %s STATic bridges',statroll)
|
|
|
|
logger.info('(BRIDGEDEBUG) The server currently has %s STATic bridges',statroll)
|
|
|
|
|
|
|
|
|
|
|
|
def kaReporting():
|
|
|
|
def kaReporting():
|
|
|
|
pass
|
|
|
|
logger.debug('(ROUTER) KeepAlive reporting loop started')
|
|
|
|
for system in systems:
|
|
|
|
for system in systems:
|
|
|
|
if CONFIG['SYSTEMS'][system]['MODE'] == 'OPENBRIDGE':
|
|
|
|
if CONFIG['SYSTEMS'][system]['MODE'] == 'OPENBRIDGE':
|
|
|
|
if CONFIG['SYSTEMS'][system]['ENHANCED_OBP']:
|
|
|
|
if CONFIG['SYSTEMS'][system]['ENHANCED_OBP']:
|
|
|
|
@ -3706,7 +3710,9 @@ if __name__ == '__main__':
|
|
|
|
# logger.info('(API) API not started')
|
|
|
|
# logger.info('(API) API not started')
|
|
|
|
|
|
|
|
|
|
|
|
# Initialize the rule timer -- this if for user activated stuff
|
|
|
|
# Initialize the rule timer -- this if for user activated stuff
|
|
|
|
rule_timer_task = task.LoopingCall(rule_timer_loop)
|
|
|
|
def _rule_timer_in_thread():
|
|
|
|
|
|
|
|
return threads.deferToThread(rule_timer_loop)
|
|
|
|
|
|
|
|
rule_timer_task = task.LoopingCall(_rule_timer_in_thread)
|
|
|
|
rule_timer = rule_timer_task.start(52)
|
|
|
|
rule_timer = rule_timer_task.start(52)
|
|
|
|
rule_timer.addErrback(loopingErrHandle)
|
|
|
|
rule_timer.addErrback(loopingErrHandle)
|
|
|
|
|
|
|
|
|
|
|
|
@ -3739,12 +3745,16 @@ if __name__ == '__main__':
|
|
|
|
|
|
|
|
|
|
|
|
#STAT trimmer - once every 5 mins (roughly - shifted so all timed tasks don't run at once
|
|
|
|
#STAT trimmer - once every 5 mins (roughly - shifted so all timed tasks don't run at once
|
|
|
|
if CONFIG['GLOBAL']['GEN_STAT_BRIDGES']:
|
|
|
|
if CONFIG['GLOBAL']['GEN_STAT_BRIDGES']:
|
|
|
|
stat_trimmer_task = task.LoopingCall(statTrimmer)
|
|
|
|
def _stat_trimmer_in_thread():
|
|
|
|
|
|
|
|
return threads.deferToThread(statTrimmer)
|
|
|
|
|
|
|
|
stat_trimmer_task = task.LoopingCall(_stat_trimmer_in_thread)
|
|
|
|
stat_trimmer = stat_trimmer_task.start(303)#3600
|
|
|
|
stat_trimmer = stat_trimmer_task.start(303)#3600
|
|
|
|
stat_trimmer.addErrback(loopingErrHandle)
|
|
|
|
stat_trimmer.addErrback(loopingErrHandle)
|
|
|
|
|
|
|
|
|
|
|
|
#KA Reporting
|
|
|
|
#KA Reporting
|
|
|
|
ka_task = task.LoopingCall(kaReporting)
|
|
|
|
def _ka_reporting_in_thread():
|
|
|
|
|
|
|
|
return threads.deferToThread(kaReporting)
|
|
|
|
|
|
|
|
ka_task = task.LoopingCall(_ka_reporting_in_thread)
|
|
|
|
ka = ka_task.start(60)
|
|
|
|
ka = ka_task.start(60)
|
|
|
|
ka.addErrback(loopingErrHandle)
|
|
|
|
ka.addErrback(loopingErrHandle)
|
|
|
|
|
|
|
|
|
|
|
|
|