Previously, all Out-Of-Dialog (OOD) Subscribe messages were consumed by the SBC, and all In-Dialog Subscribe messages are relayed by the SBC. The SBC Core is enhanced to control how the SBC manages Key Press Markup Language (KPML) events by the addition of a SIP Trunk Group configurable flag 'KPML Subscribe Mode.'

KPML Subscribe Mode options:

  • Consume – (Default) If chosen, the SBC consumes Subscribe messages and triggers KPML events for In-Dialog and OOD Subscribe messages.
  • Relay – If chosen, the SBC relays KPML Subscribe messages for In-Dialog and OOD Subscribe messages.

If the Event header of an In-Dialog Subscribe message is missing parameters (e.g., remote-tag, local-tag, call-id), the SBC triggers a KPML event in its own dialog.

This feature only works in GW-GW scenarios when Kpml Subscribe Mode is set to "Consume".


Command Syntax


% set addressContext <address context name> zone <zone name> sipTrunkGroup <SIP TG name> signaling kpmlSubscribeMode <consume | relay>

Command Parameters

ParameterDescriptionM/O
kpmlSubscribeMode

Use this flag to control how the SBC handles KPML events for In-Dialog and Out-Of-Dialog (OOD) Subscribe messages for the specified ingress/egress trunk group.

  • consume (default) Use this option to consume a Subscribe message and trigger the KPML event for both In-Dialog and OOD Subscribe messages.
  • relay – Use this option to relay the KPML Subscribe message for both In-Dialog and OOD Subscribe messages.
O


The Cisco Unified Communication Manager (CUCM) only supports KPML service for calls if it receives an Allow-Events header with the value 'kpml'. 

Use the SMM below to add the header, when required.

set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 1 type message
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 1 message methodTypes [ invite ]
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 2 type header
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 2 header
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 2 header name Allow-Events
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 2 header condition absent
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 criterion 2 header hdrRange undefined
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 type header
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 operation add
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 headerPosition last
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 from
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 from type value
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 from value presence,kpml
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 to
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 to type header
set profiles signaling sipAdaptorProfile add_Allow-Events rule 1 action 1 to value Allow-Events

Configuration Example

set addressContext default zone ZONE1 sipTrunkGroup INGRESS_TG signaling kpmlSubscribeMode consume
commit