fix(proxy-engine): respect explicit inbound route targets and store voicemail in the configured mailbox

This commit is contained in:
2026-04-14 18:58:48 +00:00
parent 89ae12318e
commit 30d056f376
8 changed files with 94 additions and 15 deletions

View File

@@ -373,12 +373,14 @@ pub struct OutboundRouteResult {
/// Result of resolving an inbound route.
//
// `device_ids` and `ring_browsers` are consumed by create_inbound_call.
// `device_ids`, `ring_all_devices`, and `ring_browsers` are consumed by
// create_inbound_call.
// The remaining fields (voicemail_box, ivr_menu_id, no_answer_timeout)
// are resolved but not yet acted upon — see the multi-target TODO.
#[allow(dead_code)]
pub struct InboundRouteResult {
pub device_ids: Vec<String>,
pub ring_all_devices: bool,
pub ring_browsers: bool,
pub voicemail_box: Option<String>,
pub ivr_menu_id: Option<String>,
@@ -485,8 +487,10 @@ impl AppConfig {
continue;
}
let explicit_targets = route.action.targets.clone();
return Some(InboundRouteResult {
device_ids: route.action.targets.clone().unwrap_or_default(),
device_ids: explicit_targets.clone().unwrap_or_default(),
ring_all_devices: explicit_targets.is_none(),
ring_browsers: route.action.ring_browsers.unwrap_or(false),
voicemail_box: route.action.voicemail_box.clone(),
ivr_menu_id: route.action.ivr_menu_id.clone(),