LoadBalancer Revision History
Version Change
2.0.16 * geocheck shows country, city and internetserviceprovider
2.0.15 * ip range lookup files
It is now possible to specify certain ip ranges for a redirect certain behaviour. These ranges can be defined in an xml file and will be configured as an publishingpoint attribute f.e. <cms-austria iprange="file=sampleiprange.xml">
* multiple source urls, seperated by colon
This feature allows a list of source urls. The streammanager will test the first url, if it fails it will use the next url, according to the list.
To avoid performance problems durding client requests the successful url is cached for several seconds.
The TTL is defined in the web.config under getstreamurlorigin_cache_result_for_sec web.config attribute
* new publishingpoint attribute contains * hotfix to prevent chunklist.m3u8 from adding query parameters
to activate set web.config cupertino_session_returns="false" and add the CDN's url in cupertino_hide_chunk_query_parametes_at="ors.at"
2.0.14 * web.config session_returns parameter for HLS and DASH cupertino_session_returns="false" or dash_session_returns="false"
if set to false the hls or dash player will just initiate the first manifest/playlist request from the streammanager. The player will then ask the CDN Cache or Streaming Server directly for further session information.
The default value is true and ensures that the client returns every 4-8 seconds to request the chunklist.m3u8
* publishingpoint_live.xml / publishingpoint / cupertino attribute "session_returns" can be set per publishingpoint
2.0.13 * https support for all protocols * hotfix for dash with reverse proxy configuration. dash_insert_baseurl rewrites the origin's baseurl
* hotfix for dash if the file does not exist (android app crashed at http 500)
* hotfix if ts chunks [protocoltype]_hide_chunk_query_parametes_at . This web.config hides media.ts query parameters for various caching reasons f.e. cupertino_hide_chunk_query_parameters='apa.at;orf.at'
* custom errors and status codes at protocols [protocoltype]_error_statuscode [protocoltype]_error_statustext [protocoltype]_error_redirect
2.0.12 * publishingpointwhitelist in web.config
* bug fix for xml, json, and jsonp requests at the cupertino and dash section. the problem was caused if the publishingpoint name in the redirecth configuration file differs from the user request
* loggeoprotectionfaults = true in webconfig to log rejected geo protection requests
* use_percentage improvements. it can now be reused at multiple sections of the same publishingpoint to redirect f.e. 30% to x and 70% to y
* drmToken parameter is not case sensitive
* .NET 4.0 RTM
* geo requests will be cached with a default timeout of 60sec (web.config parameter cache_geo_requests_for_seconds)
* publishingpoint_unknown.xml if the publishingpoint does not exist on the geoprotection
* new protocol shoutcast
* new criteria attribute useragent and referrer in publishingpoints_live.xml and publishingpoints_vod.xml
* dash_insert_location and dash_insert_baseurl are set true enables DASH live streaming to be redirected to external caching CDNs
* uses its own useragent for all internal operations download_use_own_useragent or specify value with download_use_this_useragent
2.0.11 * DRM Lite supported (drmToken and ut query parameter will be checked against the geoprotection)
* Smooth Streaming Workaround for WOWZA 4 and XBOX App - if the requested vod file does not exist the value specified in webconfig value smooth_file_not_exist_value will return
2.0.10 * external geo requests
* new web.config params "geocheck_log_requests" , "geocheck_publishingpoint" and "geocheck_referrer"
2.0.9 * wowza 4 session compatibility (_w1234 as well as query parameter wowzasessionid)
* cupertino tunnel chunks function was removed as it is no longer needed
* wowzalock_directory_publishingpoint can now be set in the web.config
* Reverse Proxy Compatibility - f.e. MS ARR can hand over the CUser.getClientIP and CUser.getUserAgent through specific http headers. These two header names can be configured in web.config "arr_http_header_for_client_ip" and "arr_http_header_for_useragent"
* enforcesessionid switch for cupertino HLS streaming in publishingpoint*.xml
* "dash" protocol added for VoD
* smil support added
* "pd" protocol added for progressive download redirection (yet without token)
* Log File Class optimized for bufferred I/O
* LoadBalancer sessions will be generated via the lbs query parameter (the parameter name can be specified under web.config "lbs_name")
2.0.8 * [LOCALSTREAMINGSERVER] can now be used in protocol config. It only uses the local server as specified in webconfig when it is not locked
* VoD SanJose Redirect to external CDN
* Url Config can now look like this
<sanjose><streamurl type='' f4m_mask='f4m_rtmp_mask_vod.xml' >http://...</streamurl></sanjose>
2.0.7 * Hotfix to enforce the Content-Length header during tunneling
* Feature accept Byte Ranges during tunneling
process_wowza_chunk_default - DeliverContent function
* server type="com" in CStreamingServer
2.0.6 * Hotfix to enforce the Content-Length header during tunneling
* Feature accept Byte Ranges during tunneling
* Hotfix for Cupertino HLS Tunneling
It was reported that randomly HLS clips could not be played.  The problem could be verified when a certain PublishingPoint was configured to tunnel Cupertino HLS sessions. This behaviour was caused by a fault in the URL encryption.
CHandlerCupertino.CCupertinoTSChunk - url property
2.0.5 * Avoid multiple iOS cupertino connections
This feature is used to avoid multiple playlist connections on WOWZA streaming server established by iOS devices.
CHandlerCupertino.CreateContentOutput modified to handle 2 Byte Range Requests for Playlists
In that case the LoadBalancer does not open a connection to the streaming server.

* cupertino tunnel
Some iOS Apps perform a client side playlist transformation and therefore cause server session timeout issues.
To avoid this problem a special session handler was needed to handle long term requests,
Attribute to enable/disable the tunnel for a publishingpoint*.xml is use_tunnel="true".
New objects to handle tunnel requests
CWowzaSessionID, CCupertinoTSChunk, CCupertinoPlaylist_wowza, CCupertinoPlaylist_loadbalancer, CCupertinoPlaylist_tunnel_chunks
2.0.4 * url_add_ipua, url_add_publishingpoint, url_add_origin moved to baseclass

* CHandlerSmoothStreaming.CreateContentOutput
   change added url, ip and publishingpoint in manifest file.
   catch for empty playlist returned