Module uac use some kind of Base64 for SipUri saving in Record-Route header parameter "rr_from_store_param"
Base64 is case sensitive, but according to rfc3261:

   When comparing header fields, field names are always case-
   insensitive  Unless otherwise stated in the definition of a
   particular header field, field values, parameter names, and parameter
   values are case-insensitive  Tokens are always case-insensitive
   Unless specified otherwise, values expressed as quoted strings are
   case-sensitive For example,

      Contact: <sip:alice@atlantacom>;expires=3600

   is equivalent to

      CONTACT: <sip:alice@atlantacom>;ExPiReS=3600

   and

      Content-Disposition: session;handling=optional

   is equivalent to

      content-disposition: Session;HANDLING=OPTIONAL

   The following two header fields are not equivalent:

      Warning: 370 devnull "Choose a bigger pipe"
      Warning: 370 devnull "CHOOSE A BIGGER PIPE"

Ok " values expressed as quoted strings are case-sensitive", so I thought to make a quoted string like

Record-Route: <sip:xxxxxxxxxxxx:5071;lr;ftag=SDj3nsa01-78422015;vsf="baSE64strinG";nat=yes>

but according to rfc3261 DQUATE is not possible here:

other-param       =  pname [ "=" pvalue ]
pname             =  1*paramchar
pvalue            =  1*paramchar
paramchar         =  param-unreserved / unreserved / escaped
param-unreserved  =  "[" / "]" / "/" / ":" / "&" / "+" / "$"

Some devices in my network convert "rr_from_store_param" to lower-case letters, so there is trash in To/From headers after restore, It is not wise behaviour, but is rfc compliant

So any idea for using Base32 instead of Base64?


Reply to this email directly or view it on GitHub.