Recording metadata

The SIPREC INVITE body includes an RFC 7866 recording metadata XML document alongside the SDP offer.

Example metadata

<?xml version="1.0" encoding="UTF-8"?>
<recording xmlns="urn:ietf:params:xml:ns:recording:1"
           xmlns:msw="http://www.metaswitch.com/sbc/recording/V1.0">
  <datamode>complete</datamode>

  <session session_id="okpwkCOIEfGU8gBQVpIAMg==">
    <start-time>2026-03-19T11:41:57Z</start-time>
  </session>

  <participant participant_id="okpwGCOIEfGU8gBQVpIAMg==">
    <nameID aor="sip:3615550123@10.232.22.31"/>
  </participant>
  <participant participant_id="okpwVCOIEfGU8gBQVpIAMg==">
    <nameID aor="sip:3615550122@10.232.22.31"/>
  </participant>

  <stream stream_id="okpxWCOIEfGU8gBQVpIAMg=="
          session_id="okpwkCOIEfGU8gBQVpIAMg==">
    <label>1</label>
  </stream>
  <stream stream_id="okpxiiOIEfGU8gBQVpIAMg=="
          session_id="okpwkCOIEfGU8gBQVpIAMg==">
    <label>2</label>
  </stream>

  <participantsessionassoc participant_id="okpwGCOIEfGU8gBQVpIAMg=="
                           session_id="okpwkCOIEfGU8gBQVpIAMg==">
    <associate-time>2026-03-19T11:41:57Z</associate-time>
  </participantsessionassoc>
  <participantsessionassoc participant_id="okpwVCOIEfGU8gBQVpIAMg=="
                           session_id="okpwkCOIEfGU8gBQVpIAMg==">
    <associate-time>2026-03-19T11:41:57Z</associate-time>
  </participantsessionassoc>

  <participantstreamassoc participant_id="okpwGCOIEfGU8gBQVpIAMg==">
    <send>okpxWCOIEfGU8gBQVpIAMg==</send>
    <recv>okpxiiOIEfGU8gBQVpIAMg==</recv>
  </participantstreamassoc>
  <participantstreamassoc participant_id="okpwVCOIEfGU8gBQVpIAMg==">
    <send>okpxiiOIEfGU8gBQVpIAMg==</send>
    <recv>okpxWCOIEfGU8gBQVpIAMg==</recv>
  </participantstreamassoc>

  <msw:extensiondata>
    <metaswitchRecordingMetadata>
      <callType>interconnect</callType>
      <callingPartyNumber>3615550123</callingPartyNumber>
      <systemName>orchestration</systemName>
      <accountId>7d542c7a-fcf7-4801-8f7d-f1e569135c67</accountId>
      <userId>a7c4deab-194d-481d-b998-98c2caaf14bc</userId>
    </metaswitchRecordingMetadata>
  </msw:extensiondata>
</recording>

Standard RFC 7866 elements

Element Description
<session> Unique session_id and call start time.
<participant> One per call participant. Carries the AOR (and display name when available).
<stream> One per audio stream. The <label> matches the SDP a=label attribute, letting you correlate XML to SDP.
<participantsessionassoc> Binds a participant to a session.
<participantstreamassoc> Binds a participant to its <send> and <recv> streams. This is the authoritative mapping between participants and streams — do not infer it from stream order.

Alianza extension fields (<msw:extensiondata>)

Alianza populates a proprietary extension block with additional call metadata.

Field XML element Description
Call type <callType> interconnect (typical for Alianza deployments). Values originating and terminating may appear in future configurations.
Calling party number <callingPartyNumber> The username portion of the calling party's AOR.
Account Id <accountId> Alianza Account Id of the user that triggered this recording.
User Id <userId> Alianza User Id of the user that triggered this recording.
System name <systemName> Identifies the Alianza instance that originated the recording session.

Correlating a recording with your provisioning records

<accountId> is the field that tells you which Alianza account a recording belongs to. It is the same accountId returned when you created the Experience Connection and carried on every Experience Assignment — so it is the key that joins a SIPREC session back to the provisioning you did up front.

<userId> narrows that to the individual user whose call triggered the recording, which is what you need when an Experience is assigned at USER scope rather than ACCOUNT.

Read both from the extension block rather than inferring the account from the calling party number: a number can move between accounts, and <callingPartyNumber> carries only the username portion of the AOR.