This article show the different ways to make calls to Wowza Media Engine from external applications and environments for various purposes such as getting server status , listeners , connections , applications and its streams etc .
HTTP Providers
HTTP Providers are Java classes that are configured on a per-virtual host basis.
Some pre packaged HTTP providers that return data in XML :
1. HTTPConnectionCountsXML
Returns connection information like Vhost , application , application instance , message in bytes rate , message out byte rates etc.
http://%5Bwowza-ip-address%5D:8086/connectioncounts

2. HTTPConnectionInfo
Returns detailed connection information such as
http://%5Bwowza-ip-address%5D:8086/connectioninfo
server=1
3. HTTPServerVersion
Returns the Wowza Media Server version and build number. It’s the default HTTP Provider on port 1935.
url : http://%5Bwowza-ip-address%5D:1935
Wowza Streaming Engine 4 Monthly Edition 4.1.1 build13180
4. HTTPLiveStreamRecord
gets the web interface to record online streams
url : http://%5Bwowza-ip-address%5D:8086/livestreamrecord

5. HTTPServerInfoXML
Returns server and connection information
url :http://%5Bwowza-ip-address%5D:8086/serverinfo

6. HTTPClientAccessPolicy .
It is used for fetching the Microsoft Silverlight clientaccesspolicy.xml from the conf folder.
7. HTTPCrossdomain
To get the Adobe Flash crossdomain.xml file from [install-dir]/conf folder.
8.HTTPProviderMediaList
Dynamic method for generating adaptive bitrate manifests and playlists from SMIL data.
9.HTTPStreamManager
The Stream Manager returns all applications and their stream in web interface.
url http://%5Bwowza-ip-address%5D:8086/streammanager).

10 .HTTPTranscoderThumbnail
Returns a bitmap image from the source stream being transcoded.
url: http://%5Bwowza-ip-address%5D:8086/transcoderthumbnail?application=%5Bapplication-name%5D&streamname=%5Bstream-name%5D&format=%5Bjpeg or png]&size=[widthxheight]
Each HTTP provider can be configured with different request filter and authentication method ( none , basic , digest). We can even create our own substitutes for the HTTP providers as defined in the next section .
Extending HTTProvider2Base
The following code snippet describes the process of creating a Wowza Web services that return a json containing all the values .
Imports to build a HTTP provider
import com.wowza.wms.application.*; import com.wowza.wms.vhost.*; import com.wowza.wms.http.*; import com.wowza.wms.httpstreamer.model.*; //since we want to return in json format import org.json.simple.JSONObject;
The class declaration is as folllows
public class DCWS extends HTTProvider2Base { .... }
The code to extract application names
public JSONObject listChannels(){ JSONObject obj=new JSONObject(); //get params from virtual host and iterate through it List<String> vhostNames = VHostSingleton.getVHostNames(); Iterator<String> iter = vhostNames.iterator(); while (iter.hasNext()) { String vhostName = iter.next(); IVHost vhost = (IVHost)VHostSingleton.getInstance(vhostName); List<String> appNames = vhost.getApplicationNames(); Iterator<String> appNameIterator = appNames.iterator(); int i=0; while (appNameIterator.hasNext()) { String applicationName = appNameIterator.next(); try { String key = "channel"+ (++i); obj.put(key, URLEncoder.encode(applicationName, "UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } return obj; }
The code which responds to HTTP request
TBD..
Ref :