private void HandlePortCallRequest(object sender, ICallingEventArgs e)
        {
            IPort sourcePort = sender as IPort;

            if (_portMapping.ContainsKey(e.TargetNumber))
            {
                IPort targetPort = _portMapping[e.TargetNumber];

                if (targetPort.State == PortStates.Free)
                {
                    Console.WriteLine("Station: port[{0}] transfer call from terminal {1} to terminal {2}.\n",
                                      sourcePort.PortId, e.SourceNumber, e.TargetNumber);

                    _waitingConnection[sourcePort] = targetPort;
                    targetPort.PortReciveCall(targetPort, e);
                }
                else
                {
                    Console.WriteLine(
                        "Station to port[{0}]: call from terminal {1} to terminal {2} turn dowm. Terminal busy or disconected.\n",
                        sourcePort.PortId, e.SourceNumber, e.TargetNumber);

                    sourcePort.PortReciveReject(sourcePort, e);
                    CreateUnsuccessfulStats(e);
                }
            }
            else
            {
                Console.WriteLine("Station to port[{0}]: invalid target number, or number is not exist.\n",
                                  sourcePort.PortId);

                sourcePort.PortReciveReject(sourcePort, e);
            }
        }