public static int MakeCall(string a_address) { XmsCall l_outCall = new XmsCall(""); l_outCall.CallDirection = XmsCall.e_CallDirection.Outgoung; if (l_outCall.MakeCall(a_address) == -1) return -1; l_outCall.CallState = XmsCall.e_CallState.STATE_DIALING; m_callTable.Add(l_outCall.CallId, l_outCall); return 0; }
public static int MakeCall(string a_address) { XmsCall l_outCall = new XmsCall(""); l_outCall.CallDirection = XmsCall.e_CallDirection.Outgoung; if (l_outCall.MakeCall(a_address) == -1) { return(-1); } l_outCall.CallState = XmsCall.e_CallState.STATE_DIALING; m_callTable.Add(l_outCall.CallId, l_outCall); return(0); }
public static int ProcessEvent(@event a_event) { XmsCall l_call = new XmsCall(""); if(a_event.type == event_type.incoming) // new call { l_call.CallId = a_event.resource_id; l_call.CallState = XmsCall.e_CallState.STATE_OFFERED; l_call.CallDirection = XmsCall.e_CallDirection.Incoming; m_callTable.Add(a_event.resource_id, l_call); if (l_call.Answer() != 0) // failed for some reason, see logs, need to remove { l_call.Drop(); m_callTable.Remove(a_event.resource_id); } else { l_call.CallState = XmsCall.e_CallState.STATE_CONNECTED; l_call.Play("file://verification/verification_intro.wav"); } return 0; // done with the incoming call } switch(a_event.type) { case event_type.connected: break; case event_type.dtmf: break; case event_type.end_play: if (m_callTable.TryGetValue(a_event.resource_id, out l_call) == false) //should not be here Logger.Log("ERR - Invalid CRN", true); else { l_call.Drop(); m_callTable.Remove(l_call.CallId); } break; case event_type.end_playcollect: break; case event_type.end_playrecord: break; case event_type.hangup: try { l_call = m_callTable[a_event.resource_id]; l_call.Drop(); m_callTable.Remove(a_event.resource_id); } catch (KeyNotFoundException) { Logger.Log("ERR: Cannot find call reference to release", true); } break; case event_type.ringing: break; case event_type.tone: break; } return 0; }
public static int ProcessEvent(@event a_event) { XmsCall l_call = new XmsCall(""); if (a_event.type == event_type.incoming) // new call { l_call.CallId = a_event.resource_id; l_call.CallState = XmsCall.e_CallState.STATE_OFFERED; l_call.CallDirection = XmsCall.e_CallDirection.Incoming; m_callTable.Add(a_event.resource_id, l_call); if (l_call.Answer() != 0) // failed for some reason, see logs, need to remove { l_call.Drop(); m_callTable.Remove(a_event.resource_id); } else { l_call.CallState = XmsCall.e_CallState.STATE_CONNECTED; l_call.Play("file://verification/verification_intro.wav"); } return(0); // done with the incoming call } switch (a_event.type) { case event_type.connected: break; case event_type.dtmf: break; case event_type.end_play: if (m_callTable.TryGetValue(a_event.resource_id, out l_call) == false) //should not be here { Logger.Log("ERR - Invalid CRN", true); } else { l_call.Drop(); m_callTable.Remove(l_call.CallId); } break; case event_type.end_playcollect: break; case event_type.end_playrecord: break; case event_type.hangup: try { l_call = m_callTable[a_event.resource_id]; // l_call.Drop(); m_callTable.Remove(a_event.resource_id); } catch (KeyNotFoundException) { Logger.Log("ERR: Cannot find call reference to release", true); } break; case event_type.ringing: break; case event_type.tone: break; } return(0); }