#199 closed баг (fixed)
Странное поведение при reload mod_sofia
Reported by: | alx | Owned by: | alx |
---|---|---|---|
Priority: | minor | Milestone: | 2 очередь |
Component: | MC04-SoftSwitch | Keywords: | reload_XML |
Cc: | san |
Description
В процессе рестарта mod_sofia FS посылает событие RELOADXML. При получении этого события пульт диспетчера запрашивает список пользователей list_users.
Замечено, что иногда при этом он получает в ответ пустой список.
Вот лог tcpdump'а:
Event-Name: RELOADXML Core-UUID: 55fbad48-47d0-4e49-9c02-3ada06ce4480 FreeSWITCH-Hostname: voip.kolez.com FreeSWITCH-Switchname: voip.kolez.com FreeSWITCH-IPv4: 192.168.0.63 FreeSWITCH-IPv6: 2a02%3A2698%3A25%3A264b%3A100%3A%3A9787 Event-Date-Local: 2016-06-24%2014%3A14%3A20 Event-Date-GMT: Fri,%2024%20Jun%202016%2011%3A14%3A20%20GMT Event-Date-Timestamp: 1466766860893509 Event-Calling-File: switch_xml.c Event-Calling-Function: switch_xml_open_root Event-Calling-Line-Number: 2270 Event-Sequence: 101478 api list_users Content-Type: api/response Content-Length: 103 userid|context|domain|group|contact|callgroup|effective_caller_id_name|effective_caller_id_number +OK
Change History (3)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Keywords: | reload_XML added |
---|---|
Resolution: | → fixed |
Status: | new → closed |
r380
Обрабатываю событие MODULE_LOAD.
Note:
See TracTickets
for help on using tickets.
Предположительно проблема вызвана тем, что при выполнении команды "reload mod_sofia" сначала выполняется reloadxml, а затем - собственно выгрузка и повторная загрузка mod_sofia. По событию reloadxml наш пульт перезапрашивает список абонентов и с некоторой вероятностью видит пустой список из-за того что mod_sofia уже выгружен, а новый еще не загружен.
Предлагаю решить проблемы следующим образом: кроме
RELOADXML
подписаться на событиеMODULE_LOAD
. При получении событияMODULE_LOAD
проверять его полеname
, и еслиname=sofia_presence_data
, перечитывать список пользователей как при полученииRELOADXML
.