[asterisk-dev] [Code Review] 3446: Parking: Add 'AnnounceChannel' to Park manager action. Change some announcement behavior for Park manager action.
Jonathan Rose
reviewboard at asterisk.org
Fri Apr 25 11:54:51 CDT 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3446/
-----------------------------------------------------------
(Updated April 25, 2014, 11:54 a.m.)
Review request for Asterisk Developers, Matt Jordan and rmudgett.
Changes
-------
Address findings
Bugs: ASTERISK-23397
https://issues.asterisk.org/jira/browse/ASTERISK-23397
Repository: Asterisk
Description
-------
r334840 removed announcements from Park manager actions back in 2011 from all of the actively supported Asterisk versions. Asterisk 12 has provided an opportunity to bring this functionality back.
TimeoutChannel will now receive announcements under the strict condition that it is in a one to one bridge with Channel (the channel being parked) at the time the Park action was invoked. In this case, TimeoutChannel will be treated more or less entirely as the channel responsible for parking the call instead of just as a return point for when the call times out.
Parking behavior in cases where TimeoutChannel isn't directly bridged with Channel remains mostly unchanged. The channel being parked will no longer receive announcements, but it will still be treated as having more or less self-parked. Timeout Channel will still work just as a comeback override at that point (Will be used to dial when the call times out if it's specified).
AnnounceChannel field has been added to the Park action. If the AnnounceChannel field is specified and maps to an active channel, a parking announcement listener stasis subscription will be applied to that channel. When Channel is parked, that listener will trip and apply the announcement bridge feature to the AnnounceChannel. Provided that AnnounceChannel is in some kind of bridge that can use features at that point (tested with two party bridges and holding bridges), the AnnounceChannel will receive the parking announcement while staying on the bridge.
If AnnounceChannel and TimeoutChannel are the same channel and that channel is bridged with Channel, a safeguard is in place to make sure multiple announcements aren't queued. In that case, AnnounceChannel is just ignored.
Diffs (updated)
-----
/branches/12/res/parking/res_parking.h 412989
/branches/12/res/parking/parking_manager.c 412989
/branches/12/res/parking/parking_bridge_features.c 412989
/branches/12/CHANGES 412989
Diff: https://reviewboard.asterisk.org/r/3446/diff/
Testing
-------
Tested Parking with the park action using different parking lot and timeout settings under the following scenarios:
_______________________________________
Channel: SIP channel in a holding bridge
TimeoutChannel: SIP channel in another holding bridge
AnnounceChannel: same as TimeoutChannel
Results: Timeout Channel received announcements, remained in holding bridge, and was set as the comeback dial channel. Channel gets dialed upon timeout.
---
Channel: SIP channel talking to TimeoutChannel
TimeoutChannel: SIP channel talking to Channel
AnnounceChannel: both unspecified and the same as TimeoutChannel
Results: TimeoutChannel received announcements and then hung up... treated as the Parker of the call. Gets dialed after timeout.
---
Channel: Local channel in a Holding Bridge
TimeoutChannel: SIP channel talking to another, unrelated SIP channel
AnnounceChannel: Same as TimeoutChannel
Results: TimeoutChannel receives announcements, acts as comeback dial channel.
---
Channel: Local channel in a Holding Bridge
TimeoutChannel: SIP channel talking to another, unrelated SIP channel
AnnounceChannel: Unspecified
Results: SIP channel acts as comeback dial channel, but does not receive announcements
Thanks,
Jonathan Rose
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140425/1afb2e81/attachment-0001.html>
More information about the asterisk-dev
mailing list