use std::net::SocketAddr;
use std::time::Duration;
use std::collections::HashMap;
use rvoip_rtp_core::api::{
server::{ServerConfigBuilder, ServerFactory, transport::MediaTransportServer},
common::extension::ExtensionFormat,
};
use tracing::{info, debug, error};
use tokio::time;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt()
.with_max_level(tracing::Level::DEBUG)
.init();
info!("RTP Header Extensions API Example (Simplified)");
info!("==============================================");
let server_config = ServerConfigBuilder::new()
.local_address("127.0.0.1:9000".parse()?)
.header_extensions_enabled(true) .header_extension_format(ExtensionFormat::OneByte) .build()?;
let server = ServerFactory::create_server(server_config).await?;
server.start().await?;
info!("Server started on {}", server.get_local_address().await?);
server.configure_header_extension(1, "urn:ietf:params:rtp-hdrext:ssrc-audio-level".to_string()).await?;
info!("Configured audio level header extension on server");
let extensions_enabled = server.is_header_extensions_enabled().await?;
info!("Header extensions enabled: {}", extensions_enabled);
info!("Server running, press Ctrl+C to exit...");
time::sleep(Duration::from_secs(5)).await;
info!("Stopping server...");
server.stop().await?;
info!("Test completed.");
Ok(())
}