VoIP SIP Registration via Proxy Mediator and Push Wake
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Mobile operating systems, such as iOS, suspend or terminate background applications to conserve battery, causing issues like SIP registration timeouts and loss of network updates for VoIP applications, which can lead to failed calls and network disconnects.
Innovation Solution
The system sends specific SIP messages, such as SIP NOTIFY, SIP 302 MOVED TEMPORARILY, or HTTP POST messages to reactivate suspended VoIP applications, ensuring continuous SIP registration and network updates by using push notification services to maintain communication sessions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If mobile operating systems suspend or terminate background applications to conserve battery, then energy consumption is reduced, but SIP registration and network connectivity are lost
Solution Approach 1:
The system performs preliminary actions by sending SIP REGISTER messages and maintaining subscriptions before the application is fully suspended. The proxy server stores registration information and subscription state, so when the application wakes up, it can quickly restore connectivity without full re-registration, resolving the contradiction between battery saving and registration stability.
Solution Approach 2:
The proxy server acts as an intermediary between the suspended VoIP application and the network. It maintains the SIP registration and subscription state on behalf of the application, allowing the application to remain suspended while connectivity is preserved. This mediator resolves the conflict by decoupling the application's power state from its network presence.
2Duration of action of moving object
If background applications are suspended, then battery life is extended, but incoming call notifications and network updates are lost
Solution Approach 1:
The proxy server serves as an intermediary that receives and stores network updates, SIP notifications, and call information while the application is suspended. When the application wakes up, it retrieves this information and processes it, preventing information loss while allowing extended suspension for battery conservation.
Solution Approach 2:
The system performs preliminary actions by establishing SIP subscriptions and registering with the proxy server before suspension. The proxy server proactively stores incoming notifications and network updates, so when the application resumes, all information is already available, eliminating the need for continuous background operation.
3Stability of the object's composition
If TCP keep-alives are enabled at the TCP/IP stack level, then connection stability is improved, but application-level triggers are not generated in iOS
Solution Approach 1:
The proxy server acts as an intermediary that translates TCP keep-alive activities into application-level SIP events. When TCP keep-alive packets are exchanged, the proxy server generates corresponding SIP NOTIFY messages or other application-level triggers that iOS can process, bridging the gap between network-layer stability mechanisms and application-layer event detection.
4Reliability
If push notification services are used to wake up suspended applications, then incoming call delivery is improved, but SIP registration may time out without application knowledge
Solution Approach 1:
The system performs preliminary SIP registration and subscription establishment before the application is suspended. The proxy server stores this registration information and maintains it active, so when push notifications wake the application, registration is still valid and immediately functional, preventing timeouts and ensuring immediate call capability.
Data Source
AI summary
A first Session Initiation Protocol (SIP) INVITE message is received to establish a communication session where a communication application, in a first communication endpoint that is used to establish the communication session has been suspended or is not running. A first message is sent that causes the communication application to become active. A second message is received from that indicates that the communication application is active. Various processes are then used to establish the communication session with the previously suspended or not running communication application.


