Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Noprint
Panel
borderColorgreen
bgColortransparent
borderWidth2

Back to Table of Contents

Back to SIP Services

Back to SIP Message Manipulation

Back to SMM Examples

Back to SDP Manipulation

Code Block
languagenone
# Sample SMM Rules to manipulate SDP content using the DELETE operation
#
# Rule 1 Action 1: delete line "i=i-line" to session block
# Rule 1 Action 2: delete line "i=i-line" to first instance of audio stream
# Rule 1 Action 3: delete line "a=rtpmap:8 PCMA/8000 " to first instance of audio stream
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 criterion 3 type sdpContent sdpContent codecNames PCMA/8000
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 criterion 3 type sdpContent sdpContent streamType audio streamInstanceId 1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 criterion 3 type sdpContent sdpContent condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 1 operation delete type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 1 from type value value i=i-line
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 1 to type sdpContent sdpContent streamType session streamInstanceId 1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 2 operation delete type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 2 from type value value i=i-line
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 2 to type sdpContent sdpContent streamType audio streamInstanceId 1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 3 operation delete type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 3 from type value value "a=rtpmap:8 PCMA/8000"
set profiles signaling sipAdaptorProfile sdpDltProfile rule 1 action 3 to type sdpContent sdpContent streamType audio streamInstanceId 1

# Rule 2 action 1: Delete a audio stream by specifying sdpContentSubType as stream
# Rule 2 action 2: Delete a video stream by specifying sdpContentSubType as line with from value "m=video 9999"
# Rule 2 action 3, 4: Delete "a=rtpmap:" attribute line for newly delete video stream
set profiles signaling sipAdaptorProfile sdpDltProfile rule 2 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile sdpDltProfile rule 2 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 2 criterion 2 
type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 2 action 1 operation delete type sdpContent sdpContentSubType stream
set profiles signaling sipAdaptorProfile sdpDltProfile rule 2 action 1 to type sdpContent sdpContent streamType audio streamInstanceId 1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 2 action 2 operation delete type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile sdpDltProfile rule 2 action 2 from type value value "m=video 9999"
set profiles signaling sipAdaptorProfile sdpDltProfile rule 2 action 2 to type sdpContent sdpContent streamType video streamInstanceId last

# Rule 3: delete a codec by name from video stream
set profiles signaling sipAdaptorProfile sdpDltProfile rule 3 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile sdpDltProfile rule 3 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 3 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 3 criterion 3 type sdpContent sdpContent codecNames H261/90000 condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 3 criterion 3 type sdpContent sdpContent streamType video streamInstanceId 1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 3 action 1 operation delete type sdpContent sdpContentSubType codecByName
set profiles signaling sipAdaptorProfile sdpDltProfile rule 3 action 1 from type value value "H261/90000"
set profiles signaling sipAdaptorProfile sdpDltProfile rule 3 action 1 to type sdpContent sdpContent streamType video streamInstanceId 1

# Rule 4: delete a codec by position from video stream
set profiles signaling sipAdaptorProfile sdpDltProfile rule 4 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile sdpDltProfile rule 4 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 4 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 4 action 1 operation delete type sdpContent sdpContentSubType codecByPosition
set profiles signaling sipAdaptorProfile sdpDltProfile rule 4 action 1 from type value value "2"
set profiles signaling sipAdaptorProfile sdpDltProfile rule 4 action 1 to type sdpContent sdpContent streamType video streamInstanceId 1

# Rule 5: Delete parameter from a sdp line specified by a variable
# Rule 5 Action 1: store "a=rtpmap:" to variable var1
# Rule 5 Action 2: store payloadtype for codec "iLBC/8000" to var2
# Rule 5 Action 3: append var2 to var1, so that var1 will have "a=rtpmap:xx", xx is the payload type of codec iLBC/8000
# Rule 5 Action 4: delete parameter to a line identified by var1 
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 criterion 3 type sdpContent sdpContent codecNames iLBC/8000 condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 criterion 3 type sdpContent sdpContent streamType audio streamInstanceId 1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 1 type variable operation store
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 1 from type value value "a=rtpmap:"
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 1 to type variable variableValue var1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 2 type sdpContent operation getPayloadType sdpContentSubType codecByName
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 2 from type sdpContent sdpContent streamType audio streamInstanceId 1 codecNames "iLBC/8000"
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 2 to type variable variableValue var2
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 3 type variable operation append
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 3 from type variable variableValue var2
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 3 to type variable variableValue var1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 4 operation delete type sdpContent sdpContentSubType parameter
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 4 from type value value ABCDEF=
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 4 to type sdpContent sdpContent sdpLine type variable variableValue var1
set profiles signaling sipAdaptorProfile sdpDltProfile rule 5 action 4 to sdpContent paramDelimiter ";" streamType audio streamInstanceId 1

# Rule 6: delete a codec by name (the only codec) from the last video stream
# Note: If the codec being deleted is the only codec, the whole media block are purged 
set profiles signaling sipAdaptorProfile sdpDltProfile rule 6 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile sdpDltProfile rule 6 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 6 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 6 criterion 3 type sdpContent sdpContent codecNames H261/90000 condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 6 criterion 3 type sdpContent sdpContent streamType video streamInstanceId last
set profiles signaling sipAdaptorProfile sdpDltProfile rule 6 action 1 operation delete type sdpContent sdpContentSubType codecByName
set profiles signaling sipAdaptorProfile sdpDltProfile rule 6 action 1 from type value value "H261/90000"
set profiles signaling sipAdaptorProfile sdpDltProfile rule 6 action 1 to type sdpContent sdpContent streamType video streamInstanceId last

# Rule 7: delete a codec by position (the only codec) from the last audio stream
# Note: If the codec being deleted is the only codec, the whole media block are purged 
set profiles signaling sipAdaptorProfile sdpDltProfile rule 7 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile sdpDltProfile rule 7 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 7 criterion 2 
type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 7 criterion 3 type sdpContent sdpContent codecNames PCMA/8000 condition exist
set profiles signaling sipAdaptorProfile sdpDltProfile rule 7 criterion 3 type sdpContent sdpContent streamType audio streamInstanceId last
set profiles signaling sipAdaptorProfile sdpDltProfile rule 7 action 1 operation delete type sdpContent sdpContentSubType codecByName
set profiles signaling sipAdaptorProfile sdpDltProfile rule 7 action 1 from type value value "PCMA/8000"
set profiles signaling sipAdaptorProfile sdpDltProfile rule 7 action 1 to type sdpContent sdpContent streamType audio streamInstanceId last