Summary: | ASTERISK-21563: API Enhancements - CEL refactoring - channel state | ||
Reporter: | Matt Jordan (mjordan) | Labels: | Asterisk12 |
Date Opened: | 2013-04-17 22:10:59 | Date Closed: | 2013-06-13 08:21:03 |
Priority: | Major | Regression? | |
Status: | Closed/Complete | Components: | CEL/General Core/Stasis |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | Yay, CEL!
With Stasis-Core, we no longer need a bunch of CEL events all over the code, as the state of channels and bridges is conveyed across the Stasis-Core message bus. The first step is to refactor the following: * Subscribe to the all channel caching topic in cel.c. Set up a message router to handle channel updates. ** When a channel is created, create an AST_CEL_CHANNEL_START event ** When a channel is hungup, create an AST_CEL_HANGUP event ** When a channel is removed from the cache, create an AST_CEL_CHANNEL_END event ** When a channel is answered, create an AST_CEL_ANSWER event ** If the application changes on a snapshot, create an AST_CEL_APP_START from the new snapshot ** If the application changes on a snapshot, create an AST_CEL_APP_END from the old snapshot * Remove all events referenced above * Refactor {{ast_cel_check_retire_linkedid}} to occur when an AST_CEL_CHANNEL_END would be raised, that is, when a channel is destroyed. Remove references to it from channel.c; make it a private function. ** If a linkedid changes on a channel, call the private version of {{ast_cel_check_retire_linkedid}} | ||
Comments: |