1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! Outbound builder surface — SIP_API_DESIGN_2 §3.3.
//!
//! One builder per outbound SIP method, every one implementing
//! [`SipRequestOptions`](crate::api::headers::SipRequestOptions). Each
//! builder is reachable from
//! [`UnifiedCoordinator`](crate::api::unified::UnifiedCoordinator) (and
//! through the [`Surface`] adapter from the other three surfaces) by a
//! verb-named entry point:
//!
//! ```text
//! coord.invite(from, to).with_auth(auth).send().await
//! coord.register(reg, user, pw).with_expires(3600).send().await
//! coord.refer(&sess, target).with_replaces(rep).send().await
//! ```
//!
//! In-dialog builders (`bye`, `cancel`, `refer`, `notify`, `info`,
//! `update`, `reinvite`) are also reachable directly on a
//! [`SessionHandle`](crate::api::handle::SessionHandle) returned from
//! `invite().send().await` / `accept().await`:
//!
//! ```text
//! session.refer(target).with_replaces(rep).send().await
//! session.bye().with_reason(reason).send().await
//! session.info("application/dtmf-relay").with_body(dtmf).send().await
//! ```
//!
//! Every `.send()` consumes the builder. Header staging goes through
//! the shared `BuilderHeaderState` so header-policy enforcement
//! behaves identically across builders.
pub use ByeBuilder;
pub use CancelBuilder;
pub use InfoBuilder;
pub use MessageBuilder;
pub use NotifyBuilder;
pub use OptionsBuilder;
pub use ;
pub use ReferBuilder;
pub use ;
pub use ReInviteBuilder;
pub use ;
pub use ;
pub use UpdateBuilder;