Module api

Source
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

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§

DialogStats
Statistics for dialog API instances

Enums§

ApiError
Simplified error type for API consumers

Traits§

DialogApi
Shared trait for all dialog APIs

Type Aliases§

ApiResult
High-level result type for API operations