64 bit origin id at pjmedia_sdp_session

IS
Ivan Shmakov
Fri, Mar 22, 2019 6:15 AM

Hello

The struct pjmedia_sdp_session contain origin struct that has 32 bit
unsigned integer field (pj_uint32_t) named id, but RFC 4566
https://tools.ietf.org/html/rfc4566 (
https://tools.ietf.org/html/rfc4566#page-11) 5.2. said:

<sess-id> is a numeric string such that the tuple of <username>,
<sess-id>, <nettype>, <addrtype>, and <unicast-address> forms a
globally unique identifier for the session.  The method of
<sess-id> allocation is up to the creating tool, but it has been
suggested that a Network Time Protocol (NTP) format timestamp be
used to ensure uniqueness [13
https://tools.ietf.org/html/rfc4566#ref-13].

RFC 1305 (https://tools.ietf.org/html/rfc1305) say:

NTP timestamps are represented as a 64-bit unsigned fixed-
point number, in seconds relative to 0h on 1 January 1900.

It's requied change type of origin to 64 bit as Google Chorme do it at 70th
versions. It's require change origin id to pj_uint64_t unsigned long long
type (instead unsigned long). It's require for x86 bit build of pjsip

and change pj_strtoul to pj_strtoull (that require to be implimented)
in parsing and fix composing.

With best reards,
Ivan A. Shmakov

Hello The struct pjmedia_sdp_session contain origin struct that has 32 bit unsigned integer field (pj_uint32_t) named id, but RFC 4566 <https://tools.ietf.org/html/rfc4566> ( https://tools.ietf.org/html/rfc4566#page-11) 5.2. said: <sess-id> is a numeric string such that the tuple of <username>, <sess-id>, <nettype>, <addrtype>, and <unicast-address> forms a globally unique identifier for the session. The method of <sess-id> allocation is up to the creating tool, but it has been suggested that a Network Time Protocol (NTP) format timestamp be used to ensure uniqueness [13 <https://tools.ietf.org/html/rfc4566#ref-13>]. RFC 1305 (https://tools.ietf.org/html/rfc1305) say: NTP timestamps are represented as a 64-bit unsigned fixed- point number, in seconds relative to 0h on 1 January 1900. It's requied change type of origin to 64 bit as Google Chorme do it at 70th versions. It's require change origin id to pj_uint64_t unsigned long long type (instead unsigned long). It's require for x86 bit build of pjsip and change pj_strtoul to pj_strtoull (that require to be implimented) in parsing and fix composing. With best reards, Ivan A. Shmakov