pub mod bridge;
pub mod channel;
pub mod conference;
pub mod endpoint;
pub mod execute_on;
pub mod flattened;
pub mod originate;
pub mod variables;
#[cfg(all(test, feature = "serde"))]
mod proptests;
pub use bridge::{BridgeDialString, BridgeDialStringDisplay};
pub use channel::{
UuidAnswer, UuidBridge, UuidDeflect, UuidGetVar, UuidHold, UuidKill, UuidSendDtmf, UuidSetVar,
UuidTransfer,
};
pub use conference::{
ConferenceDtmf, ConferenceHold, ConferenceMute, HoldAction, MuteAction, ParseHoldActionError,
ParseMuteActionError,
};
pub use endpoint::{
AudioEndpoint, DestinationEncoding, DialString, EndpointDisplay, EndpointFieldFault,
ErrorEndpoint, GroupCall, GroupCallOrder, LoopbackEndpoint, ParseGroupCallOrderError,
SofiaContact, SofiaEndpoint, SofiaGateway, UserEndpoint,
};
pub use execute_on::{ExecuteOn, ExecuteOnFault};
pub use flattened::{
CauseReading, ErrorLeg, FlattenedDialString, FlattenedDialStringDisplay,
FlattenedDialStringError, FlattenedGroup, FlattenedLeg, FlattenedThread, LegTarget, LegWarning,
ListWarning, UnparsedLeg,
};
pub use originate::{
Application, DialplanType, Endpoint, Originate, OriginateDisplay, OriginateError,
OriginateTarget, ParseDialplanTypeError, Variables, VariablesType,
};
pub use variables::{
BlockParse, DialStringCarrier, DialStringTarget, InvalidArgvSeparator, ParseBlockParseError,
UnvouchedVersion, VariablesDisplay,
};
use crate::switch_passes::api_argument::{self, clean_argument, split_line};
use crate::switch_passes::originate_function;
pub fn originate_quote(token: &str) -> String {
api_argument::originate_quote(token)
}
pub fn quote_for_uuid_setvar(value: &str) -> String {
api_argument::quote_for_uuid_setvar(value)
}
pub fn originate_unquote(token: &str) -> String {
clean_argument(token, None)
}
pub fn originate_split(line: &str, split_at: char) -> Result<Vec<String>, OriginateError> {
Ok(split_line(line, split_at)?
.arguments
.into_iter()
.map(|argument| line[argument.raw].to_string())
.collect())
}
pub fn parse_originate_target(
s: &str,
dialplan: Option<&DialplanType>,
) -> Result<OriginateTarget, OriginateError> {
originate_function::parse_originate_target(s, dialplan)
}