public void StartCall(string contact)
        {
            // Build call action
            var handle          = new CXHandle(CXHandleType.Generic, contact);
            var startCallAction = new CXStartCallAction(new NSUuid(), handle);

            // Create transaction
            var transaction = new CXTransaction(startCallAction);

            // Inform system of call request
            SendTransactionRequest(transaction);
        }
示例#2
0
        public ActiveCall StartCall(string name, int id)
        {
            var newCall = new ActiveCall(new NSUuid(), name, id, true, null, false);

            Calls.Add(newCall);

            var handle          = new CXHandle(CXHandleType.Generic, name);
            var startCallAction = new CXStartCallAction(newCall.UUID, handle);
            var transaction     = new CXTransaction(startCallAction);

            SendTransactionRequest(transaction);

            return(newCall);
        }
示例#3
0
        public override void PerformStartCallAction(CXProvider provider, CXStartCallAction action)
        {
            Console.WriteLine("CXProviderDelegate: PerformStartCallAction");

            // Create new call record
            var activeCall = new ActiveCall(action.CallUuid, action.CallHandle.Value, true);

            // Monitor state changes
            activeCall.StartingConnectionChanged += (call) =>
            {
                if (call.isConnecting)
                {
                    // Inform system that the call is starting
                    Provider.ReportConnectingOutgoingCall(call.UUID, call.StartedConnectingOn.ToNSDate());
                }
            };

            activeCall.ConnectedChanged += (call) =>
            {
                if (call.isConnected)
                {
                    // Inform system that the call has connected
                    provider.ReportConnectedOutgoingCall(call.UUID, call.ConnectedOn.ToNSDate());
                }
            };

            // Start call
            activeCall.StartCall((successful) =>
            {
                // Was the call able to be started?
                if (successful)
                {
                    // Yes, inform the system
                    action.Fulfill();

                    // Add call to manager
                    CallManager.Calls.Add(activeCall);
                }
                else
                {
                    // No, inform system
                    action.Fail();
                }
            });
        }
示例#4
0
        public void StartCall(string contact)
        {
            // Build call action
            var handle = new CXHandle(CXHandleType.Generic, contact);
            //var handle = new CXHandle(CXHandleType.EmailAddress, contact);
            //var handle = new CXHandle(CXHandleType.PhoneNumber, contact);

            var thisCallID = new NSUuid();

            Console.WriteLine("Call instance " + thisCallID + " generated for " + contact);
            var startCallAction = new CXStartCallAction(thisCallID, handle);

            // Create transaction
            var transaction = new CXTransaction(startCallAction);

            // Inform system of call request
            SendTransactionRequest(transaction);
        }
示例#5
0
 public static void PerformStartCallAction(this ICXProviderDelegate This, CXProvider provider, CXStartCallAction action) => throw new PlatformNotSupportedException(Constants.UnavailableOnMacOS);
示例#6
0
 public virtual void PerformStartCallAction(CXProvider provider, CXStartCallAction action) => throw new PlatformNotSupportedException(Constants.UnavailableOnMacOS);