Skip to content
Snippets Groups Projects
  • Mark Michelson's avatar
    b5d5cc56
    Enhancements to connected line and redirecting work. · b5d5cc56
    Mark Michelson authored
    From reviewboard:
    
    Digium has a commercial customer who has made extensive use of the connected party and
    redirecting information present in later versions of Asterisk Business Edition and which
    is to be in the upcoming 1.8 release. Through their use of the feature, new problems and solutions
    have come about. This patch adds several enhancements to maximize usage of the connected party
    and redirecting information functionality.
    
    First, Asterisk trunk already had connected line interception macros. These macros allow you to
    manipulate connected line information before it was sent out to its target. This patch adds the
    same feature except for redirecting information instead.
    
    Second, the ast_callerid and ast_party_id structures have been enhanced to provide a "tag." This
    tag can be set with func_callerid, func_connectedline, func_redirecting, and in the case of DAHDI,
    mISDN, and SIP channels, can be set in a configuration file. The idea behind the callerid tag is
    that it can be set to whatever value the administrator likes. Later, when running connected line
    and redirecting macros, the admin can read the tag off the appropriate structure to determine what
    action to take. You can think of this sort of like a channel variable, except that instead of having
    the variable associated with a channel, the variable is associated with a specific identity within
    Asterisk.
    
    Third, app_dial has two new options, s and u. The s option lets a dialplan writer force a specific
    caller ID tag to be placed on the outgoing channel. The u option allows the dialplan writer to force
    a specific calling presentation value on the outgoing channel.
    
    Fourth, there is a new control frame subclass called AST_CONTROL_READ_ACTION added. This was added
    to correct a very specific situation. In the case of SIP semi-attended (blond) transfers, the party
    being transferred would not have the opportunity to run a connected line interception macro to
    possibly alter the transfer target's connected line information. The issue here was that during a
    blond transfer, the SIP transfer code has no bridged channel on which to queue the connected line
    update. The way this was corrected was to add this new control frame subclass. Now, we queue an
    AST_CONTROL_READ_ACTION frame on the channel on which the connected line interception macro should
    be run. When ast_read is called to read the frame, ast_read responds by calling a callback function
    associated with the specific read action the control frame describes. In this case, the action taken
    is to run the connected line interception macro on the transferee's channel.
    
    Review: https://reviewboard.asterisk.org/r/652/
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@263541 65c4cc65-6c06-0410-ace0-fbb531ad65f3
    b5d5cc56
    History
    Enhancements to connected line and redirecting work.
    Mark Michelson authored
    From reviewboard:
    
    Digium has a commercial customer who has made extensive use of the connected party and
    redirecting information present in later versions of Asterisk Business Edition and which
    is to be in the upcoming 1.8 release. Through their use of the feature, new problems and solutions
    have come about. This patch adds several enhancements to maximize usage of the connected party
    and redirecting information functionality.
    
    First, Asterisk trunk already had connected line interception macros. These macros allow you to
    manipulate connected line information before it was sent out to its target. This patch adds the
    same feature except for redirecting information instead.
    
    Second, the ast_callerid and ast_party_id structures have been enhanced to provide a "tag." This
    tag can be set with func_callerid, func_connectedline, func_redirecting, and in the case of DAHDI,
    mISDN, and SIP channels, can be set in a configuration file. The idea behind the callerid tag is
    that it can be set to whatever value the administrator likes. Later, when running connected line
    and redirecting macros, the admin can read the tag off the appropriate structure to determine what
    action to take. You can think of this sort of like a channel variable, except that instead of having
    the variable associated with a channel, the variable is associated with a specific identity within
    Asterisk.
    
    Third, app_dial has two new options, s and u. The s option lets a dialplan writer force a specific
    caller ID tag to be placed on the outgoing channel. The u option allows the dialplan writer to force
    a specific calling presentation value on the outgoing channel.
    
    Fourth, there is a new control frame subclass called AST_CONTROL_READ_ACTION added. This was added
    to correct a very specific situation. In the case of SIP semi-attended (blond) transfers, the party
    being transferred would not have the opportunity to run a connected line interception macro to
    possibly alter the transfer target's connected line information. The issue here was that during a
    blond transfer, the SIP transfer code has no bridged channel on which to queue the connected line
    update. The way this was corrected was to add this new control frame subclass. Now, we queue an
    AST_CONTROL_READ_ACTION frame on the channel on which the connected line interception macro should
    be run. When ast_read is called to read the frame, ast_read responds by calling a callback function
    associated with the specific read action the control frame describes. In this case, the action taken
    is to run the connected line interception macro on the transferee's channel.
    
    Review: https://reviewboard.asterisk.org/r/652/
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@263541 65c4cc65-6c06-0410-ace0-fbb531ad65f3