[asterisk-dev] [Code Review] CCSS Proposal to add Asterisk DEVSTATEs to generic agents to use with hints

rmudgett reviewboard at asterisk.org
Fri Apr 1 19:54:50 CDT 2011


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


Mostly nit-picking.  I have committed your related bug fix patch with modifications for issue #18763.


/trunk/configs/ccss.conf.sample
<https://reviewboard.asterisk.org/r/1105/#comment6765>

    These state -> These states



/trunk/configs/ccss.conf.sample
<https://reviewboard.asterisk.org/r/1105/#comment6766>

    funciton -> function



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6775>

    internal -> internal state



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6768>

    statemachine -> state machine



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6774>

    CC_FAIL -> CC_FAILED



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6769>

    and -> any



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6767>

    CCSS has its own dynamic logging channel defined.
    
    You should use ast_log_dynamic_level(cc_logger_level, ...) instead of ast_debug().
    
    The output is accessed by adding the CC channel to the various logging lists in logger.conf.



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6773>

    Use tabs to indent.



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6770>

    Add const qualifier to cc_setting.



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6771>

    This return is not needed.



/trunk/main/ccss.c
<https://reviewboard.asterisk.org/r/1105/#comment6772>

    Return not needed


- rmudgett


On 2011-02-20 21:18:19, p_lindheimer wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1105/
> -----------------------------------------------------------
> 
> (Updated 2011-02-20 21:18:19)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> CCSS Proposal to add Asterisk DEVSTATE to generic agents to use in hints
> 
> originally submitted to: https://issues.asterisk.org/view.php?id=18788
> 
> Proposal to Add Asterisk Device State information and callbacks to the
> Call Completion Supplemental Services for generic agents.
> 
> There are currently not many devices that have native support for CCSS and
> even as they come available there may be other reasons why one may choose not
> to take advantage of the native abilities and stick with the generic
> implementation which is quite capable and could be greatly enhanced by adding
> device state capabilities that a phone could subscribe to with a BLF key in
> conjuction with Asterisk hints.
> 
> The advantages of this would allow a single button that could be programmed to
> trigger a CCSS related feature code that can be used to both Request and
> Cancel CCSS requests as well as display the current state of a CCSS Request.
> 
> By example, I may have a single button that when no lit, there is no active 
> CCSS request. When I press that button, my dialplan can query the state
> DEVICE_STATE() associated with that Caller to determine whether they should be
> calling CallCompletionRequest() or CallCompletionCancel(). If there is
> currently a pending request, then the dialplan would Cancel() it. This also has
> the advantage of showing the true state of a Request() which is an
> asynchronous call and even when Request() thinks it was successful, the actual
> request could ultimately fail. Once lit, further feedback can now be provided
> to the Caller about the current state of their Request() since it will be
> updated by the CCSS State Machine as appropriate.
> 
> The DEVICE_STATE mappings should be configurable since the BLF being 
> used on a give phone type may vary. The idea is to allow some level of 
> customization as to the phone's behavior.
> 
> As an example, I may want my BLF key to go solid once I have requested a
> callback. I may then want my led to blink (typically ringing) when either the
> callback is in process which is a visual indication that the incoming call is
> the desired callback, or I may want it to blink when the callee is ready buy I
> am busy, giving me a visual indication that the target is available as I may
> want to get off the line so that the callback can be successful.
> 
> The proposal is to send device state information back via the
> ast_devstate_prov_add callback for any device (or at least generic device)
> as they traverse through the state machine. We simply provide a map
> between CC_STATE values and corresponding AST_DEVICE state values.
> 
> We could then generate hints against these States similar to what is possible
> today with Custom Devstates or MeetMe states. By example, I may have an extension 
> 3000 that is currently associated with device SIP/3000. I could then create a 
> feature code for that extension that may look something like:
> 
> exten => *823000,hint,ccss:sip/3000
> 
> One would then subscribe a blf button to *823000 which would point to the dialplan 
> that handled my CCSS Requests/Cancels using the available DEVICE_STATE() 
> information about ccss:sip/3000 to make the decsions what to do.
> 
> NOTICE: This patch happens to have a proposed bug fix patch in it as well from ticket:
> 
> https://issues.asterisk.org/view.php?id=18763
> 
> I just noticed that, not related to the proposed change, but does fix the fact that 
> CallCompletionRequest() and CallCompletionCancel() fail with non-zero codes in some
> circumstances.
> 
> 
> Diffs
> -----
> 
>   /trunk/CREDITS 308370 
>   /trunk/configs/ccss.conf.sample 308370 
>   /trunk/main/ccss.c 308370 
> 
> Diff: https://reviewboard.asterisk.org/r/1105/diff
> 
> 
> Testing
> -------
> 
> Testing that has been done so far:
> 
> Created 2 phones:
> SIP/3000 and SIP/3001
> 
> Created hints and some simple dialplan for testing:
> 
> exten => *823000,hint,ccss:SIP/3000
> exten => *823000,1,Noop(STATE OF HINT IS ${DEVICE_STATE(ccss:SIP/3000)}})
> 
> exten => *823001,hint,ccss:SIP/3001
> exten => *823001,1,Noop(STATE OF HINT IS ${DEVICE_STATE(ccss:SIP/3001)}})
> 
> Ran through scenarios with CCSS checking the values with 'core show hints' as different states were introduced including the main ones of:
> 
> CC_ACTIVE, CC_CALLEE_READY, CC_CALLEE_BUSY, CC_RECALLING
> 
> Tested changing the defaults with a single entry in ccss.conf of:
> 
> cc_caller_busy_devstate = RINGING
> 
> and verified that the CC_CALLEE_BUSY changed from the RINGINUSE to the RINGING state when tested.
> 
> Verified general operation of CCSS was not changed from these new addtions.
> 
> 
> Thanks,
> 
> p_lindheimer
> 
>

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


More information about the asterisk-dev mailing list