protected void RegisterOutgoingRequest(Requests.OutgoingCallRequest request) { if ((request.Source != default(PhoneNumber) && request.Target != default(PhoneNumber)) && (GetCallInfo(request.Source) == null && GetConnectionInfo(request.Source) == null)) { var callInfo = new CallInfo() { Source = request.Source, Target = request.Target, Started = DateTime.Now }; ITerminal targetTerminal = GetTerminalByPhoneNumber(request.Target); IPort targetPort = GetPortByPhoneNumber(request.Target); if (targetPort.State == PortState.Free) { _connectionCollection.Add(callInfo); targetPort.State = PortState.Busy; targetTerminal.IncomingRequestFrom(request.Source); } else { OnCallInfoPrepared(this, callInfo); } } }
protected virtual void OnOutgoingCall(object sender, PhoneNumber target) { if (OutgoingConnection != null) { ServerIncomingRequest = new Requests.OutgoingCallRequest() { Source = this.Number, Target = target }; OutgoingConnection(sender, ServerIncomingRequest); } }