コード例 #1
0
        /// <summary>
        /// TODO: Documentation SessionTerminate
        /// </summary>
        /// <param name="to"></param>
        /// <param name="sid"></param>
        /// <param name="reasonType"></param>
        /// <returns></returns>
        public void SessionTerminate(JID to, String sid, ReasonType?reasonType)
        {
            JingleIQ jingleIq = new JingleIQ(this.Stream.Document);

            jingleIq.From = this.Stream.JID;
            jingleIq.To   = to;
            jingleIq.Type = IQType.set;
            jingleIq.Instruction.Action = ActionType.session_terminate;
            jingleIq.Instruction.Sid    = sid;

            if (reasonType.HasValue)
            {
                JingleReason reason = new JingleReason(jingleIq.OwnerDocument);

                switch (reasonType)
                {
                case ReasonType.alternative_session:
                    reason.Reason = new AlternativeSession(jingleIq.OwnerDocument);
                    break;

                case ReasonType.busy:
                    reason.Reason = new Busy(jingleIq.OwnerDocument);
                    break;

                case ReasonType.cancel:
                    reason.Reason = new Cancel(jingleIq.OwnerDocument);
                    break;

                case ReasonType.connectivity_error:
                    reason.Reason = new ConnectivityError(jingleIq.OwnerDocument);
                    break;

                case ReasonType.decline:
                    reason.Reason = new JingleDecline(jingleIq.OwnerDocument);
                    break;

                case ReasonType.expired:
                    reason.Reason = new Expired(jingleIq.OwnerDocument);
                    break;

                case ReasonType.failed_application:
                    reason.Reason = new FailedApplication(jingleIq.OwnerDocument);
                    break;

                case ReasonType.failed_transport:
                    reason.Reason = new FailedTransport(jingleIq.OwnerDocument);
                    break;

                case ReasonType.general_error:
                    reason.Reason = new GeneralError(jingleIq.OwnerDocument);
                    break;

                case ReasonType.gone:
                    reason.Reason = new Gone(jingleIq.OwnerDocument);
                    break;

                case ReasonType.incompatible_parameters:
                    reason.Reason = new IncompatibleParameters(jingleIq.OwnerDocument);
                    break;

                case ReasonType.media_error:
                    reason.Reason = new MediaError(jingleIq.OwnerDocument);
                    break;

                case ReasonType.security_error:
                    reason.Reason = new SecurityError(jingleIq.OwnerDocument);
                    break;

                case ReasonType.success:
                    reason.Reason = new Success(jingleIq.OwnerDocument);
                    break;

                case ReasonType.timeout:
                    reason.Reason = new Timeout(jingleIq.OwnerDocument);
                    break;

                case ReasonType.unsupported_applications:
                    reason.Reason = new UnsupportedApplications(jingleIq.OwnerDocument);
                    break;

                case ReasonType.unsupported_transports:
                    reason.Reason = new UnsupportedTransports(jingleIq.OwnerDocument);
                    break;
                }
                jingleIq.Instruction.Reason = reason;
            }

            this.Stream.Write(jingleIq);
        }
コード例 #2
0
        /// <summary>
        /// TODO: Documentation SessionTerminate
        /// </summary>
        /// <param name="to"></param>
        /// <param name="sid"></param>
        /// <param name="reasonType"></param>
        /// <returns></returns>
        public void SessionTerminate(JID to, String sid, ReasonType? reasonType)
        {
            JingleIQ jingleIq = new JingleIQ(this.Stream.Document);
            jingleIq.From = this.Stream.JID;
            jingleIq.To = to;
            jingleIq.Type = IQType.set;
            jingleIq.Instruction.Action = ActionType.session_terminate;
            jingleIq.Instruction.Sid = sid;

            if (reasonType.HasValue)
            {
                JingleReason reason = new JingleReason(jingleIq.OwnerDocument);

                switch (reasonType)
                {
                    case ReasonType.alternative_session:
                        reason.Reason = new AlternativeSession(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.busy:
                        reason.Reason = new Busy(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.cancel:
                        reason.Reason = new Cancel(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.connectivity_error:
                        reason.Reason = new ConnectivityError(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.decline:
                        reason.Reason = new JingleDecline(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.expired:
                        reason.Reason = new Expired(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.failed_application:
                        reason.Reason = new FailedApplication(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.failed_transport:
                        reason.Reason = new FailedTransport(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.general_error:
                        reason.Reason = new GeneralError(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.gone:
                        reason.Reason = new Gone(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.incompatible_parameters:
                        reason.Reason = new IncompatibleParameters(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.media_error:
                        reason.Reason = new MediaError(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.security_error:
                        reason.Reason = new SecurityError(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.success:
                        reason.Reason = new Success(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.timeout:
                        reason.Reason = new Timeout(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.unsupported_applications:
                        reason.Reason = new UnsupportedApplications(jingleIq.OwnerDocument);
                        break;

                    case ReasonType.unsupported_transports:
                        reason.Reason = new UnsupportedTransports(jingleIq.OwnerDocument);
                        break;
                }
                jingleIq.Instruction.Reason = reason;
            }

            this.Stream.Write(jingleIq);
        }