Add voice name flow controls and analytics
This commit is contained in:
@@ -394,6 +394,11 @@ def _apply_runtime_schema_compatibility() -> None:
|
||||
_add_column_if_missing(conn, columns, "asterisk_call_links", "ai_state", "VARCHAR(32)")
|
||||
_add_column_if_missing(conn, columns, "asterisk_call_links", "ai_handoff_reason", "TEXT")
|
||||
_add_column_if_missing(conn, columns, "asterisk_call_links", "ai_last_model_at", "VARCHAR(64)")
|
||||
_add_column_if_missing(conn, columns, "asterisk_call_links", "voice_start_language", "VARCHAR(16)")
|
||||
_add_column_if_missing(conn, columns, "asterisk_call_links", "customer_name_status", "VARCHAR(32)")
|
||||
_add_column_if_missing(conn, columns, "asterisk_call_links", "customer_name_value", "VARCHAR(256)")
|
||||
_add_column_if_missing(conn, columns, "asterisk_call_links", "customer_name_source", "VARCHAR(32)")
|
||||
_add_column_if_missing(conn, columns, "asterisk_call_links", "customer_name_resolved_at", "VARCHAR(64)")
|
||||
indexes = _table_indexes(inspector, "asterisk_call_links")
|
||||
if "idx_asterisk_call_links_voice_session_id" not in indexes:
|
||||
conn.execute(
|
||||
@@ -423,15 +428,76 @@ def _apply_runtime_schema_compatibility() -> None:
|
||||
"ON asterisk_call_links(ai_last_model_at)"
|
||||
)
|
||||
)
|
||||
if "idx_asterisk_call_links_voice_start_language" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
"CREATE INDEX IF NOT EXISTS idx_asterisk_call_links_voice_start_language "
|
||||
"ON asterisk_call_links(voice_start_language)"
|
||||
)
|
||||
)
|
||||
if "idx_asterisk_call_links_customer_name_status" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
"CREATE INDEX IF NOT EXISTS idx_asterisk_call_links_customer_name_status "
|
||||
"ON asterisk_call_links(customer_name_status)"
|
||||
)
|
||||
)
|
||||
if "idx_asterisk_call_links_customer_name_source" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
"CREATE INDEX IF NOT EXISTS idx_asterisk_call_links_customer_name_source "
|
||||
"ON asterisk_call_links(customer_name_source)"
|
||||
)
|
||||
)
|
||||
if "idx_asterisk_call_links_customer_name_resolved_at" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
"CREATE INDEX IF NOT EXISTS idx_asterisk_call_links_customer_name_resolved_at "
|
||||
"ON asterisk_call_links(customer_name_resolved_at)"
|
||||
)
|
||||
)
|
||||
|
||||
if "voice_ai_sessions" in table_names:
|
||||
columns = _table_columns(inspector, "voice_ai_sessions")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "voice_start_language", "VARCHAR(16)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "customer_name_status", "VARCHAR(32)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "customer_name_value", "VARCHAR(256)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "customer_name_source", "VARCHAR(32)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "customer_name_resolved_at", "VARCHAR(64)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "media_uuid", "VARCHAR(64)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "media_status", "VARCHAR(32)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "media_connected_at", "VARCHAR(64)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "media_ended_at", "VARCHAR(64)")
|
||||
_add_column_if_missing(conn, columns, "voice_ai_sessions", "last_media_frame_at", "VARCHAR(64)")
|
||||
indexes = _table_indexes(inspector, "voice_ai_sessions")
|
||||
if "idx_voice_ai_sessions_voice_start_language" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
"CREATE INDEX IF NOT EXISTS idx_voice_ai_sessions_voice_start_language "
|
||||
"ON voice_ai_sessions(voice_start_language)"
|
||||
)
|
||||
)
|
||||
if "idx_voice_ai_sessions_customer_name_status" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
"CREATE INDEX IF NOT EXISTS idx_voice_ai_sessions_customer_name_status "
|
||||
"ON voice_ai_sessions(customer_name_status)"
|
||||
)
|
||||
)
|
||||
if "idx_voice_ai_sessions_customer_name_source" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
"CREATE INDEX IF NOT EXISTS idx_voice_ai_sessions_customer_name_source "
|
||||
"ON voice_ai_sessions(customer_name_source)"
|
||||
)
|
||||
)
|
||||
if "idx_voice_ai_sessions_customer_name_resolved_at" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
"CREATE INDEX IF NOT EXISTS idx_voice_ai_sessions_customer_name_resolved_at "
|
||||
"ON voice_ai_sessions(customer_name_resolved_at)"
|
||||
)
|
||||
)
|
||||
if "idx_voice_ai_sessions_media_uuid" not in indexes:
|
||||
conn.execute(
|
||||
text(
|
||||
|
||||
Reference in New Issue
Block a user