CDN Edge Server IP Collection

## Introduction The video player should send the Pragma:C-XServerSignature parameter from the streaming HTTP handler to the content delivery network (CDN), and the CDN must respond back with C-XServer.

Updated 2026-06-30 cdn, edge, server, collection, sensor developer center, sensor integration, cdn edge server ip collection

Introduction

The video player should send the Pragma:C-XServerSignature parameter from the streaming HTTP handler to the content delivery network (CDN), and the CDN must respond back with C-XServerSignature:cdn=<>; groupID=<>; server-signature=<>; status=<>; url=<>; as the response.

Field Definitions

Field Name Description
<> Name of the CDN in uppercase.
<> The region or pop identifier of the CDN Edge Server.
<> The signature of the server that served the HTTP request. The expected value is:
  • IP address (internal or external IP address of the interface that handled the HTTP request) or
  • A fully qualified domain name of the server or
  • A string that uniquely identifies the CDN Server that served the chunk.

The server signature is the CDNEdgeServer that will be provided by Conviva in SSD or SessionsAPI or Alerts. Video player developers need to work with their CDN partners to send the signature, collect the edge server IP value, and then call Conviva API to set the CDNEdgeServer across platforms.

<> The HTTP response status code sent from the video player application to the CDN Server.
<> The Manifest or Segment URL of the content added into the request header from the video player application.

Example Request and Response

The following is an example request sent from the video player application and the example response received from the CDN.

Request

http://abc015-de-f8-prd-xyz.cdn01.example.com/v1/frag/bmff/enc/cenc/t/BTSP13HD_HD_SU_EXAMPLE_3669_0_123456789123456789.mpd

Response

C-XServerSignature: cdn=abc; groupID=12345; server-signature=123.456.789.00; is the response header or value and 200 OK is the status code of the response.

curl -v -o /dev/null http://abc015-de-f8-prd-xyz.cdn01.example.com/v1/frag/bmff/enc/cenc/t/BTSP13HD_HD_SU_EXAMPLE_3669_0_123456789123456789.mpd
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 123.456.789.00...
* TCP_NODELAY set
* Connected to abc015-de-f8-prd-xyz.cdn01.example.com (123.456.789.00) port 80 (#0)
> GET /v1/frag/bmff/enc/cenc/t/BTSP13HD_HD_SU_EXAMPLE_3669_0_123456789123456789.mpd HTTP/1.1
> Host: abc015-de-f8-prd-xyz.cdn01.example.com
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: Apache/2.4.6 (CentOS)
< X-MoneyTrace: trace-id=b123db2a-db12-3456-78t-123456789;parent-id=-123456789987654321;span-id=-987654321123456789
< X-Powered-By: viper-mod_super8-3.24.3-1
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: X-MoneyTrace
< Cache-Control: max-age=1
< Last-Modified: Wed, 19 May 2021 10:11:11 GMT
< Date: Wed, 19 May 2021 10:11:12 GMT
< Content-Length: 25271
< Connection: keep-alive
< XYZ-Mon-Iucid-Del: 1116299
< Content-Type: application/dash+xml
< C-XServerSignature: cdn=XYZ; groupID=12345; server-signature=123.456.789.00
< Access-Control-Expose-Headers: Server, Range, Content-Length, Content-Range,XYZ-Mon-Iucid-Ing,XYZ-Mon-Iucid-Del,XYZ-Request-BC
< Access-Control-Allow-Credentials: false
< Access-Control-Allow-Methods: GET,POST,HEAD
< Access-Control-Max-Age: 86400
<
{ [8616 bytes data]
100 25271  100 25271    0     0   163k      0 --:--:-- --:--:-- --:--:--  165k
* Connection #0 to host abc015-de-f8-prd-xyz.cdn01.example.com left intact

Report CDN Edge Server IP

  1. Create a string by concatenating the data available in the HTTP request and responses.

  2. Read the response header value (C-XServerSignature) from every stream HTTP response.

  3. Concatenate the response header value with the status code of the response and the Manifest or Segment URL that was requested for fetching the Edge Server details. The following is a sample of a CDN Edge Server IP string that must be reported to Conviva.

C-XServerSignature: cdn=XYZ; groupID=12345; server-signature=123.456.789.00; + ";status=200; url=http://abc015-de-f8-prd-xyz.cdn01.example.com/v1/frag/bmff/enc/cenc/t/BTSP13HD_HD_SU_EXAMPLE_3669_0_123456789123456789.mpd"
  1. Invoke the below mentioned Conviva API's to set the CDNEdgeServer across platforms. The integration must concatenate the HTTP status, response code, and the URL with the C-XServerSignature value, and it must be sent to Conviva SDK/Library. If this pattern is not followed, then the values will not be populated.
Platform API Integration Instructions
Android videoAnalytics.reportPlaybackMetric(ConvivaSdkConstants.PLAYBACK.CDN_IP, cdnEdgeServerIpValue); Conviva Android Sensor Integration
JavaScript videoAnalytics.reportPlaybackMetric(Conviva.Constants.Playback.CDN_IP, cdnEdgeServerIpValue); Conviva JavaScript Sensor Integration
iOS/tvOS videoAnalytics.reportPlaybackMetric(CIS_SSDK_PLAYBACK_METRIC_CDN_IP, value: cdnEdgeServerIpValue); Conviva iOS/tvOS Sensor Integration
C notifier->set_CDNServerIP(ccl_notifier_context_t *notifier_context, const char *cdnEdgeServerIpValue); Conviva C Sensor Integration
Roku conviva.setCDNServerIp(videoNode, cdnEdgeServerIpValue); Conviva Roku SceneGraph Sensor Integration
Xbox MediaElement/MediaPlayer WinClient.setCDNServerIP(sessionId, cdnEdgeServerIpValue); Conviva Xbox One / Windows 10: MediaPlayer/MediaElement Sensor Integration
Xbox WinJS ConvivaUWP.WinClient.setCDNServerIP(sessionId, cdnEdgeServerIpValue); Conviva Windows 10 / Xbox One : WinJS Sensor Integration