Skip to content

Commit

Permalink
[5.3] MSPB-253: Implement 'Always On, Busy, and No Answer' Call Forwa…
Browse files Browse the repository at this point in the history
…rding Feature

Introduced enhancements to the Call Forwarding feature, integrating 'Always On, Busy, and No Answer' modes and changes to Call Failover.

1. Feature Extension: Expanded Call Forwarding functionality to include 'Always On', 'Busy', and 'No Answer'.

2. Decoupled Call Failover: Segregated 'Call Failover' into an independent feature module, for structural clarity in feature configuration and call management.

3. Object Structure Overhaul and Backward Compatibility: Implemented the new `call_forward` object schema and ensured backward compatibility with legacy/no-strategy structures.

Please refer original/master branch PR #493 for additional information.
  • Loading branch information
ramandeepromana committed Dec 15, 2023
1 parent 45ce262 commit f0da539
Show file tree
Hide file tree
Showing 18 changed files with 1,436 additions and 254 deletions.
1 change: 1 addition & 0 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ define(function(require) {
'strategyHours',
'strategyHolidays',
'users',
'usersCallForwarding',
'vmboxes'
];

Expand Down
70 changes: 56 additions & 14 deletions i18n/de-DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -608,22 +608,64 @@
"successResetPassword": "Vorgang erfolgreich durchgeführt! {{ name }} wird in Kürze eine E-Mail erhalten, in der steht, wie er sein Kennwort zurücksetzen kann."
},
"uploadPicture": "Ein Bild hochladen",
"user": "Benutzer",
"call_forward": {
"failoverMode": "Im Fehlerfall",
"directCallsOnly": "Nur Direktanrufe weiterleiten",
"headline": "Einstellungen zur Weiterleitung von Benutzeranrufen",
"keepCallerId": "Ursprüngliche Anrufer-ID speichern",
"label": "Alle Anrufe weiterleiten an" ,
"placeholder": "+49 123 4567890",
"requireKeyPress": "Sprachnachricht für weitergeleitete Rufnummern hinterlassen",
"callForwarding": {
"title": "Anrufweiterleitung",
"timeoutWarning": "Um Sprachnachrichten für weitergeleitete Rufnummern zu hinterlassen, muss Ihre Rufzeichen-Zeitüberschreitung mindestens 30 Sekunden betragen. Wenn Sie jetzt speichern, werden Sie automatisch in die Benutzereinstellungen weitergeleitet, wo Sie die Rufzeichen-Zeitüberschreitung aktualisieren können.",
"__comment": ": Modus für Failover bei Anrufweiterleitung hinzugefügt",
"__version": "4.0",
"failoverWarning": "Im „Failover-Modus“ haben die Anrufweiterleitungseinstellungen nur dann Geltung, wenn keines der Geräte dieses Benutzers registriert ist.",
"failover_title": "Anrufweiterleitung (Failover-Modus)"
"strategies": {
"off": {
"title": "Aus",
"helpText": "Die Anrufweiterleitung ist deaktiviert und Anrufe werden nicht weitergeleitet."
},
"alwaysOn": {
"title": "Immer aktiv",
"helpText": "Anrufe werden zu einem ausgewählten Ziel weitergeleitet."
},
"busy": {
"title": "Besetzt",
"helpText": "Anrufe werden weitergeleitet, wenn alle Leitungsauftritte belegt sind."
},
"noAnswer": {
"title": "Keine Antwort",
"helpText": "Anrufe werden weitergeleitet, wenn der Anruf auf keinem zugewiesenen Gerät beantwortet wird."
},
"common": {
"voicemail": {
"label": "Voicemail",
"selectLabel": "Ziel Voicemail-Box"
},
"phoneNumber": {
"label": "Telefonnummer",
"inputLabelTo": "Anrufe weiterleiten nach",
"inputLabelFrom": "Anrufe weiterleiten von"
},
"options": {
"title": "Zusätzliche Optionen",
"forward": {
"title": "Nur direkte Anrufe weiterleiten",
"helpText": "Eingehende Anrufe, die auf Klingelgruppen, Warteschlangen usw. abzielen, werden nicht weitergeleitet."
},
"acknowledge": {
"title": "Anruf bestätigen",
"helpText": "Erhalten Sie eine Aufforderung zur Annahme weitergeleiteter Anrufe. Dadurch wird vermieden, dass Voicemails mit der Nummer \"Anrufe weiterleiten nach\" in Verbindung gebracht werden."
},
"keep": {
"title": "Ursprüngliche Anrufer-ID beibehalten",
"helpText": "Die ursprüngliche eingehende Anrufer-ID wird für den weitergeleiteten Anruf verwendet."
},
"ring": {
"title": "Meine anderen Geräte klingeln lassen",
"helpText": "Auch Ihre anderen Geräte klingeln, wenn ein weitergeleiteter Anruf eingeht."
}
}
}
},

"toast": {
"error": {
"save": "Hoppla, es gab ein Problem beim Anwenden Ihrer Änderungen"
}
}
},
"user": "Benutzer",
"callRecording": {
"title": "Angepasste Anrufaufzeichnung",
"headline": "Anpassungen für Anrufaufzeichnung des Benutzers",
Expand Down
74 changes: 63 additions & 11 deletions i18n/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -615,20 +615,72 @@
},
"uploadPicture": "Upload a Picture",
"user": "User",
"call_forward": {
"callForwarding": {
"title": "Call Forwarding",
"strategies": {
"off": {
"title": "Off",
"helpText": "Call Forwarding is disabled and calls will not be forwarded."
},
"alwaysOn": {
"title": "Always On",
"helpText": "Calls will be forwarded to a destination of choice."
},
"busy": {
"title": "Busy",
"helpText": "Calls will be forwarded if all line appearances are busy."
},
"noAnswer": {
"title": "No Answer",
"helpText": "Calls will be forwarded if the call is not answered on any assigned devices."
},
"common": {
"voicemail": {
"label": "Voicemail",
"selectLabel": "Target voicemail box"
},
"phoneNumber": {
"label": "Phone number",
"inputLabelTo": "Forward calls to",
"inputLabelFrom": "Forward calls from"
},
"options": {
"title": "Additional Options",
"forward": {
"title": "Forward direct calls only",
"helpText": "Inbound calls targeting ring groups, queues, etc will not be forwarded."
},
"acknowledge": {
"title": "Acknowledge Call",
"helpText": "Receive a prompt to accept forwarded calls. This prevents voicemails from being associated with the \"Forward To\" number."
},
"keep": {
"title": "Keep initial Caller ID",
"helpText": "The original incoming Caller ID will be used for the forwarded call."
},
"ring": {
"title": "Ring my other devices",
"helpText": "Your other devices will also ring when receiving a forwarded call."
}
}
}
},

"toast": {
"error": {
"save": "Ooops, there was an issue while applying your changes"
}
}
},
"call_failover": {
"failoverMode": "Failover Mode",
"directCallsOnly": "Forward direct calls only",
"headline": "User Call Forwarding Settings",
"directCallsOnly": "Direct calls only",
"headline": "User Call Failover Settings",
"keepCallerId": "Keep Original Caller-ID",
"label": "Forward all calls to" ,
"label": "Forward all calls to",
"placeholder": "+14157283992",
"requireKeyPress": "Leave voicemails on forwarded numbers",
"title": "Call Forwarding",
"timeoutWarning": "In order to leave voicemails on forwarded numbers, your ringing timeout needs to be set to at least 30sec. By saving now, you will automatically be redirected to the user edition where you can update the ringing timeout.",
"__comment": ": Now add a mode for failover for call forward",
"__version": "4.0",
"failoverWarning": "In \"Failover Mode\", the call-forward settings will only apply when none of this user's devices are registered.",
"failover_title": "Call-Forwarding (Failover Mode)"
"requireKeyPress": "Require pressing 1 to accept the call",
"title": "Failover Mode"
},
"callRecording": {
"title": "Customized Call Recording",
Expand Down
66 changes: 56 additions & 10 deletions i18n/es-ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -500,15 +500,62 @@
},
"uploadPicture": "Cargar una imagen",
"user": "Usuario",
"call_forward": {
"directCallsOnly": "Desvia llamadas directas sólamente",
"headline": "Configuración de Desvío de llamadas del usuario",
"keepCallerId": "Mantener su identificador de llamadas",
"label": "Desenvíar todas las llamadas a",
"placeholder": "+14157283992",
"requireKeyPress": "Deja mensajes de voz en números desvíados ",
"title": "Desvío de llamadas",
"timeoutWarning": "Para dejar mensajes de voz en números desvíados, su tiempo de espera de llamada debe ser ajustado a menos de 30 seg. Salvando ahora, será automáticamente desviado a la edición del usuario donde puede actualizar el intervalo de espera que suena."
"callForwarding": {
"title": "Desvío de Llamadas",
"strategies": {
"off": {
"title": "Apagar",
"helpText": "El desvío de llamadas está desactivado y las llamadas no serán desviadas."
},
"alwaysOn": {
"title": "Siempre Activo",
"helpText": "Las llamadas serán desviadas a un destino de elección."
},
"busy": {
"title": "Ocupado",
"helpText": "Las llamadas serán desviadas si todas las apariencias de línea están ocupadas."
},
"noAnswer": {
"title": "Sin Respuesta",
"helpText": "Las llamadas serán desviadas si la llamada no es contestada en ninguno de los dispositivos asignados."
},
"common": {
"voicemail": {
"label": "Correo de voz",
"selectLabel": "Seleccionar buzón de voz de destino"
},
"phoneNumber": {
"label": "Número de teléfono",
"inputLabelTo": "Desviar llamadas a",
"inputLabelFrom": "Desviar llamadas desde"
},
"options": {
"title": "Opciones adicionales",
"forward": {
"title": "Desviar solo llamadas directas",
"helpText": "Las llamadas entrantes dirigidas a grupos de timbre, colas, etc. no serán desviadas."
},
"acknowledge": {
"title": "Reconocer llamada",
"helpText": "Reciba un aviso para aceptar llamadas desviadas. Esto evita que los mensajes de voz se asocien con el número \"Desviar a\"."
},
"keep": {
"title": "Conservar identificación de llamada inicial",
"helpText": "Se utilizará la identificación de llamada entrante original para la llamada desviada."
},
"ring": {
"title": "Sonar en mis otros dispositivos",
"helpText": "Tus otros dispositivos también sonarán al recibir una llamada desviada."
}
}
}
},

"toast": {
"error": {
"save": "Ups, hubo un problema al aplicar tus cambios"
}
}
},
"callRecording": {
"title": "Grabación de llamadas entrantes",
Expand Down Expand Up @@ -556,7 +603,6 @@
"placeholder": "Número de destino "
}
},

"googlePrinter": {
"title": "Impresora de Google",
"text1": "seleccionar ",
Expand Down
65 changes: 56 additions & 9 deletions i18n/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -474,15 +474,62 @@
},
"uploadPicture": "Uploader une image",
"user": "Utilisateur",
"call_forward": {
"directCallsOnly": "Seulement transférer les appels direct",
"headline": "Réglages du transfert d'appel",
"keepCallerId": "Garder le Caller-ID",
"label": "Transférer tous les appels vers",
"placeholder": "+14157283992",
"requireKeyPress": "Laisser message sur le répondeur du numéro transferé",
"title": "Transfert d'appels",
"timeoutWarning": "Afin de pouvoir laisser un message sur le répondeur du numéro transferé, la durée de sonnerie de l'utilisateur doit être d'au moins 30sec. En cliquant sur le bouton \"Sauvegarder\", vous serez automatiquement redirigé vers l'édition d'utilisateur où vous pourrez modifier la durée de sonnerie."
"callForwarding": {
"title": "Transfert d'appel",
"strategies": {
"off": {
"title": "Désactivé",
"helpText": "Le transfert d'appel est désactivé et les appels ne seront pas redirigés."
},
"alwaysOn": {
"title": "Toujours actif",
"helpText": "Les appels seront redirigés vers une destination de choix."
},
"busy": {
"title": "Occupé",
"helpText": "Les appels seront redirigés si toutes les apparences de ligne sont occupées."
},
"noAnswer": {
"title": "Pas de réponse",
"helpText": "Les appels seront redirigés si l'appel n'est pas répondu sur tous les appareils assignés."
},
"common": {
"voicemail": {
"label": "Messagerie vocale",
"selectLabel": "Boîte vocale cible"
},
"phoneNumber": {
"label": "Numéro de téléphone",
"inputLabelTo": "Rediriger les appels vers",
"inputLabelFrom": "Rediriger les appels depuis"
},
"options": {
"title": "Options supplémentaires",
"forward": {
"title": "Rediriger uniquement les appels directs",
"helpText": "Les appels entrants ciblant des groupes de sonnerie, des files d'attente, etc. ne seront pas redirigés."
},
"acknowledge": {
"title": "Reconnaître l'appel",
"helpText": "Recevez une invite pour accepter les appels redirigés. Cela évite que les messages vocaux soient associés au numéro de \"Rediriger vers\"."
},
"keep": {
"title": "Conserver l'identifiant de l'appelant initial",
"helpText": "L'identifiant d'appel entrant original sera utilisé pour l'appel redirigé."
},
"ring": {
"title": "Faire sonner mes autres appareils",
"helpText": "Vos autres appareils sonneront également lors de la réception d'un appel redirigé."
}
}
}
},

"toast": {
"error": {
"save": "Oups, il y a eu un problème lors de l'application de vos modifications"
}
}
},
"callRecording": {
"title": "Enregistrement d'appel entrant",
Expand Down
69 changes: 57 additions & 12 deletions i18n/ru-RU.json
Original file line number Diff line number Diff line change
Expand Up @@ -470,19 +470,64 @@
"successResetPassword": "Успешно! {{ name }} скоро получит сообщение по электронной почте как сбросить пароль."
},
"uploadPicture": "Загрузка картинки",
"user": "Пользователь",
"call_forward": {
"directCallsOnly": "Переводить только прямые вызовы",
"headline": "Настройка переадресации вызовов",
"keepCallerId": "Сохранить ваш АОН",
"label": "Перевести все вызовы" ,
"placeholder": "+74157283992",
"requireKeyPress": "Оставить голосовые сообщения на переадресованных номерах",
"title": "Переадресация вызовов",
"timeoutWarning": "Для перевода голосовых сообщений на переадресуемые номера, вы должны установить ограничение времени вызова не менее 30 сек. Для экономии времени, вы будете автоматически перенаправлены в меню редактирования пользователя, где вы сможете изменить время ограничения вызова.",
"failoverWarning": "\"Запасной вариант\" переадресации будет ипользован когда ни одного устройства пользователя не зарегистрировано.",
"failover_title": "Запасной вариант переадресация"
"callForwarding": {
"title": "Переадресация звонков",
"strategies": {
"off": {
"title": "Выключено",
"helpText": "Переадресация звонков отключена, и звонки не будут переадресованы."
},
"alwaysOn": {
"title": "Всегда включено",
"helpText": "Звонки будут переадресованы на выбранное направление."
},
"busy": {
"title": "Занято",
"helpText": "Звонки будут переадресованы, если все линии заняты."
},
"noAnswer": {
"title": "Нет ответа",
"helpText": "Звонки будут переадресованы, если звонок не будет принят на каких-либо назначенных устройствах."
},
"common": {
"voicemail": {
"label": "Голосовая почта",
"selectLabel": "Целевой ящик голосовой почты"
},
"phoneNumber": {
"label": "Номер телефона",
"inputLabelTo": "Переадресовать звонки на",
"inputLabelFrom": "Переадресовать звонки от"
},
"options": {
"title": "Дополнительные параметры",
"forward": {
"title": "Переадресовать только прямые звонки",
"helpText": "Входящие звонки, направленные на группы звонков, очереди и т. д., не будут переадресованы."
},
"acknowledge": {
"title": "Подтверждение звонка",
"helpText": "Получите предложение принять переадресованные звонки. Это предотвращает связывание голосовых сообщений с номером \"Переадресовать на\"."
},
"keep": {
"title": "Сохранить начальный идентификатор вызывающего",
"helpText": "Оригинальный входящий идентификатор вызывающего будет использоваться для переадресованного вызова."
},
"ring": {
"title": "Звонить на мои другие устройства",
"helpText": "Ваши другие устройства также будут звонить при получении переадресованного звонка."
}
}
}
},

"toast": {
"error": {
"save": "Упс, возникла проблема при применении ваших изменений"
}
}
},
"user": "Пользователь",
"callRecording": {
"title": "Запись входящих разговоров",
"headline": "Настройки записи разговоров",
Expand Down
Loading

0 comments on commit f0da539

Please sign in to comment.