[asterisk-dev] [Code Review] 2710: Support externally initiated parking requests; remove a bunch of dead parking code from features.c; refactor parking bridge features slightly

Matt Jordan reviewboard at asterisk.org
Mon Jul 29 10:52:42 CDT 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2710/
-----------------------------------------------------------

Review request for Asterisk Developers.


Bugs: ASTERISK-22134
    https://issues.asterisk.org/jira/browse/ASTERISK-22134


Repository: Asterisk


Description
-------

This task started out as a goal to remove as much dead parking code from features.c as possible.

While doing so, we realized that we still had a few ways certain channel drivers (chan_skinny, chan_mgcp, and chan_dahdi) could initiate a parking request that we hadn't handled. So that got bundled in.

Once that got bundled in, it became useful to refactor (a little) the way in which the Bridging API - and external consumes of parking - interact with parking features. At that point, I decided I had fallen victim to the scope creep monster and cut it off.

So, this patch includes:

* A parking bridge features virtual table that provides access to the parking functionality that the Bridging API needs. This includes requests to park an entire 'call' (with little or no additional information, thank you chan_skinny), perform a blind transfer to a parking extension, determine if an extension is a parking extension, as well as the actual "do the parking" request from the Bridging API.

* Refactoring in chan_mgcp, chan_skinny, and chan_dahdi to make use of the new functions

* The removal of some - but not all - dead parking code from features.c

This also fixed blind transferring a multi-party bridge to a parking lot (which was implemented, but had at least one code path where using the parking features kK might not have worked)


Diffs
-----

  /trunk/main/parking.c 395653 
  /trunk/main/features.c 395653 
  /trunk/main/bridge_channel.c 395653 
  /trunk/main/bridge.c 395653 
  /trunk/include/asterisk/parking.h 395653 
  /trunk/include/asterisk/features.h 395653 
  /trunk/channels/sig_analog.c 395653 
  /trunk/channels/chan_skinny.c 395653 
  /trunk/channels/chan_mgcp.c 395653 
  /trunk/channels/chan_iax2.c 395653 
  /trunk/channels/chan_dahdi.c 395653 
  /trunk/res/parking/parking_bridge_features.c 395653 
  /trunk/res/res_parking.c 395653 

Diff: https://reviewboard.asterisk.org/r/2710/diff/


Testing
-------

Tested basic call parking:

SIP/Alice calls SIP/Bob. Both can park each other (kK)
SIP/Alice calls SIP/Bob. SIP/Alice brings in SIP/Charlie (multi-party). All can park the other two.


Thanks,

Matt Jordan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130729/9022cb01/attachment-0001.htm>


More information about the asterisk-dev mailing list