# Sample SMM Rules to manipulate SDP content using the ADD operation
#
# Rule 1 Action 1: add line "i=i-line" to session block
# Rule 1 Action 2: add line "i=i-line" to first instance of audio stream
# Rule 1 Action 3: add line "a=rtpmap:8 PCMA/8000 " to first instance of audio stream
set profiles signaling sipAdaptorProfile smmProfile rule 1 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile smmProfile rule 1 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 1 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 1 criterion 3 type sdpContent sdpContent codecNames PCMA/8000
set profiles signaling sipAdaptorProfile smmProfile rule 1 criterion 3 type sdpContent sdpContent streamType audio streamInstanceId 1
set profiles signaling sipAdaptorProfile smmProfile rule 1 criterion 3 type sdpContent sdpContent condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 1 operation add type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 1 from type value value i=i-line
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 1 to type sdpContent sdpContent streamType session streamInstanceId 1
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 2 operation add type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 2 from type value value i=i-line
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 2 to type sdpContent sdpContent streamType audio streamInstanceId 1
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 3 operation add type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 3 from type value value "a=rtpmap:8 PCMA/8000"
set profiles signaling sipAdaptorProfile smmProfile rule 1 action 3 to type sdpContent sdpContent streamType audio streamInstanceId 1
# Rule 2 action 1: Add a audio stream by specifying sdpContentSubType as stream
# Rule 2 action 2: Add a audio stream by specifying sdpContentSubType as line with from value "m="
# Rule 2 action 3, 4: Add "a=rtpmap:" attribute line for newly added video stream
set profiles signaling sipAdaptorProfile smmProfile rule 2 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile smmProfile rule 2 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 2 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 1 operation add type sdpContent sdpContentSubType stream
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 1 from type value value "m=audio 8888 RTP/AVP 0 8"
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 1 to type sdpContent sdpContent streamType audio streamInstanceId last
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 2 operation add type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 2 from type value value "m=video 9999 RTP/AVP 31 32"
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 2 to type sdpContent sdpContent streamType video streamInstanceId last
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 3 operation add type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 3 from type value value "a=rtpmap:31 H261/90000"
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 3 to type sdpContent sdpContent streamType video streamInstanceId last
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 4 operation add type sdpContent sdpContentSubType line
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 4 from type value value "a=rtpmap:32 H262/90000"
set profiles signaling sipAdaptorProfile smmProfile rule 2 action 4 to type sdpContent sdpContent streamType video streamInstanceId last
# Rule 3: add a codec to video stream as the first codec without specifying payload type
set profiles signaling sipAdaptorProfile smmProfile rule 3 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile smmProfile rule 3 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 3 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 3 criterion 3 type 
sdpContent sdpContent codecNames H261/90000 condition absent
set profiles signaling sipAdaptorProfile smmProfile rule 3 criterion 3 type sdpContent sdpContent streamType video streamInstanceId 1
set profiles signaling sipAdaptorProfile smmProfile rule 3 action 1 operation add type sdpContent sdpContentSubType codecByName
set profiles signaling sipAdaptorProfile smmProfile rule 3 action 1 from type value value "H261/90000"
set profiles signaling sipAdaptorProfile smmProfile rule 3 action 1 to type sdpContent sdpContent streamType video streamInstanceId 1 payloadType 
next codecPosition 2
# Rule 4: add a codec to video stream as the last codec with specified payload type
# Important, it is up to the operator to ensure that specified payload type is an appropriate value
set profiles signaling sipAdaptorProfile smmProfile rule 4 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile smmProfile rule 4 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 4 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 4 criterion 3 type sdpContent sdpContent codecNames H263/90000 condition absent
set profiles signaling sipAdaptorProfile smmProfile rule 4 criterion 3 type sdpContent sdpContent streamType video streamInstanceId 1
set profiles signaling sipAdaptorProfile smmProfile rule 4 action 1 operation add type sdpContent sdpContentSubType codecByName
set profiles signaling sipAdaptorProfile smmProfile rule 4 action 1 from type value value "H263/90000"
set profiles signaling sipAdaptorProfile smmProfile rule 4 action 1 to type sdpContent sdpContent streamType video streamInstanceId 1 payloadType 34 codecPosition 2
# Rule 5: Add parameter to 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: add parameter to a line identified by var1 
set profiles signaling sipAdaptorProfile smmProfile rule 5 criterion 1 type message message messageTypes request methodTypes invite
set profiles signaling sipAdaptorProfile smmProfile rule 5 criterion 1 type message message condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 5 criterion 2 type messageBody messageBody messageBodyType sdp condition exist
set profiles signaling sipAdaptorProfile smmProfile rule 5 criterion 3 type sdpContent sdpContent codecNames iLBC/8000 condition absent
set profiles signaling sipAdaptorProfile smmProfile rule 5 criterion 3 type sdpContent sdpContent streamType audio streamInstanceId last
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 1 type variable operation store
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 1 from type value value "a=rtpmap:"
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 1 to type variable variableValue var1
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 2 type sdpContent operation getPayloadType sdpContentSubType codecByName
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 2 from type sdpContent sdpContent streamType audio streamInstanceId 1 
codecNames "iLBC/8000"
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 2 to type variable variableValue var2
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 3 type variable operation append
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 3 from type variable variableValue var2
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 3 to type variable variableValue var1
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 4 operation add type sdpContent sdpContentSubType parameter
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 4 from type value value ABCDEF=abcdef
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 4 to type sdpContent sdpContent sdpLine type variable variableValue var1
set profiles signaling sipAdaptorProfile smmProfile rule 5 action 4 to sdpContent paramDelimiter ";" streamType audio streamInstanceId 1
  • No labels