Cause analysis of network disconnection and reconnection collapse of csipim
Operation flow after disconnection and reconnection
Make a call
->Call sipservice. Makecalloptions(), restart sipservice first to ensure that all parameters of pjsipservice are normal, especially the create parameter is set to true; Then send broadcast to process dialing information
->The receiver in sipservice receives the broadcast and internally uses the global handler to receive the siprunnable to perform the underlying dialing operation
Cause analysis
At this time, sipservice only performs the restart operation after the message obtained by the handler from the old messagepool is assigned, and the message pool after restart is reset to 0 (refer to the countid parameter of sipservice.sipserviceexecutor); In this way, the newly sent message cannot get a normal message in handlemessage(), so some Samsung or Xiaomi mobile phones think that the message queue is abnormal and report an error!