# Sample SMM Rules to manipulate SDP content using the GET operations # 1) getPayloadType # 2) getCodecPosition # # Rule 1 Action 1: store "a=rtpmap:" to variable var1 # Rule 1 Action 2: store payloadtype for codec "PCMA/8000" to var2 # Rule 1 Action 3: append var2 to var1, so that var1 will have "a=rtpmap:xx", xx is the payload type of codec PCMA/8000 # Rule 1 Action 4: add parameter to a line identified by var1 set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 criterion 1 type message message messageTypes request methodTypes invite set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 criterion 1 type message message condition exist set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 criterion 2 type messageBody messageBody messageBodyType sdp condition exist set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 criterion 3 type sdpContent sdpContent codecNames PCMA/8000 condition exist set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 criterion 3 type sdpContent sdpContent streamType audio streamInstanceId last set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 1 type variable operation store set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 1 from type value value "a=rtpmap:" set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 1 to type variable variableValue var1 set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 2 type sdpContent operation getPayloadType sdpContentSubType codecByName set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 2 from type sdpContent sdpContent streamType audio streamInstanceId 1 codecNames "PCMA/8000" set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 2 to type variable variableValue var2 set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 3 type variable operation append set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 3 from type variable variableValue var2 set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 3 to type variable variableValue var1 set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 4 operation add type sdpContent sdpContentSubType parameter set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 4 from type value value ABCDEF=abcdef set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 4 to type sdpContent sdpContent sdpLine type variable variableValue var1 set profiles signaling sipAdaptorProfile sdpGetProfile rule 1 action 4 to sdpContent paramDelimiter ";" streamType audio streamInstanceId 1 # Rule 2 Action 1: store codec position for codec "PCMA/8000" to var3 # Rule 2 Action 2: add new header Codec-PCMA-Pos with value from var3 set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 criterion 1 type message message messageTypes request methodTypes invite set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 criterion 1 type message message condition exist set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 criterion 2 type messageBody messageBody messageBodyType sdp condition exist set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 criterion 3 type sdpContent sdpContent codecNames PCMA/8000 condition exist set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 criterion 3 type sdpContent sdpContent streamType audio streamInstanceId 1 set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 action 1 type sdpContent operation getCodecPosition sdpContentSubType codecByName set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 action 1 from type sdpContent sdpContent streamType audio streamInstanceId 1 codecNames "PCMA/8000" set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 action 1 to type variable variableValue var3 set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 action 2 type header operation add headerPosition last set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 action 2 from type variable variableValue var3 set profiles signaling sipAdaptorProfile sdpGetProfile rule 2 action 2 to type header value Codec-PCMA-Pos