public IHttpActionResult IntiateCall(CallerViewModel data) { using (var ctx = new TelemedicineDBEntities()) { var caller = ctx.Users .Where(a => a.UserId == data.CallerId) .FirstOrDefault(); if (caller.UserId != null) { try { DateTime serverTime = DateTime.Now; Console.WriteLine(serverTime); var session = penTok.CreateSession(); var token = session.GenerateToken(); var callInfo = ctx.callInfoes.Add(new callInfo { CallInfoId = Guid.NewGuid(), CallerId = data.CallerId, ReceiverId = data.ReceiverId, SessionId = session.Id, Token = token }); var newInfo = new callInfo(); newInfo.CallerId = callInfo.CallerId; newInfo.ReceiverId = callInfo.CallerId; newInfo.SessionId = callInfo.SessionId; newInfo.CallInfoId = callInfo.CallInfoId; newInfo.Token = callInfo.Token; var result = ctx.SaveChanges(); if (result == 1) { return(Ok(newInfo)); } else { return(Ok("Call failed")); } } catch (Exception ex) { throw ex.InnerException; } } } return(Ok()); }
public int findFunctionQueueIndexByCallInfo(callInfo ci) { return(BattleManager.core.functionQueue.FindIndex(x => x == ci)); }
public bool initialize(int MaxConcurrentCalls) { int n; try { if (!clientInitialized) { if (dllpath == "") { MessageBox.Show("Cannot initialize IAX Client. The libiaxclient.dll was not found. - IAX Client Wrapper Error"); return false; } arrayAddrPtr = Marshal.AllocHGlobal(4); devnbrptr = Marshal.AllocHGlobal(4); inputnbr = Marshal.AllocHGlobal(4); outputnbr = Marshal.AllocHGlobal(4); ringnbr = Marshal.AllocHGlobal(4); // initialize the call holders callInfo[] localcalls = new callInfo[MaxConcurrentCalls]; for (n = 0; n <= localcalls.GetUpperBound(0); n++) { localcalls[n] = new callInfo(); } calls = localcalls; // make sure we have captured the handle first if (this.captureEventHandle()) { // initialize with the given parameters n = iaxc_initialize(MaxConcurrentCalls); if (!(n == 0)) { System.Console.WriteLine("Failed to intitialize IAX Client: " + n.ToString()); return false; } // set up the event processing n = iaxc_set_event_callpost(newprocptr, myeventid); if (!(n == 0)) { System.Console.WriteLine("Failed to setup event post routine: " + n.ToString()); return false; } // start the processing thread n = iaxc_start_processing_thread(); if (!(n == 0)) { System.Console.WriteLine("Failed to start the processing thread: " + n.ToString()); return false; } clientInitialized = true; return true; } else { System.Console.WriteLine("Failed to capture events. Exiting."); return false; } } else { System.Console.WriteLine("Client is already initialized"); return true; } } catch (Exception ex) { System.Console.WriteLine("Error trapped in iaxClientWrapper.initialize"); System.Console.WriteLine(ex.StackTrace); return clientInitialized; } }