public void ForwardCall(SearchTableEntity extension, ForwardingMethod method)
 {
     Manager.ForwardCall(extension.Extension, method);
     Close(true, CloseSource.Self);
 }
Пример #2
0
        /// <summary>
        /// Вызывает команду переадресации, возможно два режима
        /// </summary>
        /// <returns><c>true</c>, если успешно, <c>false</c> неудачно.</returns>
        /// <param name="call_id">Идентетификатор текущего вызова.</param>
        /// <param name="from_extension">Внутренний номер сотрудника ВАТС , который звонит</param>
        /// <param name="to_extension">Внутренний номер сотрудника ВАТС , которому звонят</param>
        /// <param name="method">Метод переадресации , "blind" - слепая перевод , "hold" - консультативный перевод.</param>
        /// <param name="commandId">Не обязательный параметр , обозначающий id комнды (может быть любым , по умолчанию : имя метода)</param>
        public bool ForwardCall(string call_id, string from_extension, string to_extension, ForwardingMethod method, [CallerMemberName] string commandId = "")
        {
            logger.Info($"Выполняем переадресацию на {to_extension}");
            string             command = @"vpbx/commands/transfer";
            ForwardCallRequest options = new ForwardCallRequest();

            options.call_id    = call_id;
            options.command_id = commandId;
            options.method     = method.ToString();
            options.to_number  = to_extension;
            options.initiator  = from_extension;
            string json = JsonConvert.SerializeObject(options, settings);

            var result       = PerformCommand(command, json);
            var successfully = GetSimpleResult(result);

            logger.Info(successfully ? "Ок" : $"Код ошибки: {GetParseResult(result).result}");
            return(successfully);
        }