// written by Giuseppe Longo <giuseppe@glongo.it>
use crate::jsonbuilder::{JsonBuilder, JsonError};
+use crate::sdp::logger::sdp_log;
use crate::sip::sip::SIPTransaction;
fn log(tx: &SIPTransaction, js: &mut JsonBuilder) -> Result<(), JsonError> {
js.set_string("method", &req.method)?
.set_string("uri", &req.path)?
.set_string("version", &req.version)?;
+
+ if let Some(sdp_body) = &req.body {
+ let _ = sdp_log(sdp_body, js);
+ }
}
if let Some(req_line) = &tx.request_line {
js.set_string("version", &resp.version)?
.set_string("code", &resp.code)?
.set_string("reason", &resp.reason)?;
+ if let Some(sdp_body) = &resp.body {
+ let _ = sdp_log(sdp_body, js);
+ }
}
if let Some(resp_line) = &tx.response_line {
// written by Giuseppe Longo <giuseppe@glongo.it>
+use crate::sdp::parser::{sdp_parse_message, SdpMessage};
use nom7::bytes::streaming::{tag, take, take_while, take_while1};
use nom7::character::streaming::{char, crlf};
use nom7::character::{is_alphabetic, is_alphanumeric, is_digit, is_space};
-use nom7::combinator::map_res;
+use nom7::combinator::{map_res, opt};
use nom7::sequence::delimited;
use nom7::{Err, IResult, Needed};
use std;
pub headers_len: u16,
pub body_offset: u16,
pub body_len: u16,
+ pub body: Option<SdpMessage>,
}
#[derive(Debug)]
pub headers_len: u16,
pub body_offset: u16,
pub body_len: u16,
+ pub body: Option<SdpMessage>,
}
/**
let headers_len = hi.len() - phi.len();
let (bi, _) = crlf(phi)?;
let body_offset = oi.len() - bi.len();
+ let (i, body) = opt(sdp_parse_message)(bi)?;
Ok((
- bi,
+ i,
Request {
method: method.into(),
path: path.into(),
headers_len: headers_len as u16,
body_offset: body_offset as u16,
body_len: bi.len() as u16,
+ body,
},
))
}
let headers_len = hi.len() - phi.len();
let (bi, _) = crlf(phi)?;
let body_offset = oi.len() - bi.len();
+ let (i, body) = opt(sdp_parse_message)(bi)?;
Ok((
- bi,
+ i,
Response {
version,
code: code.into(),
headers_len: headers_len as u16,
body_offset: body_offset as u16,
body_len: bi.len() as u16,
+ body,
},
))
}