What does PUBLISH do in IMS?
It updates event state at the server side so subscribers can later receive the new state through NOTIFY.
| Protocol | ims | Network | 5G and LTE |
|---|---|---|---|
| Spec | RFC 3903 / 3GPP TS 24.229 | Spec Section | SIP PUBLISH method and event-state publication |
| Direction | UE <-> IMS network | Message Type | SIP request method |
| Full message name | IMS SIP PUBLISH |
|---|---|
| Protocol | IMS |
| Technology | 5G and LTE |
| Common deployment | VoNR and VoLTE |
| Direction | UE <-> IMS network |
| Interface | Gm (UE <-> P-CSCF) with onward IMS routing |
| Signaling bearer / channel | IMS SIP signaling / Event-state publication transaction |
| Typical trigger | The UE or service needs to update published state associated with an IMS event package. |
| Main purpose | Lets one side update its published event state so subscribers can later receive it through NOTIFY. |
| Main specification | RFC 3903 / 3GPP TS 24.229, SIP PUBLISH method and event-state publication |
| Release added | See specification history |
| Procedures where used | IMS Event Publication |
PUBLISH is the SIP request used to publish event state toward a server that manages subscriptions.
Lets one side update its published event state so subscribers can later receive it through NOTIFY.
PUBLISH updates event state so subscribers can later receive it through NOTIFY.
Call flow position: State-publication step that feeds later subscription updates.
Typical state: The sender is updating the authoritative event state.
Preconditions:
Next likely message: 200 OK
Previous message(s): IMS registration is active
Next message(s): 200 OK
Security context: Usually sent when registration is already active and publication policy allows the event package.
PUBLISH sip:user@example.net SIP/2.0
Via:
From:
To:
Call-ID:
CSeq:
Event:
SIP-If-Match: OPTIONAL
Content-Type: OPTIONAL
Content-Length:
Published body OPTIONAL
PUBLISH is SIP publication syntax. The main question is what event state is being updated and whether it matches an earlier publication.
PUBLISH sip:presence@example.net SIP/2.0
Via: SIP/2.0/UDP ue.example.net;branch=z9hG4bK-pub1
From: <sip:alice@example.net>;tag=pub1
To: <sip:alice@example.net>
Call-ID: pub-001@example.net
CSeq: 1 PUBLISH
Event: presence
Content-Type: application/pidf+xml
Content-Length: 0
| IE | Required | Description |
|---|---|---|
Event | Yes | Identifies the published event package. |
SIP-If-Match | Optional | Correlates publication refresh or replacement against prior published state. |
Content-Type | Optional | Identifies the published body format. |
Published body | Optional | Carries the event-state content being published. |
EventIdentifies the published event package.
Presence: Required
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
SIP-If-MatchCorrelates publication refresh or replacement against prior published state.
Presence: Optional
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
Content-TypeIdentifies the published body format.
Presence: Optional
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
Published bodyCarries the event-state content being published.
Presence: Optional
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
Likely cause: The publication may be missing, mismatched, or not replacing the earlier state correctly.
What to inspect: Check Event, SIP-If-Match, and the publication body.
Next step: Compare the publication transaction with the downstream NOTIFY behavior.
It updates event state at the server side so subscribers can later receive the new state through NOTIFY.
Decode this message with the 3GPP Decoder, inspect the related message database, or open the matching call flow to see where this signaling step fits in the full procedure.