Details

    • Type: New Feature New Feature
    • Status: Closed
    • Severity: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Target Release Version/s: None
    • Component/s: Applications/app_dial
    • Labels:
      None
    • Mantis ID:
      3313
    • Regression:
      No

      Description

      This application adds RetryDial to app_dial.c.
      The functionaliy can be summerized by the Documentation system in asterisk.

      *CLI> show application RetryDial

      = Info about application 'RetryDial' =

      [Synopsis]:
      Place a call, retrying on failure allowing optional exit extension.

      [Description]:
      RetryDial(announce[|context][|sleep][|loops]:Technology/resource[&Technology2/resource2...][|timeout][|options][|URL]):
      Attempt to place a call. If no channel can be reached, play the file
      defined by 'announce' waiting 'sleep' seconds to retry the call.
      If the specified number of attempts matches 'loops' the call will be transferred to
      the extension 'v' in the context defined by 'context'

      If 'loops' is set to 0, the call will retry endlessly.

      While waiting, a 1 digit extension may be dialed. If that extension exists in 'context',
      The call will exit the application to that extension immmediately.

      If unspecified, 'loops' defaults to 12, 'sleep' defaults to 10
      and 'context' defaults to the current context

      All the arguements after the first ':' are passed directly to Dial() (show application Dial)

                • ADDITIONAL INFORMATION ******

      Disclaimer on file.
      anthmct@yahoo.com (works on paypal too wink)

        Activity

        Hide
        Anthony Minessale added a comment -

        Ok, the right rev3 is uploaded.

        This one gets rid of the v extension it just continues on in the dialplan if the loops run out.

        It also adds the 'd' flag to regular app_dial, if set, this flag trumps the 'H' flag and intercepts any dtmf while you are waiting for the call to be answered and returns that value on the spot. This allows you to dial an exit extension while waiting for the call to be answered.

          • side note, '*' and '#' are still hardcoded into app_dial for the hangup and transfer keys.. so that needs fixing I think maybe some of app_dial could be moved into a core function you can control from the loadable app_dial or something like that.

        Anyway, If you set this 'd' flag in the dialargs portion of the RetryDial() then you will be able to cancel out the call while waiting for the call to be picked up as well as when moh is playing just like markster proposed.

        e.g.

        [vcon]
        exten => 1,1,Voicemail($

        {BOX})

        [mycon]
        exten => _1XXX,1,SetVar(BOX=${EXTEN})
        exten => _1XXX,2,RetryDial(please-wait|vcon|5|3:SIP/${BOX}

        |60|d)
        exten => _1XXX,3,Playback(sorry-pal)
        exten => _1XXX,4,Hangup

        The file announces "I am currently busy, press 1 to leave me voicemail or stay on the line"

        because you added the 'd' flag you can now dial 1 even when the call is in the ring state. If you want to never let them hear the ringing just add the 'm' flag too.

        It will try to call them for 60 seconds at a time and wait 5 sec between each failure in the event of a busy signal. This will repeat up to 3 times (that is what the 5|3 is for)

        edited on: 01-13-05 13:06

        Show
        Anthony Minessale added a comment - Ok, the right rev3 is uploaded. This one gets rid of the v extension it just continues on in the dialplan if the loops run out. It also adds the 'd' flag to regular app_dial, if set, this flag trumps the 'H' flag and intercepts any dtmf while you are waiting for the call to be answered and returns that value on the spot. This allows you to dial an exit extension while waiting for the call to be answered. side note, '*' and '#' are still hardcoded into app_dial for the hangup and transfer keys.. so that needs fixing I think maybe some of app_dial could be moved into a core function you can control from the loadable app_dial or something like that. Anyway, If you set this 'd' flag in the dialargs portion of the RetryDial() then you will be able to cancel out the call while waiting for the call to be picked up as well as when moh is playing just like markster proposed. e.g. [vcon] exten => 1,1,Voicemail($ {BOX}) [mycon] exten => _1XXX,1,SetVar(BOX=${EXTEN}) exten => _1XXX,2,RetryDial(please-wait|vcon|5|3:SIP/${BOX} |60|d) exten => _1XXX,3,Playback(sorry-pal) exten => _1XXX,4,Hangup The file announces "I am currently busy, press 1 to leave me voicemail or stay on the line" because you added the 'd' flag you can now dial 1 even when the call is in the ring state. If you want to never let them hear the ringing just add the 'm' flag too. It will try to call them for 60 seconds at a time and wait 5 sec between each failure in the event of a busy signal. This will repeat up to 3 times (that is what the 5|3 is for) edited on: 01-13-05 13:06
        Hide
        Anthony Minessale added a comment -

        Buelleur?

        Show
        Anthony Minessale added a comment - Buelleur?
        Hide
        Anthony Minessale added a comment -

        updated.

        Show
        Anthony Minessale added a comment - updated.
        Hide
        Mark Spencer added a comment -

        Merged with the following changes:

        1) Handle macrocontext

        2) Properly call LOCAL_USER_REMOVE during error conditions

        3) Only wait for digits in RetryDial when said option is enabled.

        Show
        Mark Spencer added a comment - Merged with the following changes: 1) Handle macrocontext 2) Properly call LOCAL_USER_REMOVE during error conditions 3) Only wait for digits in RetryDial when said option is enabled.
        Hide
        Digium Subversion added a comment -

        Repository: asterisk
        Revision: 4828

        U trunk/apps/app_dial.c
        U trunk/doc/README.variables

        ------------------------------------------------------------------------
        r4828 | markster | 2008-01-15 15:22:16 -0600 (Tue, 15 Jan 2008) | 2 lines

        Merge anthm's RetryDial with changes (bug ASTERISK-3247)

        ------------------------------------------------------------------------

        http://svn.digium.com/view/asterisk?view=rev&revision=4828

        Show
        Digium Subversion added a comment - Repository: asterisk Revision: 4828 U trunk/apps/app_dial.c U trunk/doc/README.variables ------------------------------------------------------------------------ r4828 | markster | 2008-01-15 15:22:16 -0600 (Tue, 15 Jan 2008) | 2 lines Merge anthm's RetryDial with changes (bug ASTERISK-3247 ) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=4828

          People

          • Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development