MT#56469 refactor ng-client flags options

Use a single list to track which flags are allowed and possible.

Change-Id: I51c50b118ae3100aa6083e1782b9aa53efd6f614
pull/1611/head
Richard Fuchs 2 years ago
parent 6b1e8711d1
commit 82d20b5aa2

@ -11,7 +11,46 @@ use NGCP::Rtpengine;
my %options = ('proxy-address' => 'localhost', 'proxy-port' => 2223);
GetOptions(
my @flags = qw(
trust-address
symmetric
asymmetric
unidirectional
force
strict-source
media-handover
sip-source-address
reset
port-latching
no-rtcp-attribute
full-rtcp-attribute
loop-protect
record-call
always-transcode
SIPREC
pad-crypto
generate-mid
fragment
original-sendrecv
symmetric-codecs
asymmetric-codecs
inject-DTMF
detect-DTMF
generate-RTCP
single-codec
no-codec-renegotiation
pierce-NAT
SIP-source-address
allow-transcoding
trickle-ICE
reject-ICE
egress
no-jitter-buffer
passthrough
no-passthrough
);
my %getopt = (
'json' => \$options{'json'},
'proxy-address=s' => \$options{'proxy-address'},
'proxy-port=s' => \$options{'proxy-port'},
@ -20,13 +59,6 @@ GetOptions(
'call-id=s' => \$options{'call-id'},
'via-branch=s' => \$options{'via-branch'},
'protocol=s' => \$options{'transport protocol'},
'trust-address' => \$options{'trust address'},
'sip-source-address' => \$options{'sip source address'},
'no-rtcp-attribute' => \$options{'no rtcp attribute'},
'full-rtcp-attribute' => \$options{'full rtcp attribute'},
'symmetric' => \$options{'symmetric'},
'asymmetric' => \$options{'asymmetric'},
'unidirectional' => \$options{'unidirectional'},
'replace-origin' => \$options{'replace-origin'},
'replace-session-connection' => \$options{'replace-session connection'},
'replace-sdp-version' => \$options{'replace-sdp version'},
@ -43,16 +75,9 @@ GetOptions(
'rtcp-mux=s@' => \$options{'rtcp-mux'},
'address-family=s' => \$options{'address family'},
'direction=s' => \$options{'direction'},
'force' => \$options{'force'},
'v|verbose' => \$options{'verbose'},
'strict-source' => \$options{'strict source'},
'media-handover' => \$options{'media handover'},
'TOS=i' => \$options{'TOS'},
'delete-delay=i' => \$options{'delete-delay'},
'reset' => \$options{'reset'},
'port-latching' => \$options{'port latching'},
'loop-protect' => \$options{'loop protect'},
'record-call' => \$options{'record call'},
'media-address=s' => \$options{'media address'},
'codec-strip=s@' => \$options{'codec-strip'},
'codec-offer=s@' => \$options{'codec-offer'},
@ -68,17 +93,9 @@ GetOptions(
'flags=s@' => \$options{'flags'},
'supports=s@' => \$options{'supports'},
'xmlrpc-callback=s' => \$options{'xmlrpc-callback'},
'always-transcode' => \$options{'always transcode'},
'metadata=s' => \$options{'metadata'},
'all=s' => \$options{'all'},
'siprec' => \$options{'SIPREC'},
'SIPREC' => \$options{'SIPREC'},
'egress' => \$options{'egress'},
'address=s' => \$options{'address'},
'pad-crypto' => \$options{'pad crypto'},
'generate-mid' => \$options{'generate mid'},
'fragment' => \$options{'fragment'},
'original-sendrecv' => \$options{'original sendrecv'},
'file=s' => \$options{'file'},
'blob=s' => \$options{'blob'},
'blob-file=s' => \$options{'blob-file'},
@ -87,22 +104,9 @@ GetOptions(
'code=s' => \$options{'code'},
'OSRTP=s@' => \$options{'OSRTP'},
'received-from=s@' => \$options{'received-from'},
'SIP-source-address' => \$options{'SIP-source-address'},
'symmetric-codecs' => \$options{'symmetric codecs'},
'asymmetric-codecs' => \$options{'asymmetric codecs'},
'inject-DTMF' => \$options{'inject DTMF'},
'detect-DTMF' => \$options{'detect DTMF'},
'DTLS-fingerprint=s' => \$options{'DTLS-fingerprint'},
'ICE-lite=s' => \$options{'ICE-lite'},
'no-jitter-buffer' => \$options{'no jitter buffer'},
'generate-RTCP' => \$options{'generate RTCP'},
'single-codec' => \$options{'single codec'},
'allow-transcoding' => \$options{'allow transcoding'},
'no-codec-renegotiation' => \$options{'no codec renegotiation'},
'media-echo=s' => \$options{'media echo'},
'pierce-NAT' => \$options{'pierce NAT'},
'trickle-ICE' => \$options{'trickle ICE'},
'reject-ICE' => \$options{'reject ICE'},
'label=s' => \$options{'label'},
'set-label=s' => \$options{'set-label'},
'from-label=s' => \$options{'from-label'},
@ -121,7 +125,13 @@ GetOptions(
'trigger-end-digits=i' => \$options{'trigger-end-digits'},
'trigger-end-time=i' => \$options{'trigger-end-time'},
'DTMF-delay=i' => \$options{'DTMF-delay'},
) or die;
);
for my $flag (@flags) {
$getopt{$flag} = \$options{$flag};
}
GetOptions(%getopt) or die;
my $cmd = shift(@ARGV) or die;
@ -140,7 +150,7 @@ for my $x (split(/,/, 'from-tag,to-tag,call-id,transport protocol,media address,
for my $x (split(/,/, 'TOS,delete-delay,delay-buffer,volume,trigger-end-time,trigger-end-digits,DTMF-delay,ptime,db-id')) {
defined($options{$x}) and $packet{$x} = $options{$x};
}
for my $x (split(/,/, 'trust address,symmetric,asymmetric,unidirectional,force,strict source,media handover,sip source address,reset,port latching,no rtcp attribute,full rtcp attribute,loop protect,record call,always transcode,SIPREC,pad crypto,generate mid,fragment,original sendrecv,symmetric codecs,asymmetric codecs,inject DTMF,detect DTMF,generate RTCP,single codec,no codec renegotiation,pierce NAT,SIP-source-address,allow transcoding,trickle ICE,reject ICE,egress')) {
for my $x (@flags) {
defined($options{$x}) and push(@{$packet{flags}}, $x);
}
for my $x (split(/,/, 'origin,session connection,sdp version,username,session-name,zero-address,force increment sdp version')) {

Loading…
Cancel
Save