aboutsummaryrefslogtreecommitdiff
path: root/examples/server.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-11-19 02:08:52 +0100
committermetamuffin <metamuffin@disroot.org>2024-11-19 02:08:52 +0100
commitcbc111f90b5facc1f2a9dd79ced216279d6260af (patch)
treefa5a1d2d67874413d8e66673825c6789e8cc0945 /examples/server.rs
parent2d9a31244eab6d3a9871369d3148de253e902d36 (diff)
downloadsip-rs-cbc111f90b5facc1f2a9dd79ced216279d6260af.tar
sip-rs-cbc111f90b5facc1f2a9dd79ced216279d6260af.tar.bz2
sip-rs-cbc111f90b5facc1f2a9dd79ced216279d6260af.tar.zst
move files + rtp parser
Diffstat (limited to 'examples/server.rs')
-rw-r--r--examples/server.rs83
1 files changed, 0 insertions, 83 deletions
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: <sip:metatest-0x5e11f89f7900@198.18.1.135:40708>;expires=379;+sip.instance="<urn:uuid:9b2421ef-43ed-3b3b-9181-607ba5c13fb9>"
- Contact: <sip:metatest-0x5e11f89f7900@198.18.1.135:47412>;expires=411
- Contact: <sip:metatest-0x5e11f89f7900@198.18.1.135:52125>;expires=600
- To: <sip:metatest@198.18.0.220>;tag=81756f4e
- From: <sip:metatest@198.18.0.220>;tag=-AK4OkphTFVZv50h
- Call-ID: U3Fyb6vT1BhWxiKG
- CSeq: 1 REGISTER
- User-Agent: AGFEO SIP V3.00.15 n (MAC=00094070069C)
- Content-Length: 0
-*/