public void RegisterCall(Call call) { lock (_lock) { Helper.GuardNotNull(call); call.SetId(_callApi.MakeCallAndGetId(call.Account.Id, call.DestinationUri, 0)); AddCallAndUpdateEaCache(call.DestinationUri, call); call.HandleSignallingStateChanged(); _barrier.Reset(); } }
public ICall MakeCall(IAccount account, string destinationUri) { lock (_lock) { Helper.GuardNotNull(account); Helper.GuardInRange(0u, MaxCalls - 1, (uint)_activeCalls.Count); var result = _objectFactory.Create <ICallInternal>(); var acc = _accMgr.GetAccount(account.Id); Helper.GuardNotNull(acc); result.SetAccount(acc); using (result.InitializationScope()) result.SetDestinationUri(destinationUri); result.SetId(_callApi.MakeCallAndGetId(result.Account.Id, destinationUri, 0)); AddCallAndUpdateEaCache(destinationUri, result); result.HandleInviteStateChanged(); _barrier.Reset(); return(result); } }