From cbc111f90b5facc1f2a9dd79ced216279d6260af Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 19 Nov 2024 02:08:52 +0100 Subject: move files + rtp parser --- examples/server.rs | 83 ------------------------------------------------------ 1 file changed, 83 deletions(-) delete mode 100644 examples/server.rs (limited to 'examples/server.rs') diff --git a/examples/server.rs b/examples/server.rs deleted file mode 100644 index 02c06b4..0000000 --- a/examples/server.rs +++ /dev/null @@ -1,83 +0,0 @@ -use anyhow::Result; -use log::{info, warn}; -use sip::{ - encoding::{ - headermap::HeaderMap, - headers::{Contact, From, To, UserAgent, Via}, - method::Method, - response::Response, - status::Status, - }, - transaction::TransactionUser, - transport::tcp::TcpTransport, -}; -use std::net::SocketAddr; -use tokio::{ - net::{TcpListener, TcpStream}, - spawn, -}; - -#[tokio::main] -async fn main() -> Result<()> { - env_logger::init_from_env("LOG"); - let listener = TcpListener::bind("0.0.0.0:5060").await?; - info!("tcp listener bound to {}", listener.local_addr().unwrap()); - - loop { - let (stream, addr) = listener.accept().await?; - info!("connect {addr}"); - - spawn(async move { - if let Err(e) = handle_client(stream, addr).await { - warn!("client error: {e}") - } - info!("disconnect {addr}") - }); - } -} - -async fn handle_client(stream: TcpStream, addr: SocketAddr) -> Result<()> { - let transport = TcpTransport::new(stream).await?; - let tu = TransactionUser::new(transport); - loop { - let req = tu.process_incoming().await?; - - if req.method == Method::Register { - let from: From = req.headers.get_res()?; - let to: To = req.headers.get_res()?; - let via: Via = req.headers.get_res()?; - let contact: Contact = req.headers.get_res()?; - info!("Registered {}", contact.uri.localpart.as_ref().unwrap()); - - tu.respond( - &req, - Response { - status: Status::Ok, - headers: HeaderMap::new() - .add(contact) - .add(via) - .add(to) - .add(from) - .add(UserAgent("siptest v0.1.0".to_string())), - body: String::new(), - }, - ) - .await?; - } - if req.method == Method::Invite {} - } -} - -/* -[2024-07-05T22:22:40Z DEBUG sip::transport::udp] SIP/2.0 200 OK - Via: SIP/2.0/UDP 198.18.1.135:52125;branch=Uz7r7ysvrS91q9j9;rport=52125 - Contact: ;expires=379;+sip.instance="" - Contact: ;expires=411 - Contact: ;expires=600 - To: ;tag=81756f4e - From: ;tag=-AK4OkphTFVZv50h - Call-ID: U3Fyb6vT1BhWxiKG - CSeq: 1 REGISTER - User-Agent: AGFEO SIP V3.00.15 n (MAC=00094070069C) - Content-Length: 0 -*/ -- cgit v1.2.3-70-g09d2