Phone calls don't carry UTMs. Dynamic number insertion solves that by replacing the phone number on your website with a tracking number from a pool, assigned to the visitor's session. When the phone rings on that number, the call is matched to the session, and through it to the campaign, keyword or ad.
Session-level DNI needs roughly one number per concurrent visitor for exact matching; numbers are reserved while the visitor is active and released after a timeout. Source-level DNI uses one number per channel instead, which needs fewer numbers but can't tell individual visitors apart.