[asterisk-dev] [Code Review] Issue 18243: Update initial state of hints when new device state provider registers
Russell Bryant
reviewboard at asterisk.org
Sat Dec 11 20:48:03 UTC 2010
> On 2010-12-11 06:43:31, Russell Bryant wrote:
> > /team/oej/pinana-initialize-devstate-1.4/main/pbx.c, lines 2349-2359
> > <https://reviewboard.asterisk.org/r/1048/diff/1/?file=14327#file14327line2349>
> >
> > This loop goes through the hints and gets a state value but doesn't store it anywhere. This function appears to be a big NoOp.
>
> Olle E Johansson wrote:
> You totally misunderstand. This is where I actually fix the problem, Russell. By calling ast_extension_state2() I actually get the initial state for the hint - which Asterisk could not get earlier since the device state provider was not registered. It's a chicken and egg issue, and I want to break the egg... :-)
I totally understand. I see what you are trying to fix. This doesn't seem to fix anything, though. Take a look at this line of code:
ast_extension_state2(hint->exten);
This is going to go calculate the extension state and return it. Since the return value is not being stored anywhere, it doesn't do anything. I would expect to see something like:
hint->laststate = ast_extension_state2(hint->exten);
- Russell
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1048/#review3023
-----------------------------------------------------------
On 2010-12-04 06:59:52, Olle E Johansson wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1048/
> -----------------------------------------------------------
>
> (Updated 2010-12-04 06:59:52)
>
>
> Review request for Asterisk Developers.
>
>
> Summary
> -------
>
> When the dialplan loads, all hints are initialized to a first state. If a device state provider is not loaded at the time, like meetme (or the new device state provider in chan_sip/Pinana), the hints are not initialized to the initial state. This affects all hints that have an initial state, like a registration in chan_sip, which is a state for "presence" subscriptions using SIMPLE in chan_sip.
>
> The patch in /svn/asterisk/team/oej/pinana-initialize-devstate-1.4 fixes this by re-initializing all hints using the new device state provider after registration of a new device state provider.
>
>
> This addresses bug 18243.
> https://issues.asterisk.org/view.php?id=18243
>
>
> Diffs
> -----
>
> /team/oej/pinana-initialize-devstate-1.4/include/asterisk/pbx.h 297578
> /team/oej/pinana-initialize-devstate-1.4/main/devicestate.c 297578
> /team/oej/pinana-initialize-devstate-1.4/main/pbx.c 297578
>
> Diff: https://reviewboard.asterisk.org/r/1048/diff
>
>
> Testing
> -------
>
> Testing done while testing Pinana, which adds a new device state provider for remote sip states. Without this patch, the device state provider hints would never initialize properly when ASterisk starts, since the dialplan loads before chan_sip.
>
>
> Thanks,
>
> Olle E
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-dev/attachments/20101211/e8bb0faf/attachment.htm
More information about the asterisk-dev
mailing list