Thanks for your answer. You are saying that "the client should not insert the header in the first place".
As far as I understand this is done in Suns reference implementation of SIP. In OperationSetBasicTelephonySipImpl, in the method sayCancel (ClientTransaction is part of the reference implementation):
Request cancel = clientTransaction.createCancel();
ClientTransaction cancelTransaction = callParticipant
So, do you think this bug should be addressed there (https://jain-sip.dev.java.net/)?