Session-based DNI (Dynamic Number Insertion) is the only call tracking method allowing marketers to dispose of keword-level call tracking data for a website.
Session-based DNI assigns every single visitor a unique phone number until the browser session ends. This way, it is theorically possible to collect and link to a call all session related data:
complete URL used for accessing the site (which may include search keywords)
visit behavior (internal search, visited pages, etc.)
Session-based DNI is expensive due to massive number pools it needs (one number by visitor). Though, it may be still useful for BtoB high ticket services and when it is useful to have other session related data.