{"id":23,"date":"2026-04-07T16:23:07","date_gmt":"2026-04-07T16:23:07","guid":{"rendered":"http:\/\/localhost:8080\/knowledge-base\/push-notifications-in-siperb\/"},"modified":"2026-05-27T10:39:56","modified_gmt":"2026-05-27T10:39:56","slug":"push-notifications","status":"publish","type":"post","link":"https:\/\/www.siperb.com\/kb\/push-notifications\/","title":{"rendered":"How Push Notifications Work in Siperb"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Push notifications are the mechanism Siperb uses to deliver incoming calls to mobile devices reliably \u2014 even when the app is closed, the screen is locked, or the device has been idle for hours. This article explains how the system works at an architectural level.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The problem push notifications solve<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SIP is a stateful protocol. Receiving an incoming call requires your device to be actively registered with the PBX at the moment the call arrives. On a desktop or server, maintaining a persistent registration is straightforward. On a mobile device, it isn&#8217;t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">iOS and Android are both designed to aggressively suspend and terminate background processes to preserve battery life and system resources. A SIP softphone running in the background will lose its registration within minutes &#8212; sometimes seconds. When a call arrives, there is nobody home.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The platform-correct solution is push notifications. Rather than keeping the app alive, the OS keeps a single, system-managed connection open to Apple&#8217;s or Google&#8217;s push infrastructure. When a wake-up signal arrives, the OS restarts the app, which re-registers with the PBX and completes the call.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Siperb implements push notifications<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Siperb&#8217;s proxy maintains a persistent SIP registration on behalf of your mobile device. When your phone goes idle and loses its direct registration, the proxy stays registered with your PBX. Your PBX continues to see a live endpoint for your extension at all times.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When an incoming call arrives for your extension, the sequence is:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Your PBX sends a SIP INVITE to Siperb&#8217;s proxy.<\/li>\n\n\n\n<li>The proxy identifies the target device and dispatches a push notification via the appropriate platform provider &#8212; Apple APNs for iOS, Google FCM for Android.<\/li>\n\n\n\n<li>The platform&#8217;s push infrastructure delivers the notification to the device. The OS wakes the Siperb app, even from a locked screen or suspended state.<\/li>\n\n\n\n<li>The app establishes a connection, re-registers with the proxy, and call signalling continues. From the user&#8217;s perspective, the phone simply rings.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"\/kb\/wp-content\/uploads\/2026\/01\/PushNotifications.webp\" alt=\"Architecture diagram showing how Siperb&#39;s proxy delivers push notifications via APNs and FCM to iOS and Android devices\" class=\"wp-image-615\"\/><\/figure>\n\n\n\n<p class=\"wp-block-hb-message is-style-info wp-block-hb-message--withicon wp-block-paragraph\"><strong>Call audio never passes through push infrastructure.<\/strong> The push notification is only the wake-up signal. Once the device is awake and registered, audio flows directly between the device and your PBX (via Siperb&#8217;s transcoding layer if needed).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">iOS \u2014 Apple APNs with PushKit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On iOS, Siperb uses Apple&#8217;s <strong>PushKit<\/strong> framework rather than standard notification push. PushKit is Apple&#8217;s dedicated VoIP push channel and is treated with significantly higher priority than standard notifications:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The app is woken immediately &#8212; the OS does not batch or delay VoIP push events<\/li>\n\n\n\n<li>The wake-up happens even in low-power mode and through Do Not Disturb (subject to user-configured DND exceptions)<\/li>\n\n\n\n<li>The notification is handled silently by the app, which then surfaces a native CallKit call interface &#8212; indistinguishable from a regular phone call<\/li>\n\n\n\n<li>Validated against the device token stored at registration time &#8212; spoofing a VoIP push event is not possible<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Android \u2014 Firebase Cloud Messaging (FCM)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On Android, Siperb uses <strong>Firebase Cloud Messaging (FCM)<\/strong> with a high-priority message flag. High-priority FCM messages are exempt from Doze mode restrictions and are delivered immediately regardless of battery optimisation settings:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Delivered with <code>priority: high<\/code> &#8212; FCM wakes the device immediately<\/li>\n\n\n\n<li>Consistent behaviour across Android manufacturers, including those with aggressive battery management (Huawei, Samsung, Xiaomi)<\/li>\n\n\n\n<li>The app processes the incoming call payload and presents a full-screen incoming call notification<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Push tokens and device registration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When you first sign into the Siperb app on a device, the app requests a push token from the platform (APNs or FCM) and registers it with Siperb&#8217;s infrastructure alongside your SIP credentials. This token uniquely identifies the device and its platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Siperb stores the token against your account. When a call arrives and the device needs to be woken, the proxy looks up the current token for your extension and dispatches the push event. Tokens are refreshed automatically by the platform and updated in Siperb whenever the app reconnects.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements and compatibility<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Any SIP PBX<\/strong> &#8212; Asterisk, FreePBX, FreeSWITCH, 3CX, or any system that can register a SIP extension. No PBX-side configuration required beyond allowing external registration.<\/li>\n\n\n\n<li><strong>Proxy registration mode<\/strong> &#8212; push notifications require the connection to be in Proxy mode (not Direct\/WebSocket). See <a href=\"\/kb\/registration-modes\/\">Registration Modes &#8594;<\/a><\/li>\n\n\n\n<li><strong>Free on all plans<\/strong> &#8212; push notification delivery is included on the free Personal plan. No paid subscription is required.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"\/kb\/wp-content\/uploads\/2026\/01\/IMG_3863.png\" alt=\"Siperb incoming call push notification on iOS lock screen\" class=\"wp-image-613\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"\/kb\/wp-content\/uploads\/2026\/01\/IMG_3865.png\" alt=\"Siperb incoming call screen on iOS after push notification wake-up\" class=\"wp-image-614\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Further reading<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"\/kb\/mobile-push-notifications\/\">Siperb Mobile &#8212; Push Notifications for Any PBX &#8594;<\/a> &#8212; practical setup guide<\/li>\n\n\n\n<li><a href=\"\/kb\/mobile\/\">Siperb Mobile Softphone &#8594;<\/a> &#8212; iOS and Android overview<\/li>\n\n\n\n<li><a href=\"\/kb\/registration-modes\/\">Registration Modes &#8594;<\/a> &#8212; Proxy vs Direct vs WebSocket<\/li>\n\n\n\n<li><a href=\"\/kb\/asterisk-softphone\/\">Asterisk Softphone &#8594;<\/a> &#8212; connecting Asterisk to Siperb<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Push notifications play a critical role in how Siperb delivers reliable, real-time communication across mobile and web platforms. Modern operating systems are designed to aggressively limit background activity in order to preserve battery life and system performance. As a result, applications cannot simply \u201cwait\u201d for incoming calls or messages in the background.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[5,11,14],"tags":[],"class_list":["post-23","post","type-post","status-publish","format-standard","hentry","category-onboarding","category-sip-over-webrtc","category-under-the-hood"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Push Notifications Work in Siperb<\/title>\n<meta name=\"description\" content=\"How Siperb delivers push notifications for incoming SIP calls on iOS and Android \u2014 APNs PushKit, FCM, proxy registration, and push token handling.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.siperb.com\/kb\/push-notifications\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Push Notifications Work in Siperb\" \/>\n<meta property=\"og:description\" content=\"How Siperb delivers push notifications for incoming SIP calls on iOS and Android \u2014 APNs PushKit, FCM, proxy registration, and push token handling.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.siperb.com\/kb\/push-notifications\/\" \/>\n<meta property=\"og:site_name\" content=\"Siperb\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-07T16:23:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-27T10:39:56+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/push-notifications\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/push-notifications\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/person\\\/0eea9348847ae5012963b92f7de86111\"},\"headline\":\"How Push Notifications Work in Siperb\",\"datePublished\":\"2026-04-07T16:23:07+00:00\",\"dateModified\":\"2026-05-27T10:39:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/push-notifications\\\/\"},\"wordCount\":739,\"publisher\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\"},\"articleSection\":[\"Onboarding\",\"SIP Over WebRTC\",\"Under the Hood\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/push-notifications\\\/\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/push-notifications\\\/\",\"name\":\"How Push Notifications Work in Siperb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#website\"},\"datePublished\":\"2026-04-07T16:23:07+00:00\",\"dateModified\":\"2026-05-27T10:39:56+00:00\",\"description\":\"How Siperb delivers push notifications for incoming SIP calls on iOS and Android \u2014 APNs PushKit, FCM, proxy registration, and push token handling.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/push-notifications\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.siperb.com\\\/kb\\\/push-notifications\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/push-notifications\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Push Notifications Work in Siperb\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#website\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\",\"name\":\"Siperb\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#organization\",\"name\":\"Siperb\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/SIPERB-Logo-ondark.webp\",\"contentUrl\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/SIPERB-Logo-ondark.webp\",\"width\":563,\"height\":138,\"caption\":\"Siperb\"},\"image\":{\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/#\\\/schema\\\/person\\\/0eea9348847ae5012963b92f7de86111\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\\\/\\\/localhost:8080\"],\"url\":\"https:\\\/\\\/www.siperb.com\\\/kb\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Push Notifications Work in Siperb","description":"How Siperb delivers push notifications for incoming SIP calls on iOS and Android \u2014 APNs PushKit, FCM, proxy registration, and push token handling.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.siperb.com\/kb\/push-notifications\/","og_locale":"en_US","og_type":"article","og_title":"How Push Notifications Work in Siperb","og_description":"How Siperb delivers push notifications for incoming SIP calls on iOS and Android \u2014 APNs PushKit, FCM, proxy registration, and push token handling.","og_url":"https:\/\/www.siperb.com\/kb\/push-notifications\/","og_site_name":"Siperb","article_published_time":"2026-04-07T16:23:07+00:00","article_modified_time":"2026-05-27T10:39:56+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.siperb.com\/kb\/push-notifications\/#article","isPartOf":{"@id":"https:\/\/www.siperb.com\/kb\/push-notifications\/"},"author":{"name":"admin","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/person\/0eea9348847ae5012963b92f7de86111"},"headline":"How Push Notifications Work in Siperb","datePublished":"2026-04-07T16:23:07+00:00","dateModified":"2026-05-27T10:39:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.siperb.com\/kb\/push-notifications\/"},"wordCount":739,"publisher":{"@id":"https:\/\/www.siperb.com\/kb\/#organization"},"articleSection":["Onboarding","SIP Over WebRTC","Under the Hood"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.siperb.com\/kb\/push-notifications\/","url":"https:\/\/www.siperb.com\/kb\/push-notifications\/","name":"How Push Notifications Work in Siperb","isPartOf":{"@id":"https:\/\/www.siperb.com\/kb\/#website"},"datePublished":"2026-04-07T16:23:07+00:00","dateModified":"2026-05-27T10:39:56+00:00","description":"How Siperb delivers push notifications for incoming SIP calls on iOS and Android \u2014 APNs PushKit, FCM, proxy registration, and push token handling.","breadcrumb":{"@id":"https:\/\/www.siperb.com\/kb\/push-notifications\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.siperb.com\/kb\/push-notifications\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.siperb.com\/kb\/push-notifications\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.siperb.com\/kb\/"},{"@type":"ListItem","position":2,"name":"How Push Notifications Work in Siperb"}]},{"@type":"WebSite","@id":"https:\/\/www.siperb.com\/kb\/#website","url":"https:\/\/www.siperb.com\/kb\/","name":"Siperb","description":"","publisher":{"@id":"https:\/\/www.siperb.com\/kb\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.siperb.com\/kb\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.siperb.com\/kb\/#organization","name":"Siperb","url":"https:\/\/www.siperb.com\/kb\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/logo\/image\/","url":"https:\/\/www.siperb.com\/kb\/wp-content\/uploads\/2024\/08\/SIPERB-Logo-ondark.webp","contentUrl":"https:\/\/www.siperb.com\/kb\/wp-content\/uploads\/2024\/08\/SIPERB-Logo-ondark.webp","width":563,"height":138,"caption":"Siperb"},"image":{"@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.siperb.com\/kb\/#\/schema\/person\/0eea9348847ae5012963b92f7de86111","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d05be207a83da788dfe01ab5d326164757a5a0d58ab399171c1a0506bda54e1?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/localhost:8080"],"url":"https:\/\/www.siperb.com\/kb\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":4,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/23\/revisions"}],"predecessor-version":[{"id":14027,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/posts\/23\/revisions\/14027"}],"wp:attachment":[{"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/categories?post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siperb.com\/kb\/wp-json\/wp\/v2\/tags?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}