Expand description
Being reachable through a push notification (RFC 8599), from the user agent’s side.
The client this is for holds no connection at all: no socket, no keep-alive, and quite possibly not running. Every other mechanism in this crate assumes there is something the registrar can route down — Outbound keeps a flow open, GRUU names the instance at the end of one. RFC 8599 is what is left when there is nothing: the proxy leaves SIP for one hop, asks the client’s push notification service to wake it, and the client goes and gets a flow.
Three things are worth knowing before reading on.
- The push is not the call. §4.1.3: “When a UA receives a push notification, the UA MUST
send a binding-refresh REGISTER request.” The notification is permission to go and get a
flow; the request it was sent for arrives down that flow afterwards. A client that waits for
the INVITE instead of refreshing is waiting on a path that does not exist yet — which is why
the ordering is a type here (
Pending) rather than a comment. - sipx ships no push service.
PushServiceis a trait and this repository implements it nowhere. sipx is a stack, not a client of anybody’s push transport, and the non-goals indocs/vision.mdrule out the alternative. What sipx owes is the SIP half: the parameters, the option negotiation, 555, and the refresh ordering. - The proxy half is not here. §5.6 has a proxy hold the request in a bucket while the client wakes, and §4.2’s registrar behaviour mints the PURR. Both are roles sipx does not play, and neither shares anything with this but the wire format.
Structs§
- Pending
- Permission to expect the request a push notification was sent for (§4.1.3).
- Support
- What a registrar said about push, read from the
Feature-Capsof a REGISTER response (§8.2).
Constants§
- NOT_
SUPPORTED - 555 (Push Notification Service Not Supported), registered in §8.1.
- NOT_
SUPPORTED_ REASON - The reason phrase §8.1 registers alongside
NOT_SUPPORTED.
Traits§
- Push
Service - The push notification service a device can be woken through (§3).
Functions§
- in_
contact - Put the push parameters into a contact’s URI (§4.1.2).