Cisco XML Objects can be either pushed (HTTP POST) or pulled (HTTP GET).
If you see the Cisco Documentation Cisco Unified IP Phone Services Application Development Notes (Supporting XML Application):
The following description designates how an HTTP server request is made to the phone via an HTTP POST operation:
1.The server performs an HTTP POST in response to a case-sensitive URL of the phone with this format: http://x.x.x.x/CGI/Execute, where x.x.x.x represents the IP address of the destination Cisco Unified IP Phone.
The form that is posted should have a case-sensitive form field name called ¿XML¿ that contains the desired XML object. For any HTTP POST operation, the server must provide basic HTTP authentication information with the POST. The provided credentials must be of a user in the global directory with a device association with the target phone
You can Push any object via the CiscoIPPhoneExecute object or push directly other displayable XML Object (such as CiscoIPPhoneMenu, CiscoIPPhoneText or CiscoIPPhoneStatus).
You can do this from any application (Web, service...) and from any language, that support http request.
This is a C# example:
string pushxml = "XML=" + HttpUtility.UrlEncode(url1);
string uri = "http://" + ipddress + "/CGI/Execute";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.ContentType = "application/x-www-form-urlencoded";
//req.Connection = "close";
req.Credentials = new System.Net.NetworkCredential(uid, pwd);
req.Method = "POST";
System.IO.Stream stream = req.GetRequestStream();
byte[] arrBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(pushxml);
stream.Write(arrBytes, 0, arrBytes.Length);
stream.Close();
WebResponse resp = req.GetResponse();
Stream respStream = resp.GetResponseStream();
StreamReader rdr = new StreamReader(respStream, System.Text.Encoding.ASCII);
string strResponse = rdr.ReadToEnd();
return strResponse;
Can you explain more regarding this example, I don't really get ContentType part, pushxml