Перейти к публикации
Shagrid

Многоуровневое Меню

Рекомендованные сообщения

Здравствуйте.

В далёком 2013 году на форуме писалось, что разработка многоуровневого меню есть в планах.

Подскажите пожалуйста, начались ли работы в этом направлении? 

Поделиться сообщением


Ссылка на сообщение

На текущий момент не обнаружили значительного спроса на такую услугу, потому она не в первом списке.

В будущем будет но когда сказать не смогу, так как есть более востребованные услуги.

 

Например, значительно более востребована была АТС с несколькими меню, это сделали весной 2017.

Поделиться сообщением


Ссылка на сообщение

Этот функционал не планируется? Очень удобно посадить на кнопку, проговаривание адреса и/или режима работы. Это бы разгрузило оператора.

Поделиться сообщением


Ссылка на сообщение

На сегодня этот функционал уже доступен при работе через API.

Там можно хоть вообще электронного оператора сделать :)

Поделиться сообщением


Ссылка на сообщение

На сегодня этот функционал уже доступен при работе через API.

Там можно хоть вообще электронного оператора сделать :)

 

Безусловно круто что Вы наконец это сделали, но для полноты картины, не хватает 2х очень важных функций, которые реализовать очень не сложно.

 

1) Возврат клиента на ivr меню, уже после того как он поговорил с оператором. Например для перевода его на сценарий оценки консультации, или выполнения скрипта установки pin кода для пользователя, вариантов много. Оператор жмет *что-то*номер-сценария#. Соответственно на сервер отправляет NOTIFY_IVR с указанным номером сценария, и управление звонком перехватывает бот.

 

2) Возможность управлять IVR файлами напрямую со стороны сервера, в момент звонка отправляя нужный файл (ссылкой, или бинарными данными в ответ на IVR_NOTIFY).На сервере TTS генерирует поток ответа, и передает напрямую клиенту. С этой функцией появляется возможность реализовывать по настоящему сложные и многоуровневые ivr меню, с динамически генерируемыми ответами напрямую сервером. 

Например, приветствие клиента по ИО, предоставление клиенту какой то важной информации из биллинга, будь то данные по последней операции, логи входов, опять же, вариантов очень много.

Изменено пользователем Kemhost

Поделиться сообщением


Ссылка на сообщение

Спасибо за отзыв.

 

 

1) Возврат клиента на ivr меню, уже после того как он поговорил с оператором.

 

Думаем реализовать трансфер на IVR. То есть после разговора или в середине разговора можно будет нажать например #999# и звонок уйдет к роботу.

 

 

2) Возможность управлять IVR файлами напрямую со стороны сервера, в момент звонка отправляя нужный файл

 

Это технически весьма проблематично для большого облака. Скорее реализуем автоматическую начитку "на лету", если будет спрос.

Поделиться сообщением


Ссылка на сообщение

А можно сделать перевод с одного меню на другое? Например у меня есть два меню, одно на русском, другое на английском. Могу ли например сделать так, чтобы нажатием на кнопку 9 разговор переходил на меню на английском языке?

 

Спасибо

Поделиться сообщением


Ссылка на сообщение

Такое пока можно только через API.

В будущем будет больше возможностей, надеюсь скором будущем.

 

В API вы сами решаете какой текст проговаривать и куда слать звонок после какой цифры.

Поделиться сообщением


Ссылка на сообщение

Доброго времени суток:)

Хотелось бы узнать, есть ли продвижение в данной теме?

 

Спасибо 

Поделиться сообщением


Ссылка на сообщение

Доброго )

В этом году думаю будет, надеюсь очень скоро.

АТС не стоит на месте и как видите дополнительные внешние линии уже добавили. Есть еще много планов.

Поделиться сообщением


Ссылка на сообщение

Всем привет.

Мне для своего бизнеса нужно 3 уровневое меню IVR. Но настройка с помощью API для меня сравнима с освоением китайской грамоты без учебника.  КТо-нибудь мог бы помочь произвести настройку за оплату?

Предложения прошу писать в личку

Поделиться сообщением


Ссылка на сообщение

Вы можете привлечь любого программиста который вам напишет простой скрипт логики API.

А если он пишет на PHP то может просто взять один из наших примеров и переделать под вас:

https://zadarma.com/ru/blog/ivr-webhook/

По моему третий пример ближе всего к тому что вам нужно (там бесконечное меню).

Поделиться сообщением


Ссылка на сообщение

Igor,

Я уже месяц пытаюсь наладить IVR через API  и ничего не выходит.   Уже привлек 3 программистов и ни один из них не сумел. Потратил 5 тыс рублей. Документация и инструкция  либо содержат пробелы либо этот функционал просто не работоспособен.

Служба поддержки мягко "посылает"

Докажите мне что многоуровневый IVR возможен.    Напишите мне в личку имя того кто это хоть раз проделал на вашем бесплатно-сервисе.

Поделиться сообщением


Ссылка на сообщение

Работоспособность функционала не сложно проверить на примере из гитхаба. Ссылка на пример указана в статье и вот она еще раз: https://github.com/zadarma/user-api-v1/blob/master/examples/webhook.php

 

Похоже никто из фрилансеров что вы привлекли не захотел разбираться как работает телефония, увы писать код за клиента мы не можем, можем только давать примеры.

Перед началом разработки нужнонастроить атс (сценарии должны быть, записи для воспроизведения также) и повернуть на ваш сервер вебхуки.

Из вебхуков нужно по сути два

  • NOTIFY_START
    начало входящего звонка в АТС.
  • NOTIFY_IVR

Работа с меню тоже простая: Получили start, сказали "проиграть приветствие ждать цифры" ("ivr_play" и "wait_dtmf"), получили цифры, дальше или на сценарий направляете (redirect) или вновь прокрутить приветствие ("ivr_play" и "wait_dtmf"), это и есть уже следующий уровень, так хоть до бесконечности.

 

Два вебхука по 3 параметра, не считаю что адски сложно. Как можете увидеть из описания API это малый процент от всего функционала что есть.

P.S.: все что я написал уже описано в статье.. вопросов по факту к поддержке я увы не увидел (в заявках был вопрос как сделать голосовое меню, вам ответили через API  🙂 )

 

Поделиться сообщением


Ссылка на сообщение

А можете подсказать что именно вам нужно? Быть может это и не совсем многоуровневое меню и вообще api не нужно.

Так как сейчас в вашем аккаунте не настроено ни одного действительно рабочего меню (настроен только один сценарий и в нем только один внутренний номер, то есть клиенту при звонке выбирать особо нечего 🙂 ).

Поделиться сообщением


Ссылка на сообщение

Igor, 

спасибо за информацию, в настоящий момент я не могу удостоверится доходят ли вызовы  до моего вебхука.  Ваши коллеги говорят что скорее всего хук некорректный. Не более того.   

Сам сценарий - во вложении. Хук ниже.

Очень жаль что сервис и документация по нему преподносится как игрушка для не ленивых программистов (большинство из них оказывается не хотят разбираться), а не для безнесменов. 

 

if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']);

use Zadarma_API\Api;
use Zadarma_API\Webhook\AbstractNotify;
use Zadarma_API\Webhook\NotifyIvr;
use Zadarma_API\Webhook\NotifyStart;
use Zadarma_API\Webhook\Request;


define('KEY', '177e579a06b4557e0118');
define('SECRET', '18ced67cb9f140f726d2');

class WebhookExample {
    private static $api = null;

    const INFO_FILE_ID = '199a520c8b81c207';
    const WRONG_INPUT_FILE_ID = '199a520c8b81c2071';

    const DTMF_NAME_2 = 'date';
    const DTMF_NAME_3 = 'menu';

    public static $menu = [
        'file' => '1f5240a2c672ddb6',
        1 => [
            'file' => '1f5240a2c672ddb6',
            1 => [
                'file' => '199a520c8b81c207',
                1 => [
                    'file' => '199a520c8b81c207',
                ],
            ],
            2 => [
                'file' => '199a520c8b81c207',
            ],
        ],
        2 => [
            'file' => '50979aa4feffcf90',
        ],
    ];

    public static function example3()
    {
        $request = new Request();
        /** @var NotifyIvr $notify */

        if ($notify = self::getEvent([AbstractNotify::EVENT_START])) {
            $request
                ->setIvrPlay(self::$menu['file'])
                ->setWaitDtmf(5, 1, 1, self::DTMF_NAME_3, 'hangup')
                ->send();
            return;
        }

        $notify = self::getEvent([AbstractNotify::EVENT_IVR]);
        if (!empty($notify->wait_dtmf->digits) && mb_strpos($notify->wait_dtmf->name, self::DTMF_NAME_3) === 0) {
            $menu = mb_substr($notify->wait_dtmf->name, mb_strlen(self::DTMF_NAME_3));

            switch ($notify->wait_dtmf->digits){
                case 1:
                case 2:
                case 3:
                    $menu .= $notify->wait_dtmf->digits;
                    break;

                case 4:
                    if ($menu) {
                        $menu = mb_substr($menu, 0, mb_strlen($menu) - 1);
                    }
                    break;

                case 5:
                default:
                    $request->setHangup()->send();
                    return;
            }

            list($menu, $file) = self::getMenuFile($menu);
            $request
                ->setIvrPlay($file)
                ->setWaitDtmf(5, 1, 1, self::DTMF_NAME_3.$menu, 'hangup')
                ->send();
        }
    }

    private static function getEvent($allowedTypes)
    {
        if (self::$api === null) {
            self::$api = new Api(KEY, SECRET, true);
        }
        return self::$api->getWebhookEvent($allowedTypes);
    }

    private static function getMenuFile($menuDigits)
    {
        $menuDigits = (string)$menuDigits;
        $menuDigitsResult = '';
        $menu = self::$menu;
        while ($menuDigits) {
            $currentDigit = mb_substr($menuDigits, 0, 1);
            $menuDigits = mb_substr($menuDigits, 1);
            if (isset($menu[$currentDigit])) {
                $menu = $menu[$currentDigit];
                $menuDigitsResult .= $currentDigit;
            } else {
                break;
            }
        }
        return [$menuDigitsResult, $menu['file']];
    }
}

WebhookExample::example3();

 

Script.JPG

Поделиться сообщением


Ссылка на сообщение

Бизнесмен не должен писать код. API не может быть для бизнесменов.

Узнать доходят вебхуки или нет на самом деле крайне просто: попросите ваших программистов чтобы ваш скрипт сохранял логи о всех действиях, и все.

Сможете посмотреть когда и что мы вам передаем, что вы отвечаете.

Извиняюсь, но разбираться и править ваш код я не успею физически, ну и это не моя работа.

Поделиться сообщением


Ссылка на сообщение

А есть шанс ещё увидеть эту функцию в интерфейсе Задарма? Или это так и будет на уровне API?

Поделиться сообщением


Ссылка на сообщение

Igorб согласен с вами и разделяю с вами чувство занятости и отвращение выполнять чужую работу. Однако ваш сервис - коммерческая организация, не смотря на название. Я ваш клиент, неужели Вы не можете переадресовать мой пост более свободному специалисту, который поможет всей команде Zadarma удержать меня как клиента? Убежден , что если я уйду от вас в манго офис (а они почему то очень уверены что мой тест с IVR задарма не увенчается успехом), по причине неадекватного сервиса, функционала и поддержки, то уйдут еще пару десятков клиентов, прочитавших этот и последующие посты.  Сделайте же меня счастливым клиентом Zadarma ! Заработайте на мне немного денег!  

Поделиться сообщением


Ссылка на сообщение
12 часов назад, dima_vy сказал:

А есть шанс ещё увидеть эту функцию в интерфейсе Задарма? Или это так и будет на уровне API?

Будет и в интерфейсе, но позже.

 

10 часов назад, elephantbull сказал:

Вы не можете переадресовать мой пост более свободному специалисту, который поможет всей команде Zadarma удержать меня как клиента?

К сожалению мы не аутсорсинговая компания и у нас нет функций написания кода для клиентов.

Мы поддерживаем разработчиков кто с нами интегрируется, предоставляем документацию и отвечаем на детальные вопросы.

10 часов назад, elephantbull сказал:

по причине неадекватного сервиса, функционала и поддержки, то уйдут еще пару десятков клиентов, прочитавших этот и последующие посты

Пожалуйста воздержитесь от угроз, это нарушает правила форума.

У Zadarma есть перечень услуг которые мы предоставляем. Других у нас нет.

Я вам несколько раз сделал рекомендации как проверить работу с вебхуками, похоже вы им не последовали. В личном кабинете у вас нет ни одного вопроса с ошибками вроде "делаем так и так получается это а нам нужно другое" и с логами работы.  На общий вопрос вам дали общий ответ.

Мы не можем помочь клиенту, который не задает конкретного вопроса а просит "сделайте мне хорошо" а потом начинает ругать сервис, или угрожать.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...