MTK generates both. INCOMING_CALL_INDICATION is for notifying of an incoming call, *before* telling the network if we are available or not (I interpret it that way). REQUEST_SET_CALL_INDICATION is to notify the network whether we are available or that. In other modems, this was not needed: the modem automatically tells the network that we are available, and we start to receive RING events. My guess, taking a look at MTK code, is that this is useful for full dual SIM set-up: you would tell the network that you are busy if you receive a call from line 2 while you have an active call in line 1. I have updated the comments in mtkrequest.h to reflect this.

CALL_PROGRESS_INFO is used by MTK instead of RESPONSE_CALL_STATE_CHANGED. The difference is that it has a payload that the AOSP event does not have, thus we would not necessarily need to poll for the state after receiving the event. However, I kept that no avoid diverging too much from the rilmodem voicecall atom.