Page MenuHomePhabricator

Investigate supporting MMS protocol on the checkIfDead class
Closed, ResolvedPublic

Description

MMS appears to be a widely used protocol in sourcing interviews. It's a Windows Media Player protocol. Unfortunately the checkIfDead class cannot access these at current and result in coming back as dead at the moment.

We should investigate if these streams can be accessed with the cURL library to check for the presence of a stream behind it.

At the very least the class should be updated to return null instead of true or false for unsupported protocols.

Event Timeline

$ echo -e 'DESCRIBE /radiotam RTSP/1.0\r\n\r\n' | nc -q 5 200.23.59.10 554
RTSP/1.0 200 OK
Content-Type: application/sdp
Vary: Accept
X-Playlist-Gen-Id: 489
X-Broadcast-Id: 266
Content-Length: 1914
Date: Fri, 29 Sep 2017 17:49:43 GMT
Server: WMServer/9.1.1.5001
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.eosmsg, com.microsoft.wm.fastcache, com.microsoft.wm.packetpairssrc, com.microsoft.wm.startupprofile
Last-Modified: Sat, 30 Dec 1899 00:00:00 GMT
Cache-Control: x-wms-stream-type="broadcast", no-cache, no-user-cache, private

v=0
o=- 201709291749430538 201709291749430538 IN IP4 127.0.0.1
s=Radio Tamaulipas
c=IN IP4 0.0.0.0
b=AS:21
a=maxps:1655
t=0 0
a=control:/radiotam/
a=etag:{CF0F99A9-33AA-58F4-01F0-8B792FC5166F}
a=range:npt=2.600-2.600
a=type:broadcast
a=recvonly
a=pgmpu:data:application/x-wms-contentdesc,8,language,31,0,,44,WMS_CONTENT_DESCRIPTION_SERVER_BRANDING_INFO,31,12,WMServer/9.1,30,WMS_CONTENT_DESCRIPTION_RATING,31,0,,35,WMS_CONTENT_DESCRIPTION_DESCRIPTION,31,0,,9,copyright,31,0,,6,author,31,22,Gobierno%20de%20Tamaulipas,5,title,31,16,Radio%20Tamaulipas,51,WMS_CONTENT_DESCRIPTION_PLAYLIST_ENTRY_START_OFFSET,3,4,2600,47,WMS_CONTENT_DESCRIPTION_PLAYLIST_ENTRY_DURATION,3,1,0,58,WMS_CONTENT_DESCRIPTION_COPIED_METADATA_FROM_PLAYLIST_FILE,3,1,1,42,WMS_CONTENT_DESCRIPTION_PLAYLIST_ENTRY_URL,31,1,/%0D%0A
a=pgmpu:data:application/vnd.ms.wms-hdr.asfv1;base64,MCaydY5mzxGm2QCqAGLObOACAAAAAAAABwAAAAECMyaydY5mzxGm2QCqAGLObHgAAAAAAAAAIgAuAAIAAgACAFIAYQBkAGkAbwAgAFQAYQBtAGEAdQBsAGkAcABhAHMAAABHAG8AYgBpAGUAcgBuAG8AIABkAGUAIABUAGEAbQBhAHUAbABpAHAAYQBzAAAAAAAAAAAAznX4e41G0RGNggBgl8misiAAAAAAAAAAAQABAIxPAACh3KuMR6nPEY7kAMAMIFNlaAAAAAAAAACBHo3viKTnEbaDAASs12a2EgMAAAAAAADgx/0ByDjTAf////8AAAAAAAAAAAAAAAAAAAAAAAAAACgKAAAAAAAACQAAAHcGAAB3BgAAjE8AALUDv18uqc8RjuMAwAwgU2UuAAAAAAAAABHS06u6qc8RjuYAwAwgU2UGAAAAAACRB9y3t6nPEY7mAMAMIFNlcgAAAAAAAABAnmn4TVvPEaj9AIBfXEQrUM3Dv49hzxGLsgCqALTiIAAAAAAAAAAAHAAAAAgAAAABAIjqYgBhAQIAIlYAAMUJAABaBhAACgAARAAADgC1DAAAAVoGWgYBAABApNDSB+PSEZfwAKDJXqhQjAAAAAAAAAACABwAVwBNAEYAUwBEAEsAVgBlAHIAcwBpAG8AbgAAAAAAGgA3AC4AMQAwAC4AMAAwAC4AMwAwADUAOQAAABoAVwBNAEYAUwBEAEsATgBlAGUAZABlAGQAAAAAABYAMAAuADAALgAwAC4AMAAwADAAMAAAAEBS0YYdMdARo6QAoMkDSPaWAAAAAAAAAEFS0YYdMdARo6QAoMkDSPYBAAAAAgAXAFcAaQBuAGQAbwB3AHMAIABNAGUAZABpAGEAIABBAHUAZABpAG8AIABWADgAAAAZACAAMgAwACAAawBiAHAAcwAsACAAMgAyACAAawBIAHoALAAgAHMAdABlAHIAZQBvAAAAAgBhATYmsnWOZs8RptkAqgBizmwyAAAAAAAAAIEeje+IpOcRtoMABKzXZrYAAAAAAAAAAAEB

Makes it seem feasible with the existing code base and some modifications.

The checkIfDead class will support MMS and RTSP in v1.5

I think returning null for all unsupported protocols is a good idea.

Unsupported protocols will return null instead of a boolean in v1.5.