Expand description
Dialog-Core API Module
This module provides high-level, user-friendly APIs for SIP dialog management. It offers both the legacy split APIs (DialogClient/DialogServer) for backward compatibility and the new unified API (UnifiedDialogApi) that replaces both.
§API Architecture
API Layer
├── unified.rs ← **NEW**: Single API for all scenarios
├── client.rs ← Legacy: Client-specific operations
├── server/ ← Legacy: Server-specific operations
├── common.rs ← Shared: DialogHandle, CallHandle
└── config.rs ← Shared: Configuration types
§Recommended Usage
New projects should use the unified API:
use rvoip_dialog_core::api::unified::UnifiedDialogApi;
use rvoip_dialog_core::config::DialogManagerConfig;
let config = DialogManagerConfig::hybrid("192.168.1.100:5060".parse()?)
.with_from_uri("sip:pbx@company.com")
.with_domain("company.com")
.with_auto_options()
.build();
let api = UnifiedDialogApi::new(transaction_manager, config).await?;
api.start().await?;
// Can handle both incoming and outgoing calls
Existing projects can continue using the split APIs:
use rvoip_dialog_core::api::{DialogClient, DialogServer};
// Client for outgoing calls
let client = DialogClient::new("127.0.0.1:0").await?;
// Server for incoming calls
let server = DialogServer::new("0.0.0.0:5060").await?;
Re-exports§
pub use client::DialogClient;
pub use server::DialogServer;
pub use unified::UnifiedDialogApi;
pub use common::DialogHandle;
pub use common::CallHandle;
pub use common::DialogEvent;
pub use common::CallInfo;
pub use config::ClientConfig;
pub use config::ServerConfig;
pub use config::DialogConfig;
pub use config::Credentials;
Modules§
- client
- Dialog Client API
- common
- Common API Types
- config
- Configuration for Dialog-Core API
- server
- Dialog Server API
- unified
- Unified API for DialogManager
Structs§
- Dialog
Stats - Statistics for dialog API instances
Enums§
- ApiError
- Simplified error type for API consumers
Traits§
- Dialog
Api - Shared trait for all dialog APIs
Type Aliases§
- ApiResult
- High-level result type for API operations