Esempio n. 1
0
        private void btCallConference_Click(object sender, EventArgs e)
        {
            if ((pbxCall1 != null) &&
                (pbxCall2 != null))
            {
                // Need to get hold call id and active call id
                String  holdCallId   = null;
                String  activeCallId = null;
                Boolean canDoAction  = false;

                if ((pbxCall1.CallStatus == Call.Status.ACTIVE) && (pbxCall2.CallStatus == Call.Status.PUT_ON_HOLD))
                {
                    holdCallId   = pbxCall2.Id;
                    activeCallId = pbxCall1.Id;
                    canDoAction  = true;
                }
                else if ((pbxCall1.CallStatus == Call.Status.PUT_ON_HOLD) && (pbxCall2.CallStatus == Call.Status.ACTIVE))
                {
                    holdCallId   = pbxCall1.Id;
                    activeCallId = pbxCall2.Id;
                    canDoAction  = true;
                }

                if (canDoAction)
                {
                    // Conference call
                    rainbowTelephony.ConferenceCall(activeCallId, holdCallId, callback =>
                    {
                        if (!callback.Result.Success)
                        {
                            String output = String.Format("Impossible to create the conference- Error:[{0}]", Util.SerializeSdkError(callback.Result));
                            AddStateLine(output);
                            log.LogError(output);
                        }
                    });
                }
            }
        }