<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def outbound_message_filter(f):
 """ Register the decorated function as a service-level outbound message filter. :raise TypeError: if the decorated object is a coroutine function .. seealso:: :class:`StanzaStream` for important remarks regarding the use of stanza filters. """


    if asyncio.iscoroutinefunction(f):
        raise TypeError(
            "outbound_message_filter must not be a coroutine function"
        )

    add_handler_spec(
        f,
        HandlerSpec(
            (_apply_outbound_message_filter, ())
        ),
    )
    return f