How to put call OnHold

Home » Asterisk Users » How to put call OnHold
Asterisk Users 5 Comments


Maybe I am missing something or am a little blind at the moment, but I
didn’t find out how asterisk can place a call on hold when acting as user
agent client to another SIP server.


5 thoughts on - How to put call OnHold

  • Hi,

    yes, please see MusicOnHold() Application. You can call this app in your
    dialplan. This however will use the default music class and the
    corresponding music files placed in the asterisk server. If you don’t want
    to stream music from Asterisk server side, try creating a new MusiconHold
    Class without any proper directory. That way Asterisk would only complain
    that there is no file to be streamed.


  • Hi!

    Many thanks for this hint. I will try this! 🙂

    A quick question: when doing this with “MusicOnHold()”: will the SIP
    server be aware that the call is placed onHold (i.e. will Asterisk
    send the mentioned re-INVITE)?

    The point is – if possible – we want the caller to hear the OnHold
    Music from the SIP server. If not we would have to copy the MoH to our
    Asterisk (and change it on our side too, when it changes at the

  • Hey,
    I have never worried about looking at the SIP re-invites or anything when
    we engage MoH() application in asterisk. You can do a quick test on your
    test machine for this.


  • Thanks for your hint, but unfortunately this does not result in the
    behaviour I am looking for. When I start “MusicOnHold” Asterisk
    streams the OnHold music itself, even if I specifiy an invalid MoH
    class or one without files.

    What I was looking for is a way to send a re-INVITE to its upstream
    SIP provider to inform it that the call should be placed on hold,
    exactly as described in the example in Section 2.1 of RFC 5359

    Does anyone know how to do this from Asterisk dialplan? Any ideas are
    appreciated! 🙂

    Greetings from a snowy Vienna,
    John 🙂

    2012/1/16 Johannes Zweng :