async fn manage_outgoing<SK: SecretKey, D: Data, A: Data, ND: Dialer<A>>(
    secret_key: SK,
    public_key: SK::PublicKey,
    dialer: ND,
    address: A,
    result_for_parent: UnboundedSender<(SK::PublicKey, Option<UnboundedSender<D>>)>,
    data_for_user: UnboundedSender<D>,
    metrics: Metrics
) -> Result<(), OutgoingError<SK::PublicKey, A, ND>>