Hello,
For my application, I need to set the expiration value in my PUBLISH request to 4294967295. This is allowable per RFC 3261, sec 20.19:
"The value of this field is an integral number of seconds (in decimal) between 0 and (2**32)-1, measured from the receipt of the request."
But, there are two problems with this:
PJSIP uses 4294967295 (0xffffffff) to indicate an expiration value is not specified. Fair enough -- I changed PJSIP_PUBC_EXPIRATION_NOT_SPECIFIED to the less likely to be used 4294967294 (0xfffffffe).
However, the call chain that eventually prints the header into the message converts the pj_uint32_t into an int, then into a pj_int32_t (hdr->ivalue) and then into an unsigned long (pj_utoa). On a 64-bit machine, that last conversion will print:
"Expires: 18446744073709551615"
instead of the desired:
"Expires: 4294967295"
Can you please add a ticket for this?
Thanks,
Jeff