Зарегистрируйте событие изменения состояния вызова для входящего IM-вызова:
call.StateChanged +=new EventHandler<CallStateChangedEventArgs>(call_StateChanged);
Далее вы можете получить состояние вызова, а после его завершения вы можете инициировать новый вызов:
protected void call_StateChanged(object sender, CallStateChangedEventArgs e)
{
if (e.State == CallState.Terminated)
{
//Initiate new call again
}
}
Комувосстановить историю звонков, я думаю, вам нужно сохранить расшифровку предыдущего разговора.