public int Drop() { HttpWebRequest l_request = XmsInterface.CreateRequest("DELETE", "calls", this.CallId); l_request.Accept = null; l_request.ContentType = null; Logger.Log(XmsInterface.RequestToString(l_request, null), true); // no XML pyload here HttpWebResponse l_response = null; try { l_response = (HttpWebResponse)l_request.GetResponse(); } catch (Exception ex) { Logger.Log("ERROR: " + ex.Message, false); return(-1); } Logger.Log(XmsInterface.ResponseToString(l_response), false); if (l_response.StatusCode != HttpStatusCode.NoContent) { // process response here return(-1); } l_response.Close(); return(0); }
public int Play(string a_filename) { m_play.offset = "0s"; m_play.repeat = "1"; m_play.delay = "2s"; m_play.skip_interval = "0s"; m_play.max_time = "infinite"; m_play.terminate_digits = "*"; m_play.play_source = new play_source(); m_play.play_source.location = a_filename; m_call_action.Item = m_play as play; m_call.call_action = m_call_action; web_service l_ws = new web_service(); l_ws.Item = m_call as call; HttpWebRequest l_request = XmsInterface.CreateRequest("PUT", "calls", this.CallId); using (Stream l_requestStream = l_request.GetRequestStream()) { XmlSerializer x = new XmlSerializer(typeof(web_service)); x.Serialize(l_requestStream, l_ws); } Logger.Log(XmsInterface.RequestToString(l_request, l_ws), true); HttpWebResponse l_response = null; try { l_response = (HttpWebResponse)l_request.GetResponse(); } catch (Exception ex) { Logger.Log("ERROR: " + ex.Message, false); return(-1); } Logger.Log(XmsInterface.ResponseToString(l_response), false); if (l_response.StatusCode != HttpStatusCode.OK) { // process response here // return -1; } l_request.GetRequestStream().Close(); l_response.Close(); return(0); }
private int Unsubscribe() { if (m_hId == null || m_hId == "") { return(-1); } HttpWebRequest l_request = XmsInterface.CreateRequest("DELETE", "eventhandlers", m_hId); string l_srequest = XmsInterface.RequestToString(l_request, null); Logger.Log(l_srequest, true); HttpWebResponse l_response = (HttpWebResponse)l_request.GetResponse(); l_srequest = XmsInterface.ResponseToString(l_response); Logger.Log(l_srequest, false); return(0); }
public int Answer() { HttpWebRequest l_request = XmsInterface.CreateRequest("PUT", "calls", this.CallId); m_call.answer = boolean_type.yes; m_call.answerSpecified = true; m_call.cpa = boolean_type.no; m_call.media = media_type.audio; web_service l_ws = new web_service(); l_ws.Item = m_call as call; using (Stream l_requestStream = l_request.GetRequestStream()) { XmlSerializer x = new XmlSerializer(typeof(web_service)); x.Serialize(l_requestStream, l_ws); } Logger.Log(XmsInterface.RequestToString(l_request, l_ws), true); HttpWebResponse l_response = null; try { l_response = (HttpWebResponse)l_request.GetResponse(); } catch (Exception ex) { Logger.Log("ERROR: " + ex.Message, false); return(-1); } Logger.Log(XmsInterface.ResponseToString(l_response), false); if (l_response.StatusCode != HttpStatusCode.OK) { // process response here return(-1); } l_request.GetRequestStream().Close(); l_response.Close(); return(0); }
private int Subscribe(string body) // sends POST method with event handler parameters { eventsubscribe[] es = new eventsubscribe[1]; es[0] = new eventsubscribe(); es[0].resource_id = "any"; es[0].action = action_option.add; es[0].type = event_type.any; m_EventHandler.eventsubscribe = es; m_ws.Item = m_EventHandler as eventhandler; HttpWebRequest l_request = XmsInterface.CreateRequest("POST", "eventhandlers", ""); // HttpWebRequest l_request = XmsInterface.CreateRequest("GET", "calls", ""); /* * l_request.Accept = "application/xml"; * l_request.ContentType = "application/xml"; * * l_request.ContentLength = (XmsInterface.ObjectToString(m_ws)).Length; * l_request.SendChunked = false; * l_request.Expect = null; * l_request.KeepAlive = false; * * l_request.ProtocolVersion = HttpVersion.Version10; */ using (Stream l_requestStream = l_request.GetRequestStream()) { XmlSerializer x = new XmlSerializer(typeof(web_service)); x.Serialize(l_requestStream, m_ws); } /* * if (body.Length > 0) * { * using (Stream requestStream = l_request.GetRequestStream()) * using (StreamWriter writer = new StreamWriter(requestStream)) * { * writer.Write(body); * } * } * */string l_srequest = XmsInterface.RequestToString(l_request, m_ws); Logger.Log(l_srequest, true); HttpWebResponse l_response = null; try { l_response = (HttpWebResponse)l_request.GetResponse(); if (l_response.StatusCode != HttpStatusCode.Created) { // process response here Logger.Log(XmsInterface.ResponseToString(l_response), false); return(-1); } l_request.GetRequestStream().Close(); } catch (Exception ex) { Logger.Log("ERROR: " + ex.Message, false); return(-1); } using (Stream l_responseStream = l_response.GetResponseStream()) { XmlSerializer x = new XmlSerializer(typeof(web_service)); m_ws = (web_service)x.Deserialize(l_responseStream); } l_srequest = XmsInterface.ResponseToString(l_response); l_response.Close(); Logger.Log(l_srequest, false); Type tp = m_ws.Item.GetType(); switch (tp.Name) { case "eventhandler_response": eventhandler_response l_ehr = (eventhandler_response)m_ws.Item; EventHandler.m_href = l_ehr.href; EventHandler.m_hId = l_ehr.identifier; m_isRunning = true; m_eventThread = new Thread(EventHandler.EventThread); m_eventThread.IsBackground = true; m_eventThread.Start(); // l_response = (HttpWebResponse)l_request.GetResponse(); // m_eventStream = l_response.GetResponseStream(); // m_asyncResult = m_eventStream.BeginRead(m_eventBuffer, 0, 512, m_callback, null); break; } /* * using (Stream l_requestStream = l_request.GetRequestStream()) * { * } * // using (StreamWriter l_writer = new StreamWriter(l_requestStream)) * * * using (Stream l_requestStream = l_request.GetRequestStream()) * using (StreamWriter l_writer = new StreamWriter(l_requestStream)) * { * l_writer.Write(a_xmlPayload); * } * } * * * web_service l_ws = new web_service(); * FileStream fs = new FileStream("CsDemo.log", FileMode.Open); * XmlSerializer x = new XmlSerializer(typeof(web_service)); * web_service g = new web_service(); * g = (web_service)x.Deserialize(fs); * Type tp = g.Item.GetType(); * switch (tp.Name) * { * case "eventhandler_response": * eventhandler_response l_ehr = (eventhandler_response) g.Item; * this.m_href = l_ehr.href; * this.m_hId = l_ehr.identifier; * break; * } * * * * * * string it = ""; * // it = g.Item.ToString(); * /* * Console.WriteLine(g.Manager.Name); * Console.WriteLine(g.GroupID); * Console.WriteLine(g.HexBytes[0]); * foreach (Employee e in g.Employees) * { * Console.WriteLine(e.Name); * } * * * * eventsubscribe[] es = new eventsubscribe[1]; * es[0] = new eventsubscribe(); * es[0].resource_id = "none"; * es[0].action = action_option.remove; * es[0].type = event_type.any; * eventhandler eh = new eventhandler(); * eh.eventsubscribe = es; * * l_ws.Item = eh as eventhandler; * * * using (StreamWriter sw = new StreamWriter("CsDemo.log")) * { * * new XmlSerializer(typeof(web_service)).Serialize(sw, l_ws); * } * * * * string str = ""; * using (StreamWriter sw = new StreamWriter(str))//("CsDemo.log")) * { * * new XmlSerializer(typeof(eventhandler)).Serialize(sw, eh); * } */ return(0); }
public int MakeCall(string a_callingAddress) { web_service l_ws = new web_service(); m_call.destination_uri = a_callingAddress; m_call.cpa = boolean_type.no; m_call.sdp = ""; m_call.media = media_type.audio; m_call.signaling = boolean_type.yes; m_call.dtmf_mode = dtmf_mode_option.rfc2833; m_call.async_dtmf = boolean_type.no; m_call.async_tone = boolean_type.no; m_call.rx_delta = "+0dB"; m_call.tx_delta = "+0dB"; m_call.source_uri = "sip:" + XmsInterface.XmsUri(); l_ws.Item = m_call as call; HttpWebRequest l_request = XmsInterface.CreateRequest("POST", "calls", ""); using (Stream l_requestStream = l_request.GetRequestStream()) /* using (StreamWriter writer = new StreamWriter(l_requestStream)) * { * FileStream fs = new FileStream("test.txt", FileMode.Open); * StreamReader rd = new StreamReader(fs); * string requestBody = rd.ReadToEnd(); * writer.Write(requestBody); * } */ { XmlSerializer x = new XmlSerializer(typeof(web_service)); x.Serialize(l_requestStream, l_ws); } Logger.Log(XmsInterface.RequestToString(l_request, l_ws), true); HttpWebResponse l_response = null; try { l_response = (HttpWebResponse)l_request.GetResponse(); } catch (Exception ex) { Logger.Log("ERROR: " + ex.Message, false); return(-1); } if (l_response.StatusCode != HttpStatusCode.Created) { // process response here Logger.Log(XmsInterface.ResponseToString(l_response), false); return(-1); } using (Stream l_responseStream = l_response.GetResponseStream()) { XmlSerializer x = new XmlSerializer(typeof(web_service)); l_ws = (web_service)x.Deserialize(l_responseStream); } Logger.Log(XmsInterface.ResponseToString(l_response), false); l_request.GetRequestStream().Close(); Type tp = l_ws.Item.GetType(); switch (tp.Name) { case "call_response": call_response l_cr = (call_response)l_ws.Item; this.m_callId = l_cr.identifier; break; default: Logger.Log("Unknown response object type of " + tp.Name, false); break; } l_request.GetRequestStream().Close(); l_response.Close(); return(0); }