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

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


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

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

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

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

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

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

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

 

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

Ссылка на сообщение
  • 1 year later...

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

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

 

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

 

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

 

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

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

Изменено пользователем Kemhost
Ссылка на сообщение

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

 

 

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

 

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

 

 

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

 

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

Ссылка на сообщение
  • 7 months later...

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

 

Спасибо

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

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

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

 

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

Ссылка на сообщение
  • 5 months later...

Доброго )

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

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

Ссылка на сообщение
  • 2 months later...

Всем привет.

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

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

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

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

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

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

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

Ссылка на сообщение
  • 1 month later...

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 не может быть для бизнесменов.

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

Ссылка на сообщение
  • 6 months later...

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

Подробное описание как с ним работать опубликовано у нас в блоге: https://zadarma.com/ru/blog/multi-ivr-api/

Ссылка на сообщение
17.03.2021 в 01:13, Igor сказал:

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

Подробное описание как с ним работать опубликовано у нас в блоге: https://zadarma.com/ru/blog/multi-ivr-api/

Спасибо, что не забываете эту тему ?

Осталось дождаться возможности настройки и во внутреннем интерфейсе Задарма, для тех, кто не знает php и не имеет своего сервера ?

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

Осталось дождаться возможности настройки и во внутреннем интерфейсе Задарма, для тех, кто не знает php и не имеет своего сервера ?

 
  •  

Это скоро будет, но не сделает данный скрипт бесполезным, так как с его помощью каждый может крайне легко интегрировать АТС в свою систему (имея крайне ограниченный опыт в программировании).

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

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

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

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

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

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

Войти

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

Войти сейчас
×
×
  • Создать...