{"id":138416,"date":"2026-05-14T21:58:17","date_gmt":"2026-05-14T21:58:17","guid":{"rendered":"https:\/\/christiancorner.us\/index.php\/2026\/05\/14\/bring-native-visibility-to-your-voip-app-experience-with-telecoms-latest-alpha\/"},"modified":"2026-05-14T21:59:41","modified_gmt":"2026-05-14T21:59:41","slug":"bring-native-visibility-to-your-voip-app-experience-with-telecoms-latest-alpha","status":"publish","type":"post","link":"https:\/\/christiancorner.us\/index.php\/2026\/05\/14\/bring-native-visibility-to-your-voip-app-experience-with-telecoms-latest-alpha\/","title":{"rendered":"Bring native visibility to your VoIP app experience with Telecom&#8217;s latest alpha"},"content":{"rendered":"<p>\n<\/p>\n<div id=\"\">\n<p><i>Posted by Android Developer Relations Engineer Nataraj KR<\/i><\/p>\n<div class=\"separator\" style=\"clear: both; text-align: center;\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj9xQMxtqoSQIbAxKCIbaoumfc0EE5hdczyg-mpbPZ4F_httnq6tvDVcgHuCEW_3wngkrGPfbpXgTGP4UD0WizMRHpq12aIO1OeSbJjkIDnCaeN1Ow-68aD_AOxJ-WJp-UnjxAhQSaZQC7Z97_ONSFV3rKln7_RtwJX-qZ_uWRehVwL3BD8S5OJL6rF0_c\/s8583\/Bring%20Native%20Visibility%20to%20Your%20VoIP%20App%20Experience%20with%20Telecom&#039;s%20Latest%20Alpha%20%5BDESIGN%5D%5BABL_66%5D_Blog.png\" style=\"clear: left; float: left; margin-bottom: 1em; margin-right: 1em;\"><\/a><\/div>\n<p>Initial launch of Jetpack Telecom Library introduced <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/developer.android.com\/reference\/androidx\/core\/telecom\/CallsManager\">call manager<\/a><\/strong>heritage site <code>ConnectionService<\/code> API to simplify VoIP integration. CallsManager streamlines call lifecycle management and audio routing, enabling interaction with remote surfaces such as smartwatches, Bluetooth devices, and Android Auto. Additionally, it supports call extensions for richer features \u2013 like participant handling, custom icons, call silencing, and meeting summaries on remote surfaces \u2013 all while maintaining backward compatibility up to Android O (API level 26).<\/p>\n<p>Building on this foundation, <strong>Jetpack Telecom v1.1.0<\/strong> Brings basic-level visibility and convenience to third-party VoIP apps. This latest release introduces powerful new capabilities including integrated call history, call log exclusion, and native callback functionality, making call management more intuitive than ever for users.<\/p>\n<p>Here&#8217;s a closer look at what&#8217;s new and how you can implement these features in your application.<\/p>\n<h3>Bridging the dialer gap: integrated call history and callback<\/h3>\n<p>Historically, users have had to open separate third-party apps to view their VoIP call history or answer a missed call. With the new integrated call logging feature, system dialer apps can now display call logs directly from third-party VoIP apps.<\/p>\n<p>Even better, users can now initiate a callback to a VoIP contact directly from their native system dialer, streamlining the communication experience.<\/p>\n<p><strong>how it works:<\/strong><\/p>\n<p>To opt-in to this feature, do the following:<\/p>\n<ul>\n<li><strong>Register for a callback:<\/strong> Your VoIP app must register a new system-protected intent: <code>TelecomManager.ACTION_CALL_BACK<\/code>.<\/li>\n<li><strong>Call Log:<\/strong> Use <code>TelecomManager.addCall<\/code> (or related Jetpack API) to ensure that the system automatically logs calls.<\/li>\n<li><strong>Manage Call ID:<\/strong> When a call is registered, <code>CallControlScope.getCallId<\/code> Provides a unique UUID. System dialer uses it precisely <code>TelecomManager.EXTRA_UUID<\/code> When creating a callback intent.<\/li>\n<li><strong>Initiate callback:<\/strong> Your application must store and manage call details associated with this UUID. When the system dialer activates the callback intent <code>EXTRA_UUID<\/code>Your app can seamlessly resolve the ID and initiate the call with the correct details.<\/li>\n<\/ul>\n<div class=\"separator\" style=\"clear: both; text-align: center;\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiP3_mqHh_sNoVCImNaGdLBcLjhuZOtMcGDsABkpi-YxPaHMZqsjoLHqGhpuvsf9MeIpRk6F-i6_zGg-ls-vukcgaHOsmpNHA85lyVXtdxj03Y3AeVUjDJ_YwYOgBx70IHvSLIOvpRNsi9EMuwZIWsHlws1UdBZC23WDbL1r7OyQaZtFvvlHuj4XfkXkN4\/s957\/integrated_call_log.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img fetchpriority=\"high\" decoding=\"async\" border=\"0\" data-original-height=\"957\" data-original-width=\"458\" height=\"400\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiP3_mqHh_sNoVCImNaGdLBcLjhuZOtMcGDsABkpi-YxPaHMZqsjoLHqGhpuvsf9MeIpRk6F-i6_zGg-ls-vukcgaHOsmpNHA85lyVXtdxj03Y3AeVUjDJ_YwYOgBx70IHvSLIOvpRNsi9EMuwZIWsHlws1UdBZC23WDbL1r7OyQaZtFvvlHuj4XfkXkN4\/w191-h400\/integrated_call_log.png\" width=\"191\"\/><\/a><\/div>\n<h3>Fine-grained control: call log exclusion<\/h3>\n<p>We believe that not every VoIP call should appear in the system&#8217;s native dialer history. Whether for privacy reasons, ephemeral communications, or app-specific behavior, you need control over what comes out.<\/p>\n<p>To address this, we are introducing <strong>call log exclusion<\/strong>. You can now prevent specific calls from being logged in the system call log by setting <code>isLogExcluded<\/code> boolean to true within <code>CallAttributesCompat<\/code>. By configuring this flag, the call is completely hidden from the system log, and the native dialer will not display it.<\/p>\n<p><strong>Important note on compatibility<\/strong><br \/>These integrated logging and callback features are available for devices running Android 16.1 (SDK 36.1) and higher. refer <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/developer.android.com\/build#module-level\">Here<\/a> To compile your app with Android SDK 36.1.<\/p>\n<h3>get started<\/h3>\n<p>We encourage developers to test these integrations and explore how integrated call history and callbacks can improve the everyday user experience of your VoIP applications.<\/p>\n<p>To help you get started and see these APIs in action, we&#8217;ve put together a sample app demonstrating the new integrations.<\/p>\n<p>Check out the sample app here: <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/android\/platform-samples\/tree\/main\/samples\/connectivity\/telecom\">https:\/\/github.com\/android\/platform-samples\/tree\/main\/samples\/connectivity\/telecom<\/a><\/p>\n<p>check it out <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/developer.android.com\/jetpack\/androidx\/releases\/core#core-telecom_version_11_2\">release notes<\/a> And <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/developer.android.com\/develop\/connectivity\/telecom\/call-log-integration\">documentation<\/a> Start implementing these features today!<\/p>\n<p><b>Comment: <\/b>Although Jetpack Telecom v1.1.0 APIs are accessible for integration, the ability to render native call logs of the system dialer is being introduced in phases, starting with Google Meet. To protect against spam, native dialers use secure package allow lists to control VoIP display. For local testing of your callback and logging implementations, we recommend using open-source <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/android\/platform-samples\/tree\/main\/samples\/connectivity\/telecom\">telecom sample dialer app<\/a> As your emulator environment.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Posted by Android Developer Relations Engineer Nataraj KR Initial launch of Jetpack Telecom Library introduced call managerheritage site ConnectionService API to simplify VoIP integration. CallsManager streamlines call lifecycle management and audio routing, enabling interaction with remote surfaces such as smartwatches, Bluetooth devices, and Android Auto. Additionally, it supports call extensions for richer features \u2013 like<\/p>\n","protected":false},"author":1,"featured_media":138417,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[58],"tags":[374,210,3329,2440,2621,8037,31004,5806,18579],"class_list":{"0":"post-138416","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-devotionals","8":"tag-alpha","9":"tag-app","10":"tag-bring","11":"tag-experience","12":"tag-latest","13":"tag-native","14":"tag-telecoms","15":"tag-visibility","16":"tag-voip"},"_links":{"self":[{"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/posts\/138416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/comments?post=138416"}],"version-history":[{"count":1,"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/posts\/138416\/revisions"}],"predecessor-version":[{"id":138418,"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/posts\/138416\/revisions\/138418"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/media\/138417"}],"wp:attachment":[{"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/media?parent=138416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/categories?post=138416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/christiancorner.us\/index.php\/wp-json\/wp\/v2\/tags?post=138416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}