иметь адрес и контактный номер. Телефон нужен, чтобы общаться с внешним миром. Люди всё еще любят звонить по телефону. Есть офис в США: любят, когда можно услышать живого человека. Есть офис в Японии: очень «традиционное» общение, телефон важен.
HTTP-запроса к твоему серверу. • Ответ нужно сформировать в XML-формате. • Входящий звонок приходит как обычный объект в JS callback. • Как и что отвечать — решает скрипт на JS, выполняемый в облаке. Решение с вебхуками: VoxImplant:
Запись сообщения, если никто не ответил. Каждому менеджеру можно позвонить по его добавочному номеру. Во время разговора звонок можно перенаправить другому менеджеру. Также можно добавить в звонок еще одного собеседника (создать конференцию).
с первым, кто ответил. function callFirstAvailable() { let manager = Schedule.next(); let outgoing = VoxEngine.callPSTN(manager.number, incoming.callerid()); outgoing.addEventListener(CallEvents.Connected, e => { VoxEngine.sendMediaBetween(incoming, outgoing); }); outgoing.addEventListener(CallEvents.Failed, e => { callFirstAvailable(); // recursion lol }); }
по email и SMS. 2. Провайдеры для отправки Email/SMS могут быть любыми! outgoing.addEventListener(CallEvents.Failed, e => { if (schedule.nonEmpty()) { callFirstAvailable() } else { incoming.record(); incoming.addEventListener(CallEvents.RecordStopped, e => { notifySms(incoming.callerid(), e.url); notifyEmail(incoming.callerid(), e.url); }); } });
свой инстанс приложения. У каждого приложения одна и та же кодовая база, но разная конфигурация. Становится тяжело поддерживать настройку набора сценариев для каждого приложения.