NAPTR and TXT Record Creation and Association

When a user initially registers to the Oracle Communications Unified Session Manager, the DDNS update sent to the user database will include a NAPTR record and a TXT record. The NAPTR record contains the Contact: header’s SIP URI as a regexp replacement. All URI and header parameters from the Contact: header are excluded from the NAPTR record and are inserted into the accompanying TXT record.

The NAPTR record and the TXT record both contain a Oracle Communications Unified Session Manager-generated key that binds the Contact metadata and the Contact URI sent in the separate records. This common key indicates the data in the NAPTR and TXT record belong to the same registering contact, and is used to recreate the Contact: header for later use. The format of the common key is:

p-acme-ckey=<SD-Core-IP>:<integer id>

The <SD-Core-IP> is the IP address from which the Oracle Communications Unified Session Manager communicates with the DNS server. The <integer id> enumerates each contact. Contacts are enumerated in the integer-id element because they can be non-unique when a user behind a NAT registers more than one contact from behind the NAT. For example:

	TXT "p-acme-ckey=172.16.101.61:1" "$key=value" "^key=value"
NAPTR 1 1 "u" “E2U+sip""!^.*$!sip:642-10u72@172.16.101.61:5060\;p-acme-key=172.16.101.61:1!"

In the previous example, the key=value pair represent parameters in the Contact header and Contact SIP URI. A $key= indicates the parameter existed in the Contact: SIP URI. A ^key= indicates the parameter existed in a Contact: header parameter. The Oracle Communications Unified Session Manager uses this convention to reconstruct the parameters’ placement in the original Contact: header.