mod call;
mod calls;
mod e2e;
mod error;
mod media;
mod p2p;
mod signaling;
use std::time::Instant;
pub use call::{Call, CallEvent, CallState, ParticipantAction};
pub use calls::{CallStatus, Calls, Progress};
pub use e2e::{
incoming_conference_call, migrate_from_p2p, ConferenceCall, ConferenceCalls, ConferenceEvent,
ConferenceInvite, ConferenceState, ConferenceTarget,
};
pub use error::TgCallsError;
pub use media::{
auto_media, auto_media_at, auto_media_at_probed, auto_media_probed, probe_duration, Media,
};
pub use p2p::{P2PCall, P2PCallState, P2PEvent};
pub use signaling::parse_conference_link;
pub use ntgcalls::{
AudioDescription, AuthParams, CallType, ConnectionMode, DeviceInfo, DhConfig, FrameData,
MediaDescription, MediaDevices, MediaSegmentPartStatus, MediaSource, MediaState, NTgCalls,
RTCServer, SsrcGroup, StreamDevice, StreamMode, StreamStatus, StreamType, VideoDescription,
};
pub fn ping_ms() -> Result<f64, TgCallsError> {
let start = Instant::now();
NTgCalls::ping()?;
Ok(start.elapsed().as_secs_f64() * 1000.0)
}