# 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 typesdpContent 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