To be able to use this feature from controlling agents which don't
directly support the new dictionary keys, add an alternative syntax via
the `flags` list. This is in line with all other similar dictionary keys
(e.g. `codec-` etc)
Change-Id: I7210c74c9cd3b31338052efa1c3504fe775c1c46
* As an alternative syntax these can be listed in the `flags` list, using a syntax of e.g. `sdp-attr-remove-audio-ssrc:` or `sdp-attr-substitude-none-sendrecv>sendonly`. Equals signs (`=`) can be escaped as double dashes (`--`) and spaces can be escaped as double periods (`..`).
An example of a complete `offer` request dictionary could be (SDP body abbreviated):
offer('SDP attr manipulations - remove a= line on media audio',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-remove-audio-test']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
a=test
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
answer('SDP attr manipulations - remove a= line on media audio',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - remove a= line on global session',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-remove-none-test']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
a=test
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
answer('SDP attr manipulations - remove a= line on global session',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - remove a= line on global session and media audio',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-remove-audio-test2','sdp-attr-remove-none-test1']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
a=test1
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
a=test2
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
answer('SDP attr manipulations - remove a= line on global session and media audio',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - add a= line on global session and media audio',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-add-audio-test1','sdp-attr-add-none-test2'],},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
a=test2
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
a=test1
SDP
answer('SDP attr manipulations - add a= line on global session and media audio',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - add a= line for media audio, two times',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-add-audio-test1','sdp-attr-add-audio-test2']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
a=test1
a=test2
SDP
answer('SDP attr manipulations - add a= line for media audio, two times',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - add a= line for media audio and remove one',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-add-audio-test1','sdp-attr-remove-audio-test2']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
a=test2
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
a=test1
SDP
answer('SDP attr manipulations - add a= line for media audio and remove one',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - remove two a= lines from global session level',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-remove-none-test1','sdp-attr-remove-none-test2']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
a=test1
a=test2
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
answer('SDP attr manipulations - remove two a= lines from global session level',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - substitute a= line for media audio',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-substitute-audio-test1>test2']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
a=test1
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=test2
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
answer('SDP attr manipulations - substitute a= line for media audio',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - substitute a= line for a session level',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-substitute-none-test1>test2']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
a=test1
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
a=test2
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
answer('SDP attr manipulations - substitute a= line for a session level',{ICE=>'remove'},<<SDP);
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audio2002RTP/SAVP0
c=INIP4198.51.100.3
a=sendrecv
--------------------------------------
v=0
o=-15459970271INIP4198.51.100.3
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
new_call;
offer('SDP attr manipulations - substitute two a= lines for media audio',{ICE=>'remove',DTLS=>'off',SDES=>['nonew'],flags=>['sdp-attr-substitute-audio-test1>test2','sdp-attr-substitute-audio-test5>test6']},<<SDP);
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audio2000RTP/SAVP0
c=INIP4198.51.100.1
a=sendrecv
a=test1
a=test5
----------------------------------
v=0
o=-15459970271INIP4198.51.100.1
s=tester
t=00
m=audioPORTRTP/SAVP0
c=INIP4203.0.113.1
a=test2
a=test6
a=rtpmap:0PCMU/8000
a=sendrecv
a=rtcp:PORT
SDP
answer('SDP attr manipulations - substitute two a= lines for media audio',{ICE=>'remove'},<<SDP);