Make sure a 'Variable Fixed' parameter is not re-encoded as Option again
diff --git a/src/isup_codec.erl b/src/isup_codec.erl
index c3f5974..dbb68ed 100644
--- a/src/isup_codec.erl
+++ b/src/isup_codec.erl
@@ -353,7 +353,8 @@
proplists:get_value(?ISUP_PAR_CALLED_P_NUM, Params)),
CalledPartyLen = byte_size(CalledParty),
% Optional part
- OptBin = encode_isup_opts(Params),
+ Params2 = proplists:delete(?ISUP_PAR_CALLED_P_NUM, Params),
+ OptBin = encode_isup_opts(Params2),
case OptBin of
<<>> -> PtrOpt = 0;
_ -> PtrOpt = CalledPartyLen + 1 + 1 % 1 byte length, 1 byte start offset
@@ -367,7 +368,8 @@
proplists:get_value(?ISUP_PAR_CAUSE_IND, Params)),
CauseIndLen = byte_size(CauseInd),
% Optional Part
- OptBin = encode_isup_opts(Params),
+ Params2 = proplists:delete(?ISUP_PAR_CAUSE_IND, Params),
+ OptBin = encode_isup_opts(Params2),
case OptBin of
<<>> -> PtrOpt = 0;
_ -> PtrOpt = CauseIndLen + 1 + 1 % 1 byte length, 1 byte start offset
@@ -381,7 +383,8 @@
proplists:get_value(?ISUP_PAR_SUBSEQ_NUM, Params)),
SubseqNumLen = byte_size(SubseqNum),
% Optional Part
- OptBin = encode_isup_opts(Params),
+ Params2 = proplists:delete(?ISUP_PAR_SUBSEQ_NUM, Params),
+ OptBin = encode_isup_opts(Params2),
case OptBin of
<<>> -> PtrOpt = 0;
_ -> PtrOpt = SubseqNumLen + 1 + 1 % 1 byte length, 1 byte start offset