Re: [asterisk-dev] [Code Review] 2959: pjsip: AMI commands and events

2013-11-21 Thread Mark Michelson

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

Ship it!



branches/12/res/res_pjsip_pubsub.c
https://reviewboard.asterisk.org/r/2959/#comment19578

Introduced a couple of red blobs here.


- Mark Michelson


On Nov. 15, 2013, 7:58 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/2959/
 ---
 
 (Updated Nov. 15, 2013, 7:58 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Bugs: ASTERISK-22609
 https://issues.asterisk.org/jira/browse/ASTERISK-22609
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Created the following AMI commands and corresponding events for res_pjsip:
 
 PJSIPShowEndpoints - Provides a listing of all pjsip endpoints and a few 
 select attributes on each.
   Events:
 EndpointList - for each endpoint a few attributes
 EndpointlistComplete - after all endpoints have been listed
 
 PJSIPShowEndpoint - Provides a detail list of attributes for a specified 
 endpoint
   Events:
 EndpointDetail - attributes on an endpoint
 AorDetail - raised for each AOR on an endpoint
 AuthDetail - raised for each associated inbound and outbound auth
 TransportDetail - transport attributes
 IdentifyDetail - attributes for the identify object associated with the 
 endpoint
 EndpointDetailComplete - last event raised after all detail events
 
 PJSIPShowRegistrationsInbound - Provides a detail listing of all inbound 
 registrations
   Events:
 InboundRegistrationDetail - inbound registration attributes for each 
 registration
 InboundRegistrationDetailComplete - raised after all detail records have 
 been listed
 
 PJSIPShowRegistrationsOutbound  - Provides a detail listing of all outbound 
 registrations
   Events:
 OutboundRegistrationDetail - outbound registration attributes for each 
 registration
 OutboundRegistrationDetailComplete - raised after all detail records have 
 been listed
 
 PJSIPShowSubscriptions - A detail listing of all subscriptions and their 
 attributes
   Events:
 SubscriptionDetail - on each subscription detailed attributes
 SubscriptionDetailComplete - raised after all detail records have been 
 listed
 
 
 Diffs
 -
 
   branches/12/res/res_pjsip_registrar.c 402377 
   branches/12/res/res_pjsip_pubsub.c 402377 
   branches/12/res/res_pjsip_outbound_registration.c 402377 
   branches/12/res/res_pjsip_mwi.c 402377 
   branches/12/res/res_pjsip_exten_state.c 402377 
   branches/12/res/res_pjsip_endpoint_identifier_ip.c 402377 
   branches/12/res/res_pjsip/pjsip_configuration.c 402377 
   branches/12/res/res_pjsip/location.c 402377 
   branches/12/res/res_pjsip/include/res_pjsip_private.h 402377 
   branches/12/res/res_pjsip/config_transport.c 402377 
   branches/12/res/res_pjsip/config_auth.c 402377 
   branches/12/res/res_pjsip.exports.in 402377 
   branches/12/res/res_pjsip.c 402377 
   branches/12/main/utils.c 402377 
   branches/12/main/sorcery.c 402377 
   branches/12/main/acl.c 402377 
   branches/12/include/asterisk/utils.h 402377 
   branches/12/include/asterisk/strings.h 402377 
   branches/12/include/asterisk/sorcery.h 402377 
   branches/12/include/asterisk/res_pjsip_pubsub.h 402377 
   branches/12/include/asterisk/res_pjsip.h 402377 
   branches/12/include/asterisk/acl.h 402377 
 
 Diff: https://reviewboard.asterisk.org/r/2959/diff/
 
 
 Testing
 ---
 
 Ran a few manual tests over AMI and observed the output to make sure things 
 look correct.  Also wrote some testsuite tests: 
 https://reviewboard.asterisk.org/r/2958/
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2987: ARI: Don't leak information about implementation details

2013-11-21 Thread Joshua Colp

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

Ship it!



branches/12/include/asterisk/stasis.h
https://reviewboard.asterisk.org/r/2987/#comment19576

sanitize



branches/12/include/asterisk/stasis.h
https://reviewboard.asterisk.org/r/2987/#comment19577

sanitize


- Joshua Colp


On Nov. 11, 2013, 3:12 p.m., opticron wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/2987/
 ---
 
 (Updated Nov. 11, 2013, 3:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Bugs: ASTERISK-22744
 https://issues.asterisk.org/jira/browse/ASTERISK-22744
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This change prevents channels used as implementation details from leaking out 
 to ARI. It does this by preventing creation of JSON blobs of channel 
 snapshots created from those channels and sanitizing JSON blobs of bridge 
 snapshots as they are created. This introduces a framework for excluding 
 information from output targeted at Stasis applications on a 
 consumer-by-consumer basis using channel sanitization callbacks which could 
 be extended to bridges or endpoints if necessary.
 
 This results in NULL inputs to ast_json_pack calls which generate unhelpful 
 error messages, so that has been dealt with as well.
 
 This also corrects a bug I noticed while investigating the issue where 
 BridgeCreated events would not be created.
 
 
 Diffs
 -
 
   branches/12/res/stasis/app.c 402347 
   branches/12/res/res_stasis.c 402347 
   branches/12/res/ari/resource_endpoints.c 402347 
   branches/12/res/ari/resource_channels.c 402347 
   branches/12/res/ari/resource_bridges.c 402347 
   branches/12/main/stasis_message.c 402347 
   branches/12/main/stasis_endpoints.c 402347 
   branches/12/main/stasis_channels.c 402347 
   branches/12/main/stasis_bridges.c 402347 
   branches/12/main/rtp_engine.c 402347 
   branches/12/main/json.c 402347 
   branches/12/include/asterisk/stasis_endpoints.h 402347 
   branches/12/include/asterisk/stasis_channels.h 402347 
   branches/12/include/asterisk/stasis_bridges.h 402347 
   branches/12/include/asterisk/stasis_app.h 402347 
   branches/12/include/asterisk/stasis.h 402347 
 
 Diff: https://reviewboard.asterisk.org/r/2987/diff/
 
 
 Testing
 ---
 
 Manual testing with bridges and channels.
 
 
 Thanks,
 
 opticron
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3016: app_directory: Set DIRECTORY_RESULT variable to indicate why Directory application finished

2013-11-21 Thread Jonathan Rose

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

(Updated Nov. 21, 2013, 4:38 p.m.)


Status
--

This change has been marked as submitted.


Review request for Asterisk Developers, Mark Michelson and rmudgett.


Changes
---

Committed in revision 402995


Repository: Asterisk


Description
---

Directory is a bit of a mess stylistically... so I tried to manage this as best 
as I could. The premise is simple enough. Directory should set a reason for 
exit when it is finished. The reasons include:

 OPERATORuser requested operator by pressing '0' for operator
 ASSISTANT   user requested assistant by pressing '*' for assistant
 TIMEOUT user pressed nothing and Directory stopped waiting
 HANGUP  user's channel hung up
 SELECTEDuser selected a user from the directory and is routed
 USEREXITuser pressed '#' from the selection prompt to exit
 FAILED  directory failed in a way that wasn't accounted for.


Diffs
-

  /trunk/apps/app_directory.c 402851 
  /trunk/CHANGES 402851 

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


Testing
---

I tested that each of the values would be received from their respective 
actions with the exception of FAILED... which I put in there to account for 
exit conditions that I wasn't aware of anyway.

I'm currently writing a testsuite test to verify the behavior of this feature.


Thanks,

Jonathan Rose

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2994: ari:Add application/json parameter support

2013-11-21 Thread David Lee

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

(Updated Nov. 21, 2013, 2:47 p.m.)


Review request for Asterisk Developers and Paul Belanger.


Changes
---

Properly handle allocations when both query params and JSON body params are 
offered.


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


Repository: Asterisk


Description
---

The patch allows ARI to parse request parameters from an incoming JSON
request body, instead of requiring the request to come in as query
parameters (which is just weird for POST and DELETE) or form
parameters (which is okay, but a bit asymmetric given that all of our
responses are JSON).

For any operation that does _not_ have a parameter defined of type
body (i.e. paramType: body in the API declaration), if a request
provides a request body with a Content type of application/json, the
provided JSON document is parsed and searched for parameters.

The expected fields in the provided JSON document should match the
query parameters defined for the operation. If the parameter has
'allowMultiple' set, then the field in the JSON document may
optionally be an array of values.


Diffs (updated)
-

  /branches/12/tests/test_ari.c 402455 
  /branches/12/rest-api-templates/swagger_model.py 402455 
  /branches/12/rest-api-templates/res_ari_resource.c.mustache 402455 
  /branches/12/rest-api-templates/param_parsing.mustache 402455 
  /branches/12/rest-api-templates/asterisk_processor.py 402455 
  /branches/12/res/res_ari_sounds.c 402455 
  /branches/12/res/res_ari_recordings.c 402455 
  /branches/12/res/res_ari_playback.c 402455 
  /branches/12/res/res_ari_endpoints.c 402455 
  /branches/12/res/res_ari_channels.c 402455 
  /branches/12/res/res_ari_bridges.c 402455 
  /branches/12/res/res_ari_asterisk.c 402455 
  /branches/12/res/res_ari_applications.c 402455 
  /branches/12/res/res_ari.c 402455 
  /branches/12/main/http.c 402455 
  /branches/12/include/asterisk/http.h 402455 
  /branches/12/include/asterisk/ari.h 402455 

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


Testing
---

Testsuite test.

See https://reviewboard.asterisk.org/r/2993/


Thanks,

David Lee

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread Joshua Colp


 On Nov. 21, 2013, 12:59 a.m., Paul Belanger wrote:
  branches/12/rest-api/api-docs/device_states.json, line 11
  https://reviewboard.asterisk.org/r/3025/diff/1/?file=48553#file48553line11
 
  Hmm, not a fan of this URL schema.  At first glance, what about just 
  /states.
  
  Additionally, I know within asterisk it is a device state however from 
  ARI we don't actually have a device, we have endpoints.  So, that in itself 
  is confusing.
  
  I think the snake_case here is the issue, since most everything else 
  has moved to camelCase.   Consistency FTW!

I completely disagree with changing this to /states. That's not descriptive 
enough and is completely generic, which the API itself is not. If I'm a 
developer looking at that the first question I'd ask would be states for what? 
channels?. Having something else with it (even if not device) gives immediate 
information and makes it much clearer.


- Joshua


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


On Nov. 20, 2013, 10:25 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3025/
 ---
 
 (Updated Nov. 20, 2013, 10:25 p.m.)
 
 
 Review request for Asterisk Developers, David Lee and Matt Jordan.
 
 
 Bugs: ASTERISK-22838
 https://issues.asterisk.org/jira/browse/ASTERISK-22838
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Created a data model and implemented functionality for an ARI device state 
 resource.  The following operations have been added that allow a user to 
 manipulate an ARI controlled device:
 
 PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
 an ARI controlled device
 GET/device-states/{deviceName} - Retrieve the current state of a device
 DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI
 
 The ARI controlled device must begin with 'Stasis:'.  An example controlled 
 device name would be Stasis:Example.
 
 A 'DeviceStateChanged' event has also been added so that an application can 
 subscribe and receive device change events.  Any device state, ARI controlled 
 or not, can be subscribed to.
 
 While adding the event, the underlying subscription control mechanism was 
 refactored so that all current and future resource subscriptions would be the 
 same.  Each event resource must now register itself in order to be able to 
 properly handle [un]subscribes.
 
 
 Diffs
 -
 
   branches/12/rest-api/resources.json 402915 
   branches/12/rest-api/api-docs/events.json 402915 
   branches/12/rest-api/api-docs/device_states.json PRE-CREATION 
   branches/12/rest-api/api-docs/applications.json 402915 
   branches/12/res/stasis/app.c 402915 
   branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
   branches/12/res/res_stasis_device_state.c PRE-CREATION 
   branches/12/res/res_stasis.c 402915 
   branches/12/res/res_ari_device_states.c PRE-CREATION 
   branches/12/res/ari/resource_device_states.c PRE-CREATION 
   branches/12/res/ari/resource_device_states.h PRE-CREATION 
   branches/12/res/ari/resource_applications.h 402915 
   branches/12/res/ari/ari_model_validators.c 402915 
   branches/12/res/ari/ari_model_validators.h 402915 
   branches/12/res/ari.make 402915 
   branches/12/main/devicestate.c 402915 
   branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
   branches/12/include/asterisk/stasis_app.h 402915 
   branches/12/include/asterisk/devicestate.h 402915 
 
 Diff: https://reviewboard.asterisk.org/r/3025/diff/
 
 
 Testing
 ---
 
 Some basic testing done using the swagger framework and a websocket 
 connection.  Testing adding, changing, and removing device state with regards 
 to an ARI controlled device were successful.  Also tested [un]subscribing to 
 the events from device with success.  Planning on writing some testsuite test 
 cases as well.
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2947: ARI: Adding a channel to a bridge while a live recording is active blocks

2013-11-21 Thread opticron


 On Nov. 21, 2013, 12:53 p.m., opticron wrote:
  branches/12/include/asterisk/stasis_app.h, line 180
  https://reviewboard.asterisk.org/r/2947/diff/5/?file=48327#file48327line180
 
  This should return the enum instead of int.
 
 Kevin Harwell wrote:
 The problem with making this an enum is currently it is assumed different 
 enum types could be returned.  So instead of having a single master enum for 
 all result types, resources could define and use their expected result types 
 specific to their modules.

If this could return multiple different enum types, collisions between values 
in the enums could produce incorrect error messages. As an example, a rule from 
module B could cause a bridge entry attempted by module A to fail. The enum 
that currently exists is global and not module-specific even though the only 
error value it contains is from a single module.


- opticron


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


On Nov. 21, 2013, 1:50 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/2947/
 ---
 
 (Updated Nov. 21, 2013, 1:50 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Bugs: ASTERISK-22624
 https://issues.asterisk.org/jira/browse/ASTERISK-22624
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Added a channel recording flag that is checked before adding a channel to a 
 bridge.  If the the channel is currently being recorded a 409 Conflict is 
 returned and the channel is not added to the bridge.
 
 
 Diffs
 -
 
   branches/12/rest-api/api-docs/bridges.json 402969 
   branches/12/res/stasis/control.c 402969 
   branches/12/res/stasis/command.c 402969 
   branches/12/res/stasis/command.h 402969 
   branches/12/res/res_stasis_recording.c 402969 
   branches/12/res/res_stasis_playback.c 402969 
   branches/12/res/res_stasis_answer.c 402969 
   branches/12/res/res_ari_bridges.c 402969 
   branches/12/res/ari/resource_bridges.c 402969 
   branches/12/include/asterisk/stasis_app_impl.h 402969 
   branches/12/include/asterisk/stasis_app.h 402969 
 
 Diff: https://reviewboard.asterisk.org/r/2947/diff/
 
 
 Testing
 ---
 
 Ran a manual test and also wrote a testsuite test: 
 https://reviewboard.asterisk.org/r/2951/
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3024: Testsuite: Test the MixMonitor 'f' option

2013-11-21 Thread Joshua Colp

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

Ship it!


Ship It!

- Joshua Colp


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3024/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: testsuite
 
 
 Description
 ---
 
 This adds a simple test that ensures the 'f' option to MixMonitor performs as 
 documented.
 
 
 Diffs
 -
 
   /asterisk/trunk/tests/apps/tests.yaml 4331 
   /asterisk/trunk/tests/apps/mixmonitor_f_option/test-config.yaml 
 PRE-CREATION 
   /asterisk/trunk/tests/apps/mixmonitor_f_option/configs/ast1/extensions.conf 
 PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3024/diff/
 
 
 Testing
 ---
 
 Test consistently passes.
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2959: pjsip: AMI commands and events

2013-11-21 Thread Joshua Colp

George Joseph wrote:

Just FYI...   I've got a whole bunch of pjsip cli stuff waiting on this
patch to be committed.   Any chance of this happening this week?


It'll get reviewed today and pending any other findings arising it'll go 
in shortly.


If possible you could just throw your stuff up for review too and mark 
it as dependent on the AMI commands/events review (you can do that in 
Reviewboard now! yay!).


Cheers,

--
Joshua Colp
Digium, Inc. | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at:  www.digium.com   www.asterisk.org

--
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-dev


Re: [asterisk-dev] [Code Review] 3023: Add MixMonitor() option to specify channel variable into which to store the recording filename

2013-11-21 Thread Tilghman Lesher

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


Shouldn't something like this be a channel function from which you retrieve the 
value, instead of specifying a variable into which the name is placed?  Seems 
like a significant regression in spitting things out to channel variables, 
instead of using dialplan functions to retrieve values when needed.

- Tilghman Lesher


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3023/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This change introduces an 'f' option for the MixMonitor() application. The 
 argument for this option specifies a channel variable into which the 
 application should store the filename (as in, the full path) instead of the 
 standard MIXMONITOR_FILENAME.
 
 The rationale for this option is that MixMonitor is structured in such a way 
 that a single channel may have multiple simultaneous MixMonitors running at 
 any given time. Thus, the MixMonitor application should not have any 
 assumptions that the channel has only a single MixMonitor being run on it. 
 Setting a single MIXMONITOR_FILENAME channel variable violates such 
 assumptions by overwriting the value set from previous invocations of 
 MixMonitor. By using the 'f' and 'i' options for MixMonitor, a user can 
 easily manage multiple recordings on a single channel.
 
 
 Diffs
 -
 
   /trunk/apps/app_mixmonitor.c 402883 
 
 Diff: https://reviewboard.asterisk.org/r/3023/diff/
 
 
 Testing
 ---
 
 See https://reviewboard.asterisk.org/r/3024/
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread opticron

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



branches/12/include/asterisk/stasis_app.h
https://reviewboard.asterisk.org/r/3025/#comment19605

If this is going to be exposed globally, it needs to be renamed.



branches/12/include/asterisk/stasis_app.h
https://reviewboard.asterisk.org/r/3025/#comment19603

There's no need to forward declare this a second time.



branches/12/res/res_stasis_device_state.c
https://reviewboard.asterisk.org/r/3025/#comment19613

Why not search via OBJ_SEARCH_KEY? This seems like a pretty expensive 
operation when it doesn't have to be.


- opticron


On Nov. 21, 2013, 1:12 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3025/
 ---
 
 (Updated Nov. 21, 2013, 1:12 p.m.)
 
 
 Review request for Asterisk Developers, David Lee and Matt Jordan.
 
 
 Bugs: ASTERISK-22838
 https://issues.asterisk.org/jira/browse/ASTERISK-22838
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Created a data model and implemented functionality for an ARI device state 
 resource.  The following operations have been added that allow a user to 
 manipulate an ARI controlled device:
 
 PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
 an ARI controlled device
 GET/device-states/{deviceName} - Retrieve the current state of a device
 DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI
 
 The ARI controlled device must begin with 'Stasis:'.  An example controlled 
 device name would be Stasis:Example.
 
 A 'DeviceStateChanged' event has also been added so that an application can 
 subscribe and receive device change events.  Any device state, ARI controlled 
 or not, can be subscribed to.
 
 While adding the event, the underlying subscription control mechanism was 
 refactored so that all current and future resource subscriptions would be the 
 same.  Each event resource must now register itself in order to be able to 
 properly handle [un]subscribes.
 
 
 Diffs
 -
 
   branches/12/rest-api/resources.json 402955 
   branches/12/rest-api/api-docs/events.json 402955 
   branches/12/rest-api/api-docs/deviceStates.json PRE-CREATION 
   branches/12/rest-api/api-docs/applications.json 402955 
   branches/12/res/stasis/app.c 402955 
   branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
   branches/12/res/res_stasis_device_state.c PRE-CREATION 
   branches/12/res/res_stasis.c 402955 
   branches/12/res/res_ari_deviceStates.c PRE-CREATION 
   branches/12/res/ari/resource_deviceStates.c PRE-CREATION 
   branches/12/res/ari/resource_deviceStates.h PRE-CREATION 
   branches/12/res/ari/resource_applications.h 402955 
   branches/12/res/ari/ari_model_validators.c 402955 
   branches/12/res/ari/ari_model_validators.h 402955 
   branches/12/res/ari.make 402955 
   branches/12/main/devicestate.c 402955 
   branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
   branches/12/include/asterisk/stasis_app.h 402955 
   branches/12/include/asterisk/devicestate.h 402955 
 
 Diff: https://reviewboard.asterisk.org/r/3025/diff/
 
 
 Testing
 ---
 
 Some basic testing done using the swagger framework and a websocket 
 connection.  Testing adding, changing, and removing device state with regards 
 to an ARI controlled device were successful.  Also tested [un]subscribing to 
 the events from device with success.  Planning on writing some testsuite test 
 cases as well.
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2947: ARI: Adding a channel to a bridge while a live recording is active blocks

2013-11-21 Thread Kevin Harwell

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

(Updated Nov. 21, 2013, 1:50 p.m.)


Review request for Asterisk Developers.


Changes
---

Update per review items


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


Repository: Asterisk


Description
---

Added a channel recording flag that is checked before adding a channel to a 
bridge.  If the the channel is currently being recorded a 409 Conflict is 
returned and the channel is not added to the bridge.


Diffs (updated)
-

  branches/12/rest-api/api-docs/bridges.json 402969 
  branches/12/res/stasis/control.c 402969 
  branches/12/res/stasis/command.c 402969 
  branches/12/res/stasis/command.h 402969 
  branches/12/res/res_stasis_recording.c 402969 
  branches/12/res/res_stasis_playback.c 402969 
  branches/12/res/res_stasis_answer.c 402969 
  branches/12/res/res_ari_bridges.c 402969 
  branches/12/res/ari/resource_bridges.c 402969 
  branches/12/include/asterisk/stasis_app_impl.h 402969 
  branches/12/include/asterisk/stasis_app.h 402969 

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


Testing
---

Ran a manual test and also wrote a testsuite test: 
https://reviewboard.asterisk.org/r/2951/


Thanks,

Kevin Harwell

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread David Lee

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



branches/12/include/asterisk/stasis_app.h
https://reviewboard.asterisk.org/r/3025/#comment19612

This was declared above.



branches/12/main/devicestate.c
https://reviewboard.asterisk.org/r/3025/#comment19614

Unused.



branches/12/res/ari.make
https://reviewboard.asterisk.org/r/3025/#comment19617

device_states should be snake_case instead of camelCase. That's my bad in 
the generator.

Fixed on 12 in r402981. Merge from the latest 12, run make ari-stubs, and 
rename your files to snake_case.

Sorry about that.



branches/12/res/ari/resource_deviceStates.c
https://reviewboard.asterisk.org/r/3025/#comment19618

Isn't a 404 Not Found also possible here?



branches/12/res/ari/resource_deviceStates.c
https://reviewboard.asterisk.org/r/3025/#comment19619

This should be a 409 Conflict, since it's a user error (wrong sort of 
device state) and not a server side error.



branches/12/res/ari/resource_deviceStates.c
https://reviewboard.asterisk.org/r/3025/#comment19621

1. I would have thought that missing would be a 404, and unknown a 500
2. You have a bad fall through to the default case.
3. You shouldn't be using default anyways. Be specific, so when new 
response codes are added, GCC will tell us about missing cases in dev mode.



branches/12/res/ari/resource_deviceStates.c
https://reviewboard.asterisk.org/r/3025/#comment19622

409



branches/12/res/ari/resource_deviceStates.c
https://reviewboard.asterisk.org/r/3025/#comment19623

Similar comment as above.



branches/12/res/res_stasis.c
https://reviewboard.asterisk.org/r/3025/#comment19615

No sense having both app_name and stasis_app_name. Just 
s/app_name/stasis_app_name/ and make it public.



branches/12/res/res_stasis.c
https://reviewboard.asterisk.org/r/3025/#comment19616

Since res_stasis registers its own event sources, you might have a module 
reference problem here. It will bump its own reference count during module 
load. Since the unload won't run until the reference count goes back down to 
zero, and the unregister happens during the unload process, much sadness.


Mostly good. Just a few problems.

- David Lee


On Nov. 21, 2013, 1:12 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3025/
 ---
 
 (Updated Nov. 21, 2013, 1:12 p.m.)
 
 
 Review request for Asterisk Developers, David Lee and Matt Jordan.
 
 
 Bugs: ASTERISK-22838
 https://issues.asterisk.org/jira/browse/ASTERISK-22838
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Created a data model and implemented functionality for an ARI device state 
 resource.  The following operations have been added that allow a user to 
 manipulate an ARI controlled device:
 
 PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
 an ARI controlled device
 GET/device-states/{deviceName} - Retrieve the current state of a device
 DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI
 
 The ARI controlled device must begin with 'Stasis:'.  An example controlled 
 device name would be Stasis:Example.
 
 A 'DeviceStateChanged' event has also been added so that an application can 
 subscribe and receive device change events.  Any device state, ARI controlled 
 or not, can be subscribed to.
 
 While adding the event, the underlying subscription control mechanism was 
 refactored so that all current and future resource subscriptions would be the 
 same.  Each event resource must now register itself in order to be able to 
 properly handle [un]subscribes.
 
 
 Diffs
 -
 
   branches/12/rest-api/resources.json 402955 
   branches/12/rest-api/api-docs/events.json 402955 
   branches/12/rest-api/api-docs/deviceStates.json PRE-CREATION 
   branches/12/rest-api/api-docs/applications.json 402955 
   branches/12/res/stasis/app.c 402955 
   branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
   branches/12/res/res_stasis_device_state.c PRE-CREATION 
   branches/12/res/res_stasis.c 402955 
   branches/12/res/res_ari_deviceStates.c PRE-CREATION 
   branches/12/res/ari/resource_deviceStates.c PRE-CREATION 
   branches/12/res/ari/resource_deviceStates.h PRE-CREATION 
   branches/12/res/ari/resource_applications.h 402955 
   branches/12/res/ari/ari_model_validators.c 402955 
   branches/12/res/ari/ari_model_validators.h 402955 
   branches/12/res/ari.make 402955 
   branches/12/main/devicestate.c 402955 
   branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
   branches/12/include/asterisk/stasis_app.h 402955 
   

Re: [asterisk-dev] [Code Review] 3023: Add MixMonitor() option to specify channel variable into which to store the recording filename

2013-11-21 Thread Joshua Colp

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

Ship it!


Ship It!

- Joshua Colp


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3023/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This change introduces an 'f' option for the MixMonitor() application. The 
 argument for this option specifies a channel variable into which the 
 application should store the filename (as in, the full path) instead of the 
 standard MIXMONITOR_FILENAME.
 
 The rationale for this option is that MixMonitor is structured in such a way 
 that a single channel may have multiple simultaneous MixMonitors running at 
 any given time. Thus, the MixMonitor application should not have any 
 assumptions that the channel has only a single MixMonitor being run on it. 
 Setting a single MIXMONITOR_FILENAME channel variable violates such 
 assumptions by overwriting the value set from previous invocations of 
 MixMonitor. By using the 'f' and 'i' options for MixMonitor, a user can 
 easily manage multiple recordings on a single channel.
 
 
 Diffs
 -
 
   /trunk/apps/app_mixmonitor.c 402883 
 
 Diff: https://reviewboard.asterisk.org/r/3023/diff/
 
 
 Testing
 ---
 
 See https://reviewboard.asterisk.org/r/3024/
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread Mark Michelson

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



branches/12/res/res_stasis_device_state.c
https://reviewboard.asterisk.org/r/3025/#comment19629

This could probably stand to be a lot smaller (like 64 maybe)



branches/12/res/res_stasis_device_state.c
https://reviewboard.asterisk.org/r/3025/#comment19627

Instead of constructing a device_state_subscription and searching by 
OBJ_SEARCH_OBJECT, just use the name that was passed in and search by 
OBJ_SEARCH_KEY. That way, you save the overhead of the creation and destruction 
of an ao2_object whenever this function is called.



branches/12/res/res_stasis_device_state.c
https://reviewboard.asterisk.org/r/3025/#comment19628

ao2_unlink_flags() ignores any OBJ_SEARCH_* flags that are passed into it. 
You can just use ao2_unlink() here instead.



branches/12/res/res_stasis_device_state.c
https://reviewboard.asterisk.org/r/3025/#comment19630

You could save some cycles here by just calling 

ao2_find(device_state_subscriptions, name, OBJ_SEARCH_KEY | OBJ_UNLINK | 
OBJ_NODATA);


- Mark Michelson


On Nov. 21, 2013, 7:12 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3025/
 ---
 
 (Updated Nov. 21, 2013, 7:12 p.m.)
 
 
 Review request for Asterisk Developers, David Lee and Matt Jordan.
 
 
 Bugs: ASTERISK-22838
 https://issues.asterisk.org/jira/browse/ASTERISK-22838
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Created a data model and implemented functionality for an ARI device state 
 resource.  The following operations have been added that allow a user to 
 manipulate an ARI controlled device:
 
 PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
 an ARI controlled device
 GET/device-states/{deviceName} - Retrieve the current state of a device
 DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI
 
 The ARI controlled device must begin with 'Stasis:'.  An example controlled 
 device name would be Stasis:Example.
 
 A 'DeviceStateChanged' event has also been added so that an application can 
 subscribe and receive device change events.  Any device state, ARI controlled 
 or not, can be subscribed to.
 
 While adding the event, the underlying subscription control mechanism was 
 refactored so that all current and future resource subscriptions would be the 
 same.  Each event resource must now register itself in order to be able to 
 properly handle [un]subscribes.
 
 
 Diffs
 -
 
   branches/12/rest-api/resources.json 402955 
   branches/12/rest-api/api-docs/events.json 402955 
   branches/12/rest-api/api-docs/deviceStates.json PRE-CREATION 
   branches/12/rest-api/api-docs/applications.json 402955 
   branches/12/res/stasis/app.c 402955 
   branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
   branches/12/res/res_stasis_device_state.c PRE-CREATION 
   branches/12/res/res_stasis.c 402955 
   branches/12/res/res_ari_deviceStates.c PRE-CREATION 
   branches/12/res/ari/resource_deviceStates.c PRE-CREATION 
   branches/12/res/ari/resource_deviceStates.h PRE-CREATION 
   branches/12/res/ari/resource_applications.h 402955 
   branches/12/res/ari/ari_model_validators.c 402955 
   branches/12/res/ari/ari_model_validators.h 402955 
   branches/12/res/ari.make 402955 
   branches/12/main/devicestate.c 402955 
   branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
   branches/12/include/asterisk/stasis_app.h 402955 
   branches/12/include/asterisk/devicestate.h 402955 
 
 Diff: https://reviewboard.asterisk.org/r/3025/diff/
 
 
 Testing
 ---
 
 Some basic testing done using the swagger framework and a websocket 
 connection.  Testing adding, changing, and removing device state with regards 
 to an ARI controlled device were successful.  Also tested [un]subscribing to 
 the events from device with success.  Planning on writing some testsuite test 
 cases as well.
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3024: Testsuite: Test the MixMonitor 'f' option

2013-11-21 Thread Joshua Colp

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


I don't see where the user event is actually checked... shouldn't you have 
specified the requirement of a Yay event in your test-config.yaml?

- Joshua Colp


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3024/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: testsuite
 
 
 Description
 ---
 
 This adds a simple test that ensures the 'f' option to MixMonitor performs as 
 documented.
 
 
 Diffs
 -
 
   /asterisk/trunk/tests/apps/tests.yaml 4331 
   /asterisk/trunk/tests/apps/mixmonitor_f_option/test-config.yaml 
 PRE-CREATION 
   /asterisk/trunk/tests/apps/mixmonitor_f_option/configs/ast1/extensions.conf 
 PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3024/diff/
 
 
 Testing
 ---
 
 Test consistently passes.
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3003: ARI: Add the ability to snoop (spy/whisper) on channels

2013-11-21 Thread Joshua Colp


 On Nov. 21, 2013, 8:05 p.m., Matt Jordan wrote:
  /branches/12/res/res_stasis_snoop.c, lines 215-228
  https://reviewboard.asterisk.org/r/3003/diff/3/?file=48153#file48153line215
 
  Going out on a limb here, but if this ever occurs, something has gone 
  horribly wrong. We should never masquerade a Snoop channel: that means 
  someone has performed an ast_channel_yank and is now doing something 
  godawful.
  
  It may be worthwhile having an assert in here, or something that 
  indicates that this should not have occurred - even if we do try to 'handle 
  it gracefully'.

It's perfectly legal for this to happen, an example would be redirecting the 
Snoop channel to the dialplan. It will continue to work and nothing funky will 
happen.


- Joshua


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


On Nov. 12, 2013, 6:43 p.m., Joshua Colp wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3003/
 ---
 
 (Updated Nov. 12, 2013, 6:43 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Bugs: ASTERISK-22780
 https://issues.asterisk.org/jira/browse/ASTERISK-22780
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This patch adds a snoop operation to channels which allows spying and 
 whispering to occur. The operation creates a Snoop channel, sends it into a 
 provided Stasis application, and returns a snapshot of it. Once in the Stasis 
 application any normal operation can be done with it (such as recording or 
 placing into a bridge).
 
 
 Diffs
 -
 
   /branches/12/rest-api/api-docs/channels.json 402707 
   /branches/12/res/res_stasis_snoop.exports.in PRE-CREATION 
   /branches/12/res/res_stasis_snoop.c PRE-CREATION 
   /branches/12/res/res_ari_channels.c 402707 
   /branches/12/res/ari/resource_channels.c 402707 
   /branches/12/res/ari/resource_channels.h 402707 
   /branches/12/main/audiohook.c 402707 
   /branches/12/include/asterisk/stasis_app_snoop.h PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3003/diff/
 
 
 Testing
 ---
 
 Used my softphone to call in and then swagger-ui to create snoop channels to 
 do various things. Testsuite test coming soon!
 
 
 Thanks,
 
 Joshua Colp
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3003: ARI: Add the ability to snoop (spy/whisper) on channels

2013-11-21 Thread Matt Jordan

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



/branches/12/res/res_stasis_snoop.c
https://reviewboard.asterisk.org/r/3003/#comment19601

I'm not sure this needs to be dynamically expanded.

Unique ids of channels have a well defined upper bound, AST_MAX_UNIQUEID 
defined in channel.h. You could just as well make this a char array and save 
yourself the trouble.



/branches/12/res/res_stasis_snoop.c
https://reviewboard.asterisk.org/r/3003/#comment19602

Going out on a limb here, but if this ever occurs, something has gone 
horribly wrong. We should never masquerade a Snoop channel: that means someone 
has performed an ast_channel_yank and is now doing something godawful.

It may be worthwhile having an assert in here, or something that indicates 
that this should not have occurred - even if we do try to 'handle it 
gracefully'.


- Matt Jordan


On Nov. 12, 2013, 6:43 p.m., Joshua Colp wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3003/
 ---
 
 (Updated Nov. 12, 2013, 6:43 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Bugs: ASTERISK-22780
 https://issues.asterisk.org/jira/browse/ASTERISK-22780
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This patch adds a snoop operation to channels which allows spying and 
 whispering to occur. The operation creates a Snoop channel, sends it into a 
 provided Stasis application, and returns a snapshot of it. Once in the Stasis 
 application any normal operation can be done with it (such as recording or 
 placing into a bridge).
 
 
 Diffs
 -
 
   /branches/12/rest-api/api-docs/channels.json 402707 
   /branches/12/res/res_stasis_snoop.exports.in PRE-CREATION 
   /branches/12/res/res_stasis_snoop.c PRE-CREATION 
   /branches/12/res/res_ari_channels.c 402707 
   /branches/12/res/ari/resource_channels.c 402707 
   /branches/12/res/ari/resource_channels.h 402707 
   /branches/12/main/audiohook.c 402707 
   /branches/12/include/asterisk/stasis_app_snoop.h PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3003/diff/
 
 
 Testing
 ---
 
 Used my softphone to call in and then swagger-ui to create snoop channels to 
 do various things. Testsuite test coming soon!
 
 
 Thanks,
 
 Joshua Colp
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread Joshua Colp


 On Nov. 21, 2013, 12:59 a.m., Paul Belanger wrote:
  Thanks for this, I plan to spend some time over the weekend trying this 
  out.  My comments are mostly from the ARIs POV, specifically what is a 
  device in ARI? and is that the same as an endpoint?

I'd akin this more to a virtual generic entity/device. It's not a real 
device, and it's certainly not an endpoint you can dial.


- Joshua


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


On Nov. 20, 2013, 10:25 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3025/
 ---
 
 (Updated Nov. 20, 2013, 10:25 p.m.)
 
 
 Review request for Asterisk Developers, David Lee and Matt Jordan.
 
 
 Bugs: ASTERISK-22838
 https://issues.asterisk.org/jira/browse/ASTERISK-22838
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Created a data model and implemented functionality for an ARI device state 
 resource.  The following operations have been added that allow a user to 
 manipulate an ARI controlled device:
 
 PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
 an ARI controlled device
 GET/device-states/{deviceName} - Retrieve the current state of a device
 DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI
 
 The ARI controlled device must begin with 'Stasis:'.  An example controlled 
 device name would be Stasis:Example.
 
 A 'DeviceStateChanged' event has also been added so that an application can 
 subscribe and receive device change events.  Any device state, ARI controlled 
 or not, can be subscribed to.
 
 While adding the event, the underlying subscription control mechanism was 
 refactored so that all current and future resource subscriptions would be the 
 same.  Each event resource must now register itself in order to be able to 
 properly handle [un]subscribes.
 
 
 Diffs
 -
 
   branches/12/rest-api/resources.json 402915 
   branches/12/rest-api/api-docs/events.json 402915 
   branches/12/rest-api/api-docs/device_states.json PRE-CREATION 
   branches/12/rest-api/api-docs/applications.json 402915 
   branches/12/res/stasis/app.c 402915 
   branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
   branches/12/res/res_stasis_device_state.c PRE-CREATION 
   branches/12/res/res_stasis.c 402915 
   branches/12/res/res_ari_device_states.c PRE-CREATION 
   branches/12/res/ari/resource_device_states.c PRE-CREATION 
   branches/12/res/ari/resource_device_states.h PRE-CREATION 
   branches/12/res/ari/resource_applications.h 402915 
   branches/12/res/ari/ari_model_validators.c 402915 
   branches/12/res/ari/ari_model_validators.h 402915 
   branches/12/res/ari.make 402915 
   branches/12/main/devicestate.c 402915 
   branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
   branches/12/include/asterisk/stasis_app.h 402915 
   branches/12/include/asterisk/devicestate.h 402915 
 
 Diff: https://reviewboard.asterisk.org/r/3025/diff/
 
 
 Testing
 ---
 
 Some basic testing done using the swagger framework and a websocket 
 connection.  Testing adding, changing, and removing device state with regards 
 to an ARI controlled device were successful.  Also tested [un]subscribing to 
 the events from device with success.  Planning on writing some testsuite test 
 cases as well.
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread Kevin Harwell


 On Nov. 21, 2013, 6:04 p.m., Mark Michelson wrote:
  branches/12/res/res_stasis_device_state.c, lines 142-149
  https://reviewboard.asterisk.org/r/3025/diff/1/?file=48549#file48549line142
 
  Instead of constructing a device_state_subscription and searching by 
  OBJ_SEARCH_OBJECT, just use the name that was passed in and search by 
  OBJ_SEARCH_KEY. That way, you save the overhead of the creation and 
  destruction of an ao2_object whenever this function is called.

I need to search by the app name and device name in order to find the device 
subscribed to and OBJ_SEARCH_KEY only allows me to search using a single string 
field, so I create the object and search on that instead.


 On Nov. 21, 2013, 6:04 p.m., Mark Michelson wrote:
  branches/12/res/res_stasis_device_state.c, lines 329-331
  https://reviewboard.asterisk.org/r/3025/diff/1/?file=48549#file48549line329
 
  You could save some cycles here by just calling 
  
  ao2_find(device_state_subscriptions, name, OBJ_SEARCH_KEY | OBJ_UNLINK 
  | OBJ_NODATA);

Similar to above.  The data stored in device_state_subscriptions is essentially 
keyed off of two values instead of one: app_name and device_name.  This is done 
because the list could contain subscriptions with multiple app and device 
names.  So searches/finds have to be able to pass in both keys if you will.  
It first tries to match on the device name and if found then it tries to match 
on the app_name.  If both match the search returns the located subscription for 
that app and device.


- Kevin


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


On Nov. 21, 2013, 1:12 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3025/
 ---
 
 (Updated Nov. 21, 2013, 1:12 p.m.)
 
 
 Review request for Asterisk Developers, David Lee and Matt Jordan.
 
 
 Bugs: ASTERISK-22838
 https://issues.asterisk.org/jira/browse/ASTERISK-22838
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Created a data model and implemented functionality for an ARI device state 
 resource.  The following operations have been added that allow a user to 
 manipulate an ARI controlled device:
 
 PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
 an ARI controlled device
 GET/device-states/{deviceName} - Retrieve the current state of a device
 DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI
 
 The ARI controlled device must begin with 'Stasis:'.  An example controlled 
 device name would be Stasis:Example.
 
 A 'DeviceStateChanged' event has also been added so that an application can 
 subscribe and receive device change events.  Any device state, ARI controlled 
 or not, can be subscribed to.
 
 While adding the event, the underlying subscription control mechanism was 
 refactored so that all current and future resource subscriptions would be the 
 same.  Each event resource must now register itself in order to be able to 
 properly handle [un]subscribes.
 
 
 Diffs
 -
 
   branches/12/rest-api/resources.json 402955 
   branches/12/rest-api/api-docs/events.json 402955 
   branches/12/rest-api/api-docs/deviceStates.json PRE-CREATION 
   branches/12/rest-api/api-docs/applications.json 402955 
   branches/12/res/stasis/app.c 402955 
   branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
   branches/12/res/res_stasis_device_state.c PRE-CREATION 
   branches/12/res/res_stasis.c 402955 
   branches/12/res/res_ari_deviceStates.c PRE-CREATION 
   branches/12/res/ari/resource_deviceStates.c PRE-CREATION 
   branches/12/res/ari/resource_deviceStates.h PRE-CREATION 
   branches/12/res/ari/resource_applications.h 402955 
   branches/12/res/ari/ari_model_validators.c 402955 
   branches/12/res/ari/ari_model_validators.h 402955 
   branches/12/res/ari.make 402955 
   branches/12/main/devicestate.c 402955 
   branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
   branches/12/include/asterisk/stasis_app.h 402955 
   branches/12/include/asterisk/devicestate.h 402955 
 
 Diff: https://reviewboard.asterisk.org/r/3025/diff/
 
 
 Testing
 ---
 
 Some basic testing done using the swagger framework and a websocket 
 connection.  Testing adding, changing, and removing device state with regards 
 to an ARI controlled device were successful.  Also tested [un]subscribing to 
 the events from device with success.  Planning on writing some testsuite test 
 cases as well.
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev 

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread Kevin Harwell

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

(Updated Nov. 21, 2013, 6:25 p.m.)


Review request for Asterisk Developers, David Lee and Matt Jordan.


Changes
---

Addressed review findings.


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


Repository: Asterisk


Description
---

Created a data model and implemented functionality for an ARI device state 
resource.  The following operations have been added that allow a user to 
manipulate an ARI controlled device:

PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
an ARI controlled device
GET/device-states/{deviceName} - Retrieve the current state of a device
DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI

The ARI controlled device must begin with 'Stasis:'.  An example controlled 
device name would be Stasis:Example.

A 'DeviceStateChanged' event has also been added so that an application can 
subscribe and receive device change events.  Any device state, ARI controlled 
or not, can be subscribed to.

While adding the event, the underlying subscription control mechanism was 
refactored so that all current and future resource subscriptions would be the 
same.  Each event resource must now register itself in order to be able to 
properly handle [un]subscribes.


Diffs (updated)
-

  branches/12/rest-api/resources.json 402993 
  branches/12/rest-api/api-docs/events.json 402993 
  branches/12/rest-api/api-docs/deviceStates.json PRE-CREATION 
  branches/12/rest-api/api-docs/applications.json 402993 
  branches/12/rest-api-templates/ari.make.mustache 402993 
  branches/12/res/stasis/app.c 402993 
  branches/12/res/stasis/app.h 402993 
  branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
  branches/12/res/res_stasis_device_state.c PRE-CREATION 
  branches/12/res/res_stasis.c 402993 
  branches/12/res/res_ari_device_states.c PRE-CREATION 
  branches/12/res/ari/resource_device_states.c PRE-CREATION 
  branches/12/res/ari/resource_device_states.h PRE-CREATION 
  branches/12/res/ari/resource_applications.h 402993 
  branches/12/res/ari/ari_model_validators.c 402993 
  branches/12/res/ari/ari_model_validators.h 402993 
  branches/12/res/ari.make 402993 
  branches/12/main/devicestate.c 402993 
  branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
  branches/12/include/asterisk/stasis_app.h 402993 
  branches/12/include/asterisk/devicestate.h 402993 

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


Testing
---

Some basic testing done using the swagger framework and a websocket connection. 
 Testing adding, changing, and removing device state with regards to an ARI 
controlled device were successful.  Also tested [un]subscribing to the events 
from device with success.  Planning on writing some testsuite test cases as 
well.


Thanks,

Kevin Harwell

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2994: ari:Add application/json parameter support

2013-11-21 Thread David Lee


 On Nov. 20, 2013, 6:07 p.m., Matt Jordan wrote:
  /branches/12/main/http.c, line 631
  https://reviewboard.asterisk.org/r/2994/diff/2/?file=48312#file48312line631
 
  Particularly since this is coming from an external source, we should 
  probably use sscanf.
  
  You pretty much do all of your checking for this already in 
  ast_http_get_json, so it might be a moot point, but hey - coding guidelines 
  :-)
 
 Matt Jordan wrote:
 Of course, this is auto-generated...

At the time, the handler didn't have a great way of handling parse failures
anyways, so atoi wasn't any different than using sscanf. Now I can handle
failures, so we could exit early with a 400 if someone gives a string for a
numeric input. But that's a change to the code generator, and outside of scope
for this patch.


- David


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


On Nov. 15, 2013, 12:29 p.m., David Lee wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/2994/
 ---
 
 (Updated Nov. 15, 2013, 12:29 p.m.)
 
 
 Review request for Asterisk Developers and Paul Belanger.
 
 
 Bugs: ASTERISK-22685
 https://issues.asterisk.org/jira/browse/ASTERISK-22685
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 The patch allows ARI to parse request parameters from an incoming JSON
 request body, instead of requiring the request to come in as query
 parameters (which is just weird for POST and DELETE) or form
 parameters (which is okay, but a bit asymmetric given that all of our
 responses are JSON).
 
 For any operation that does _not_ have a parameter defined of type
 body (i.e. paramType: body in the API declaration), if a request
 provides a request body with a Content type of application/json, the
 provided JSON document is parsed and searched for parameters.
 
 The expected fields in the provided JSON document should match the
 query parameters defined for the operation. If the parameter has
 'allowMultiple' set, then the field in the JSON document may
 optionally be an array of values.
 
 
 Diffs
 -
 
   /branches/12/tests/test_ari.c 402455 
   /branches/12/rest-api-templates/swagger_model.py 402455 
   /branches/12/rest-api-templates/res_ari_resource.c.mustache 402455 
   /branches/12/rest-api-templates/param_parsing.mustache 402455 
   /branches/12/rest-api-templates/asterisk_processor.py 402455 
   /branches/12/res/res_ari_sounds.c 402455 
   /branches/12/res/res_ari_recordings.c 402455 
   /branches/12/res/res_ari_playback.c 402455 
   /branches/12/res/res_ari_endpoints.c 402455 
   /branches/12/res/res_ari_channels.c 402455 
   /branches/12/res/res_ari_bridges.c 402455 
   /branches/12/res/res_ari_asterisk.c 402455 
   /branches/12/res/res_ari_applications.c 402455 
   /branches/12/res/res_ari.c 402455 
   /branches/12/main/http.c 402455 
   /branches/12/include/asterisk/http.h 402455 
   /branches/12/include/asterisk/ari.h 402455 
 
 Diff: https://reviewboard.asterisk.org/r/2994/diff/
 
 
 Testing
 ---
 
 Testsuite test.
 
 See https://reviewboard.asterisk.org/r/2993/
 
 
 Thanks,
 
 David Lee
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2959: pjsip: AMI commands and events

2013-11-21 Thread George Joseph
On Thu, Nov 21, 2013 at 7:25 AM, Joshua Colp jc...@digium.com wrote:

 George Joseph wrote:

 Just FYI...   I've got a whole bunch of pjsip cli stuff waiting on this
 patch to be committed.   Any chance of this happening this week?


 It'll get reviewed today and pending any other findings arising it'll go
 in shortly.

 If possible you could just throw your stuff up for review too and mark it
 as dependent on the AMI commands/events review (you can do that in
 Reviewboard now! yay!).

 Cheers,

 Yeah, I can attempt that this afternoon.  There's no way it would compile
even with 2959 applied first because of some workarounds I had to do.  It
would be a start though.
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3023: Add MixMonitor() option to specify channel variable into which to store the recording filename

2013-11-21 Thread Mark Michelson


 On Nov. 21, 2013, 2:17 p.m., Joshua Colp wrote:
  The code itself looks fine, the only nagging question I have is why not 
  just treat the variable as a temporary return variable in the case when you 
  have multiple MixMonitor instances and use Set in the dialplan to set 
  another variable to the value. *shrug*

Two reasons:

1) MixMonitor's invocation is not limited to the dialplan. It has the potential 
to be started by AMI as well. Therefore, if you had an oddball situation where 
both a dialplan invocation and an AMI invocation occurred simultaneously, 
there's a race condition where they each will think that MIXMONITOR_FILENAME is 
their filename.
2) There is precedent in MixMonitor for such an option. The 'i' option allows 
for you to specify a channel variable into which the MixMonitor's unique ID 
will be set. Having a similar option for a filename fits the mold pretty well 
also.


- Mark


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


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3023/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This change introduces an 'f' option for the MixMonitor() application. The 
 argument for this option specifies a channel variable into which the 
 application should store the filename (as in, the full path) instead of the 
 standard MIXMONITOR_FILENAME.
 
 The rationale for this option is that MixMonitor is structured in such a way 
 that a single channel may have multiple simultaneous MixMonitors running at 
 any given time. Thus, the MixMonitor application should not have any 
 assumptions that the channel has only a single MixMonitor being run on it. 
 Setting a single MIXMONITOR_FILENAME channel variable violates such 
 assumptions by overwriting the value set from previous invocations of 
 MixMonitor. By using the 'f' and 'i' options for MixMonitor, a user can 
 easily manage multiple recordings on a single channel.
 
 
 Diffs
 -
 
   /trunk/apps/app_mixmonitor.c 402883 
 
 Diff: https://reviewboard.asterisk.org/r/3023/diff/
 
 
 Testing
 ---
 
 See https://reviewboard.asterisk.org/r/3024/
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3023: Add MixMonitor() option to specify channel variable into which to store the recording filename

2013-11-21 Thread Mark Michelson


 On Nov. 21, 2013, 4:40 p.m., Tilghman Lesher wrote:
  Shouldn't something like this be a channel function from which you retrieve 
  the value, instead of specifying a variable into which the name is placed?  
  Seems like a significant regression in spitting things out to channel 
  variables, instead of using dialplan functions to retrieve values when 
  needed.

So you're thinking something like:

exten = blah,1,Answer()
  same = n,MixMonitor(file.wav,i(ID))
  same = n,NoOp(Filename is MIXMONITOR(${ID},file))

?

I'd be okay with it. The main reason I went with the channel variable approach 
was because of app_mixmonitor's pre-existing 'i' option. My thought was that 
this feels more consistent than providing a separate method of getting an 
instance-specific value.

Of course the attraction of the dialplan function route is that it is more 
scalable in case there are other instance-specific values that people wish to 
retrieve from a mixmonitor.


- Mark


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


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3023/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This change introduces an 'f' option for the MixMonitor() application. The 
 argument for this option specifies a channel variable into which the 
 application should store the filename (as in, the full path) instead of the 
 standard MIXMONITOR_FILENAME.
 
 The rationale for this option is that MixMonitor is structured in such a way 
 that a single channel may have multiple simultaneous MixMonitors running at 
 any given time. Thus, the MixMonitor application should not have any 
 assumptions that the channel has only a single MixMonitor being run on it. 
 Setting a single MIXMONITOR_FILENAME channel variable violates such 
 assumptions by overwriting the value set from previous invocations of 
 MixMonitor. By using the 'f' and 'i' options for MixMonitor, a user can 
 easily manage multiple recordings on a single channel.
 
 
 Diffs
 -
 
   /trunk/apps/app_mixmonitor.c 402883 
 
 Diff: https://reviewboard.asterisk.org/r/3023/diff/
 
 
 Testing
 ---
 
 See https://reviewboard.asterisk.org/r/3024/
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3003: ARI: Add the ability to snoop (spy/whisper) on channels

2013-11-21 Thread Matt Jordan


 On Nov. 14, 2013, 4:53 p.m., Mark Michelson wrote:
  /branches/12/res/res_stasis_snoop.c, line 142
  https://reviewboard.asterisk.org/r/3003/diff/3/?file=48153#file48153line142
 
  Hm, would it be more useful to publish the snoop messages on the spyee 
  channel's topic? I would suspect that most people would think of the 
  spyee's channel as the real channel and would expect to see the 
  publications on that channel instead of the snoop channel.
 
 Joshua Colp wrote:
 It's possible when spying is started to do that but doing it at the end 
 and guaranteeing you get it would require holding a reference to the channel, 
 which I avoided at all costs. As long as we're fine with that... then sure.

I'd prefer not, actually.

Usually, the channel that initiates the Spying is the one whose topic has the 
messages published on it. Granted, in this case, the Snoop channel is a little 
odd, but it is still the channel doing the Spying, not the target of the Spying 
operation. Switching the order of the channels here takes it out of alignment 
with the messages published in ChanSpy.

From a consumer perspective, most things that receive ChanSpy messages have 
also already subscribed to the ast_channel_topic_all topic, which means the 
individual channel topics are kind of a moot point.


- Matt


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


On Nov. 12, 2013, 6:43 p.m., Joshua Colp wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3003/
 ---
 
 (Updated Nov. 12, 2013, 6:43 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Bugs: ASTERISK-22780
 https://issues.asterisk.org/jira/browse/ASTERISK-22780
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This patch adds a snoop operation to channels which allows spying and 
 whispering to occur. The operation creates a Snoop channel, sends it into a 
 provided Stasis application, and returns a snapshot of it. Once in the Stasis 
 application any normal operation can be done with it (such as recording or 
 placing into a bridge).
 
 
 Diffs
 -
 
   /branches/12/rest-api/api-docs/channels.json 402707 
   /branches/12/res/res_stasis_snoop.exports.in PRE-CREATION 
   /branches/12/res/res_stasis_snoop.c PRE-CREATION 
   /branches/12/res/res_ari_channels.c 402707 
   /branches/12/res/ari/resource_channels.c 402707 
   /branches/12/res/ari/resource_channels.h 402707 
   /branches/12/main/audiohook.c 402707 
   /branches/12/include/asterisk/stasis_app_snoop.h PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3003/diff/
 
 
 Testing
 ---
 
 Used my softphone to call in and then swagger-ui to create snoop channels to 
 do various things. Testsuite test coming soon!
 
 
 Thanks,
 
 Joshua Colp
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3017: PickupChan: Add ability to specify channel uniqueids as well as channel names.

2013-11-21 Thread Joshua Colp

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

Ship it!


- Joshua Colp


On Nov. 18, 2013, 9:25 p.m., rmudgett wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3017/
 ---
 
 (Updated Nov. 18, 2013, 9:25 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 * Made PickupChan() search by channel uniqueids if the search could not find 
 a channel by name.
 
 * Ensured PickupChan() never considers the picking channel for pickup.
 
 * Made PickupChan() option p use a common search by name routine.  The 
 original search was erroneously case sensitive.
 
 
 Diffs
 -
 
   /trunk/apps/app_directed_pickup.c 402883 
   /trunk/CHANGES 402883 
 
 Diff: https://reviewboard.asterisk.org/r/3017/diff/
 
 
 Testing
 ---
 
 Picked up channels by name and uniqueid.
 
 
 Thanks,
 
 rmudgett
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3023: Add MixMonitor() option to specify channel variable into which to store the recording filename

2013-11-21 Thread Joshua Colp

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


The code itself looks fine, the only nagging question I have is why not just 
treat the variable as a temporary return variable in the case when you have 
multiple MixMonitor instances and use Set in the dialplan to set another 
variable to the value. *shrug*

- Joshua Colp


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3023/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This change introduces an 'f' option for the MixMonitor() application. The 
 argument for this option specifies a channel variable into which the 
 application should store the filename (as in, the full path) instead of the 
 standard MIXMONITOR_FILENAME.
 
 The rationale for this option is that MixMonitor is structured in such a way 
 that a single channel may have multiple simultaneous MixMonitors running at 
 any given time. Thus, the MixMonitor application should not have any 
 assumptions that the channel has only a single MixMonitor being run on it. 
 Setting a single MIXMONITOR_FILENAME channel variable violates such 
 assumptions by overwriting the value set from previous invocations of 
 MixMonitor. By using the 'f' and 'i' options for MixMonitor, a user can 
 easily manage multiple recordings on a single channel.
 
 
 Diffs
 -
 
   /trunk/apps/app_mixmonitor.c 402883 
 
 Diff: https://reviewboard.asterisk.org/r/3023/diff/
 
 
 Testing
 ---
 
 See https://reviewboard.asterisk.org/r/3024/
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3018: testsuite: Add tests for Say application jump behavior with SAY_DTMF_INTERRUPT enabled and disabled

2013-11-21 Thread Jonathan Rose


 On Nov. 21, 2013, 6:09 p.m., opticron wrote:
  /asterisk/trunk/tests/apps/say_interrupt/configs/ast1/sip.conf, lines 1-12
  https://reviewboard.asterisk.org/r/3018/diff/1/?file=48290#file48290line1
 
  This entire file seems irrelevant to the the test being added and 
  directs calls to a context that does not exist.

Confirmed. File removed.


- Jonathan


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


On Nov. 15, 2013, 12:07 a.m., Jonathan Rose wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3018/
 ---
 
 (Updated Nov. 15, 2013, 12:07 a.m.)
 
 
 Review request for Asterisk Developers, Mark Michelson and rmudgett.
 
 
 Repository: testsuite
 
 
 Description
 ---
 
 https://reviewboard.asterisk.org/r/3011/
 
 Tests the functionality of this feature, both when set and not set
 
 
 Diffs
 -
 
   /asterisk/trunk/tests/apps/tests.yaml 4343 
   /asterisk/trunk/tests/apps/say_interrupt/test-config.yaml PRE-CREATION 
   /asterisk/trunk/tests/apps/say_interrupt/configs/ast1/sip.conf PRE-CREATION 
   /asterisk/trunk/tests/apps/say_interrupt/configs/ast1/extensions.conf 
 PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3018/diff/
 
 
 Testing
 ---
 
 It's a test.  It runs and completes successfully on my box with all the 
 expected extensions being hit according to the logs. I changed some things 
 around and was easily able to make it fail in ways that I expected it to 
 fail, which is good. Changing the SAY_DTMF_INTERRUPT value in either test 
 from what it currently is causes failures, which is also good. All DTMF 
 values in the test must be issued for each test in order for the test to be 
 considered successful.
 
 
 Thanks,
 
 Jonathan Rose
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3019: ari: Add silence generator controls

2013-11-21 Thread David Lee

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

(Updated Nov. 21, 2013, 9:55 a.m.)


Status
--

This change has been marked as submitted.


Review request for Asterisk Developers and Joshua Colp.


Changes
---

Committed in revision 402926


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


Repository: Asterisk


Description
---

This patch adds the ability to start a silence generator on a channel
via ARI. This generator will play silence on the channel (avoiding audio
timeouts on the peer) until it is stopped, or some other media operation
is started (like playing media, starting music on hold, etc.).


Diffs
-

  /branches/12/rest-api/api-docs/channels.json 402842 
  /branches/12/res/stasis/control.c 402842 
  /branches/12/res/res_ari_channels.c 402842 
  /branches/12/res/ari/resource_channels.c 402842 
  /branches/12/res/ari/resource_channels.h 402842 
  /branches/12/include/asterisk/stasis_app.h 402842 

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


Testing
---

Manual testing.


Thanks,

David Lee

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3020: Test for consistent from tag on outbound REGISTER

2013-11-21 Thread Matt Jordan

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

Ship it!


Extraneous white space and a suggestion. Nice work!


/asterisk/trunk/tests/channels/SIP/outbound_register_from/sipp/register.xml
https://reviewboard.asterisk.org/r/3020/#comment19582

Red blob



/asterisk/trunk/tests/channels/SIP/outbound_register_from/test-config.yaml
https://reviewboard.asterisk.org/r/3020/#comment19581

Not that we use it terribly often, but the YAML actually 'supports' a 
dedicated tag for issues:

testinfo:
# If true, skip execution of this test
skip : 'Brief reason for skipping test' # OPTIONAL
# A summary of what the test does
summary: 'Put a short one liner summary of the test here'
# A detailed description of what functionality is covered by the test
description: |
'Put a more verbose description of the test here.  This may span
multiple lines.'
# A sequence of key/value pairs specifying issues in an issue tracker 
related to this test
issues: # OPTIONAL
# List of issue numbers associated with this test
- jira : 'ASTERISK-12345'
- jira : 'ASTERISK-10101'

It may be nice to put that in here, although it isn't necessary.



/asterisk/trunk/tests/channels/SIP/outbound_reregister_from/sipp/register.xml
https://reviewboard.asterisk.org/r/3020/#comment19584

And here



/asterisk/trunk/tests/channels/SIP/outbound_reregister_from/sipp/register.xml
https://reviewboard.asterisk.org/r/3020/#comment19583

Here too


- Matt Jordan


On Nov. 15, 2013, 9:42 p.m., Scott Griepentrog wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3020/
 ---
 
 (Updated Nov. 15, 2013, 9:42 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Bugs: ASTERISK-12117
 https://issues.asterisk.org/jira/browse/ASTERISK-12117
 
 
 Repository: testsuite
 
 
 Description
 ---
 
 This pair of tests were rewritten (from 
 https://reviewboard.asterisk.org/r/2985/) to use SIPp instead of pcap which 
 requires running as root.
 
 The From header is examined by SIPp (acting as registrar) to insure that it 
 is consistent for the duration of the test (reactor-timeout).  If it changes, 
 SIPp aborts early to indicate a failure.
 
 
 Diffs
 -
 
   /asterisk/trunk/tests/channels/SIP/tests.yaml 4344 
   
 /asterisk/trunk/tests/channels/SIP/outbound_reregister_from/test-config.yaml 
 PRE-CREATION 
   
 /asterisk/trunk/tests/channels/SIP/outbound_reregister_from/sipp/register.xml 
 PRE-CREATION 
   
 /asterisk/trunk/tests/channels/SIP/outbound_reregister_from/configs/ast1/sip.conf
  PRE-CREATION 
   /asterisk/trunk/tests/channels/SIP/outbound_register_from/test-config.yaml 
 PRE-CREATION 
   /asterisk/trunk/tests/channels/SIP/outbound_register_from/sipp/register.xml 
 PRE-CREATION 
   
 /asterisk/trunk/tests/channels/SIP/outbound_register_from/configs/ast1/sip.conf
  PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3020/diff/
 
 
 Testing
 ---
 
 Ran the tests with 1.8 prior to r402604 (patch to 12117) and after.  Test 
 properly indicates failure with unpatched code.
 
 
 Thanks,
 
 Scott Griepentrog
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2947: ARI: Adding a channel to a bridge while a live recording is active blocks

2013-11-21 Thread Kevin Harwell

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

(Updated Nov. 21, 2013, 2:24 p.m.)


Review request for Asterisk Developers.


Changes
---

Changed function to return enumeration.


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


Repository: Asterisk


Description
---

Added a channel recording flag that is checked before adding a channel to a 
bridge.  If the the channel is currently being recorded a 409 Conflict is 
returned and the channel is not added to the bridge.


Diffs (updated)
-

  branches/12/rest-api/api-docs/bridges.json 402969 
  branches/12/res/stasis/control.c 402969 
  branches/12/res/stasis/command.c 402969 
  branches/12/res/stasis/command.h 402969 
  branches/12/res/res_stasis_recording.c 402969 
  branches/12/res/res_stasis_playback.c 402969 
  branches/12/res/res_stasis_answer.c 402969 
  branches/12/res/res_ari_bridges.c 402969 
  branches/12/res/ari/resource_bridges.c 402969 
  branches/12/include/asterisk/stasis_app_impl.h 402969 
  branches/12/include/asterisk/stasis_app.h 402969 

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


Testing
---

Ran a manual test and also wrote a testsuite test: 
https://reviewboard.asterisk.org/r/2951/


Thanks,

Kevin Harwell

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread rmudgett


 On Nov. 22, 2013, 12:04 a.m., Mark Michelson wrote:
  branches/12/res/res_stasis_device_state.c, lines 142-149
  https://reviewboard.asterisk.org/r/3025/diff/1/?file=48549#file48549line142
 
  Instead of constructing a device_state_subscription and searching by 
  OBJ_SEARCH_OBJECT, just use the name that was passed in and search by 
  OBJ_SEARCH_KEY. That way, you save the overhead of the creation and 
  destruction of an ao2_object whenever this function is called.
 
 Kevin Harwell wrote:
 I need to search by the app name and device name in order to find the 
 device subscribed to and OBJ_SEARCH_KEY only allows me to search using a 
 single string field, so I create the object and search on that instead.

This is not true.  The OBJ_SEARCH_KEY could be anything you setup the container 
callbacks to take as the key.  The template code on the wiki assumes the key is 
a simple string.

In this case you could pass a struct pointer that contains two string pointers.
struct device_container_key {
  const char *app_name;
  const char *device_name;
}


- rmudgett


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


On Nov. 22, 2013, 12:25 a.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3025/
 ---
 
 (Updated Nov. 22, 2013, 12:25 a.m.)
 
 
 Review request for Asterisk Developers, David Lee and Matt Jordan.
 
 
 Bugs: ASTERISK-22838
 https://issues.asterisk.org/jira/browse/ASTERISK-22838
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Created a data model and implemented functionality for an ARI device state 
 resource.  The following operations have been added that allow a user to 
 manipulate an ARI controlled device:
 
 PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
 an ARI controlled device
 GET/device-states/{deviceName} - Retrieve the current state of a device
 DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI
 
 The ARI controlled device must begin with 'Stasis:'.  An example controlled 
 device name would be Stasis:Example.
 
 A 'DeviceStateChanged' event has also been added so that an application can 
 subscribe and receive device change events.  Any device state, ARI controlled 
 or not, can be subscribed to.
 
 While adding the event, the underlying subscription control mechanism was 
 refactored so that all current and future resource subscriptions would be the 
 same.  Each event resource must now register itself in order to be able to 
 properly handle [un]subscribes.
 
 
 Diffs
 -
 
   branches/12/rest-api/resources.json 402993 
   branches/12/rest-api/api-docs/events.json 402993 
   branches/12/rest-api/api-docs/deviceStates.json PRE-CREATION 
   branches/12/rest-api/api-docs/applications.json 402993 
   branches/12/rest-api-templates/ari.make.mustache 402993 
   branches/12/res/stasis/app.c 402993 
   branches/12/res/stasis/app.h 402993 
   branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
   branches/12/res/res_stasis_device_state.c PRE-CREATION 
   branches/12/res/res_stasis.c 402993 
   branches/12/res/res_ari_device_states.c PRE-CREATION 
   branches/12/res/ari/resource_device_states.c PRE-CREATION 
   branches/12/res/ari/resource_device_states.h PRE-CREATION 
   branches/12/res/ari/resource_applications.h 402993 
   branches/12/res/ari/ari_model_validators.c 402993 
   branches/12/res/ari/ari_model_validators.h 402993 
   branches/12/res/ari.make 402993 
   branches/12/main/devicestate.c 402993 
   branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
   branches/12/include/asterisk/stasis_app.h 402993 
   branches/12/include/asterisk/devicestate.h 402993 
 
 Diff: https://reviewboard.asterisk.org/r/3025/diff/
 
 
 Testing
 ---
 
 Some basic testing done using the swagger framework and a websocket 
 connection.  Testing adding, changing, and removing device state with regards 
 to an ARI controlled device were successful.  Also tested [un]subscribing to 
 the events from device with success.  Planning on writing some testsuite test 
 cases as well.
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3015: Testsuite: CONFBRIDGE_RESULT test

2013-11-21 Thread Joshua Colp

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

Ship it!


Ship It!


/asterisk/trunk/tests/apps/confbridge/confbridge_result/configs/ast1/extensions.conf
https://reviewboard.asterisk.org/r/3015/#comment19580

I'm picky but to a casual reader of this perhaps something descriptive 
instead of sausage would be nice?


- Joshua Colp


On Nov. 21, 2013, 3:40 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3015/
 ---
 
 (Updated Nov. 21, 2013, 3:40 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: testsuite
 
 
 Description
 ---
 
 This creates a test scenario that ensures that the five different 
 CONFBRIDGE_RESULT values are set correctly upon exit. The test sets up a 
 conference with five participants: Alice, Bob, Carol, Darnell, and Egbert.
 
 Alice, Bob, and Carol enter initially. Alice has the end_marked option set 
 on her user profile. Bob attempts to use a nonexistent user profile sausage 
 to enter the conference, and Carol has access to a basic user DTMF menu. When 
 Carol enters, this triggers Darnell to enter the conference. Darnell has 
 access to a basic admin menu and is a marked user. It also triggers Carol to 
 enter a DTMF sequence to leave the conference. When Darnell enters, this 
 triggers Egbert to enter the conference. When Egbert enters, this triggers 
 Darnell to press a DTMF sequence to kick Egbert out. When Egbert exits the 
 conference, this triggers Darnell to hang up. Since Darnell is the final 
 marked user in the conference, this should result in Alice being ejected from 
 the conference.
 
 Under this scenario, the CONFBRIDGE_RESULT variables should be as follows:
 Alice: ENDMARKED
 Bob: ERROR
 Carol: DTMF
 Darnell: HANGUP
 Egbert: KICKED
 
 
 Diffs
 -
 
   /asterisk/trunk/tests/apps/confbridge/tests.yaml 4331 
   /asterisk/trunk/tests/apps/confbridge/confbridge_result/test-config.yaml 
 PRE-CREATION 
   
 /asterisk/trunk/tests/apps/confbridge/confbridge_result/configs/ast1/manager.general.conf.inc
  PRE-CREATION 
   
 /asterisk/trunk/tests/apps/confbridge/confbridge_result/configs/ast1/extensions.conf
  PRE-CREATION 
   
 /asterisk/trunk/tests/apps/confbridge/confbridge_result/configs/ast1/confbridge.conf
  PRE-CREATION 
   /asterisk/trunk/lib/python/asterisk/apptest.py 4331 
 
 Diff: https://reviewboard.asterisk.org/r/3015/diff/
 
 
 Testing
 ---
 
 Ran the test in a while loop and ensured that in 30+ executions, the test 
 passed each time.
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2996: allow uncached realtime sip peers to be queue members

2013-11-21 Thread Joshua Colp


 On Nov. 7, 2013, 3:37 p.m., Joshua Colp wrote:
  To make sure I better understand the situation...
  
  Is it caching an old stale entry without address?
  
  Then when device state is queried it uses that old stale entry instead of 
  requerying realtime... so it thinks it has no address when in realtime 
  there really is an address?
 
 Joshua Colp wrote:
 Well, no, cause your title says uncached... I'm more confused about how 
 it's returning a peer because devicestate purposely doesn't check realtime.
 
 wdoekes wrote:
 Thanks for the review. We are indeed talking about uncached:
 
   rtcachefriends=no
 
 The relevant code:
 
   sip_devicestate(...)
   sip_find_peer(host, NULL, realtime=FALSE, FINDALLDEVICES, 
 devstate_only=TRUE, 0)
 
 if (!p  (realtime || devstate_only)) {
p = realtime_peer(peer, addr, devstate_only, which_objects);
 
   realtime_peer(...)
 
 if (ast_test_flag(global_flags[1], SIP_PAGE2_RTCACHEFRIENDS)  
 !devstate_only) {
   ...
   ao2_t_link(peers, peer, link peer into peers table);
 
 So, the devstate_only=TRUE initiates a realtime lookup anyway, but 
 ensures that the found peer isn't linked in the peers table (if 
 rtcachefriends were to be true).
 
 The comments in sip_devicestate could probably use some clarification.
 
 
 
 As for your question:
 
  Is it caching an old stale entry without address?
 
 No, it's returning the freshly loaded peer, but it will never have an 
 p-addr (unless it is currently in a call); the proxy takes care of that 
 stuff. So I need the devicestate to return what it knows, which is *nothing* 
 (unknown), not *unavailable*.
 
 Joshua Colp wrote:
 Proxy? An outbound proxy?
 
 wdoekes wrote:
 Indeed. A dialog-based one. The peer doesn't know it has one until I hit 
 Dial.

Yeah... that is the underlying problem here, which is why I'm uncomfortable 
with the change. Every other realtime user who isn't doing what you are doing 
loses out on knowing if the peer is available or not in a more granular 
fashion, since in their case the check is valid.


- Joshua


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


On Nov. 5, 2013, 2:41 p.m., wdoekes wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/2996/
 ---
 
 (Updated Nov. 5, 2013, 2:41 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 When using realtime SIP peers as queue members, the device state as returned 
 by sip_devicestate() is AST_DEVICE_UNAVAILABLE when the peer is not loaded 
 into memory.
 
 For uncached realtime SIP peers, this is practically always. That means that 
 my queue doesn't have any available members.
 
 This patch changes all p-realtime peers with a null p-addr to return 
 AST_DEVICE_UNKNOWN instead. If we set the queue to accept unknown members, 
 the queue correctly copes with devices with this UNKNOWN state:
 
 static int member_status_available(int status)
 {
 return status == AST_DEVICE_NOT_INUSE || status == AST_DEVICE_UNKNOWN;
 }
 
 
 A different approach would have been to set the p-defaddr to non-null, but 
 that would put the device in NOT_INUSE state which is not entirely correct, 
 since I don't know if the device *is* available. And I haven't checked what 
 other side-effects setting the p-defaddr has.
 
 
 Diffs
 -
 
   /branches/1.8/channels/chan_sip.c 402467 
 
 Diff: https://reviewboard.asterisk.org/r/2996/diff/
 
 
 Testing
 ---
 
 Tested on asterisk 10 and 11 with the SIP-devices in the state_interface 
 column. Without the patch, the device state is unavailable, and the queue 
 will report the members as unavailable. With the patch, the members have the 
 unknown state and things work properly. 
 
 
 Thanks,
 
 wdoekes
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3023: Add MixMonitor() option to specify channel variable into which to store the recording filename

2013-11-21 Thread Tilghman Lesher


 On Nov. 21, 2013, 4:40 p.m., Tilghman Lesher wrote:
  Shouldn't something like this be a channel function from which you retrieve 
  the value, instead of specifying a variable into which the name is placed?  
  Seems like a significant regression in spitting things out to channel 
  variables, instead of using dialplan functions to retrieve values when 
  needed.
 
 Mark Michelson wrote:
 So you're thinking something like:
 
 exten = blah,1,Answer()
   same = n,MixMonitor(file.wav,i(ID))
   same = n,NoOp(Filename is MIXMONITOR(${ID},file))
 
 ?
 
 I'd be okay with it. The main reason I went with the channel variable 
 approach was because of app_mixmonitor's pre-existing 'i' option. My thought 
 was that this feels more consistent than providing a separate method of 
 getting an instance-specific value.
 
 Of course the attraction of the dialplan function route is that it is 
 more scalable in case there are other instance-specific values that people 
 wish to retrieve from a mixmonitor.

${MIXMONITOR(${ID},file)} but sure.


- Tilghman


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


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3023/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 This change introduces an 'f' option for the MixMonitor() application. The 
 argument for this option specifies a channel variable into which the 
 application should store the filename (as in, the full path) instead of the 
 standard MIXMONITOR_FILENAME.
 
 The rationale for this option is that MixMonitor is structured in such a way 
 that a single channel may have multiple simultaneous MixMonitors running at 
 any given time. Thus, the MixMonitor application should not have any 
 assumptions that the channel has only a single MixMonitor being run on it. 
 Setting a single MIXMONITOR_FILENAME channel variable violates such 
 assumptions by overwriting the value set from previous invocations of 
 MixMonitor. By using the 'f' and 'i' options for MixMonitor, a user can 
 easily manage multiple recordings on a single channel.
 
 
 Diffs
 -
 
   /trunk/apps/app_mixmonitor.c 402883 
 
 Diff: https://reviewboard.asterisk.org/r/3023/diff/
 
 
 Testing
 ---
 
 See https://reviewboard.asterisk.org/r/3024/
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3018: testsuite: Add tests for Say application jump behavior with SAY_DTMF_INTERRUPT enabled and disabled

2013-11-21 Thread opticron

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



/asterisk/trunk/tests/apps/say_interrupt/configs/ast1/sip.conf
https://reviewboard.asterisk.org/r/3018/#comment19585

This entire file seems irrelevant to the the test being added and directs 
calls to a context that does not exist.


- opticron


On Nov. 14, 2013, 6:07 p.m., Jonathan Rose wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3018/
 ---
 
 (Updated Nov. 14, 2013, 6:07 p.m.)
 
 
 Review request for Asterisk Developers, Mark Michelson and rmudgett.
 
 
 Repository: testsuite
 
 
 Description
 ---
 
 https://reviewboard.asterisk.org/r/3011/
 
 Tests the functionality of this feature, both when set and not set
 
 
 Diffs
 -
 
   /asterisk/trunk/tests/apps/tests.yaml 4343 
   /asterisk/trunk/tests/apps/say_interrupt/test-config.yaml PRE-CREATION 
   /asterisk/trunk/tests/apps/say_interrupt/configs/ast1/sip.conf PRE-CREATION 
   /asterisk/trunk/tests/apps/say_interrupt/configs/ast1/extensions.conf 
 PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3018/diff/
 
 
 Testing
 ---
 
 It's a test.  It runs and completes successfully on my box with all the 
 expected extensions being hit according to the logs. I changed some things 
 around and was easily able to make it fail in ways that I expected it to 
 fail, which is good. Changing the SAY_DTMF_INTERRUPT value in either test 
 from what it currently is causes failures, which is also good. All DTMF 
 values in the test must be issued for each test in order for the test to be 
 considered successful.
 
 
 Thanks,
 
 Jonathan Rose
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3024: Testsuite: Test the MixMonitor 'f' option

2013-11-21 Thread Mark Michelson


 On Nov. 21, 2013, 3:38 p.m., Joshua Colp wrote:
  I don't see where the user event is actually checked... shouldn't you have 
  specified the requirement of a Yay event in your test-config.yaml?

Nope, SimpleTestCase determines pass/fail based solely on the number of 
UserEvents that are received. So in my test, I send a UserEvent if the value is 
as expected; otherwise I NoOp. It doesn't matter what the content of the 
UserEvent is for SimpleTestCase, just that it exists.


- Mark


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


On Nov. 20, 2013, 9:12 p.m., Mark Michelson wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/3024/
 ---
 
 (Updated Nov. 20, 2013, 9:12 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Repository: testsuite
 
 
 Description
 ---
 
 This adds a simple test that ensures the 'f' option to MixMonitor performs as 
 documented.
 
 
 Diffs
 -
 
   /asterisk/trunk/tests/apps/tests.yaml 4331 
   /asterisk/trunk/tests/apps/mixmonitor_f_option/test-config.yaml 
 PRE-CREATION 
   /asterisk/trunk/tests/apps/mixmonitor_f_option/configs/ast1/extensions.conf 
 PRE-CREATION 
 
 Diff: https://reviewboard.asterisk.org/r/3024/diff/
 
 
 Testing
 ---
 
 Test consistently passes.
 
 
 Thanks,
 
 Mark Michelson
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3015: Testsuite: CONFBRIDGE_RESULT test

2013-11-21 Thread Mark Michelson

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

(Updated Nov. 21, 2013, 3:40 p.m.)


Review request for Asterisk Developers.


Changes
---

Get full review up.


Repository: testsuite


Description
---

This creates a test scenario that ensures that the five different 
CONFBRIDGE_RESULT values are set correctly upon exit. The test sets up a 
conference with five participants: Alice, Bob, Carol, Darnell, and Egbert.

Alice, Bob, and Carol enter initially. Alice has the end_marked option set on 
her user profile. Bob attempts to use a nonexistent user profile sausage to 
enter the conference, and Carol has access to a basic user DTMF menu. When 
Carol enters, this triggers Darnell to enter the conference. Darnell has access 
to a basic admin menu and is a marked user. It also triggers Carol to enter a 
DTMF sequence to leave the conference. When Darnell enters, this triggers 
Egbert to enter the conference. When Egbert enters, this triggers Darnell to 
press a DTMF sequence to kick Egbert out. When Egbert exits the conference, 
this triggers Darnell to hang up. Since Darnell is the final marked user in the 
conference, this should result in Alice being ejected from the conference.

Under this scenario, the CONFBRIDGE_RESULT variables should be as follows:
Alice: ENDMARKED
Bob: ERROR
Carol: DTMF
Darnell: HANGUP
Egbert: KICKED


Diffs (updated)
-

  /asterisk/trunk/tests/apps/confbridge/tests.yaml 4331 
  /asterisk/trunk/tests/apps/confbridge/confbridge_result/test-config.yaml 
PRE-CREATION 
  
/asterisk/trunk/tests/apps/confbridge/confbridge_result/configs/ast1/manager.general.conf.inc
 PRE-CREATION 
  
/asterisk/trunk/tests/apps/confbridge/confbridge_result/configs/ast1/extensions.conf
 PRE-CREATION 
  
/asterisk/trunk/tests/apps/confbridge/confbridge_result/configs/ast1/confbridge.conf
 PRE-CREATION 
  /asterisk/trunk/lib/python/asterisk/apptest.py 4331 

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


Testing
---

Ran the test in a while loop and ensured that in 30+ executions, the test 
passed each time.


Thanks,

Mark Michelson

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 3025: ARI: Implement device state API

2013-11-21 Thread Kevin Harwell

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

(Updated Nov. 21, 2013, 1:12 p.m.)


Review request for Asterisk Developers, David Lee and Matt Jordan.


Changes
---

Addressed various review findings.  Also, Added a listing command: GET 
/deviceStates


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


Repository: Asterisk


Description
---

Created a data model and implemented functionality for an ARI device state 
resource.  The following operations have been added that allow a user to 
manipulate an ARI controlled device:

PUT/device-states/{deviceName}{deviceState} - Create/Change the state of 
an ARI controlled device
GET/device-states/{deviceName} - Retrieve the current state of a device
DELETE /device-states/{deviceName} - Destroy a device-state controlled by ARI

The ARI controlled device must begin with 'Stasis:'.  An example controlled 
device name would be Stasis:Example.

A 'DeviceStateChanged' event has also been added so that an application can 
subscribe and receive device change events.  Any device state, ARI controlled 
or not, can be subscribed to.

While adding the event, the underlying subscription control mechanism was 
refactored so that all current and future resource subscriptions would be the 
same.  Each event resource must now register itself in order to be able to 
properly handle [un]subscribes.


Diffs (updated)
-

  branches/12/rest-api/resources.json 402955 
  branches/12/rest-api/api-docs/events.json 402955 
  branches/12/rest-api/api-docs/deviceStates.json PRE-CREATION 
  branches/12/rest-api/api-docs/applications.json 402955 
  branches/12/res/stasis/app.c 402955 
  branches/12/res/res_stasis_device_state.exports.in PRE-CREATION 
  branches/12/res/res_stasis_device_state.c PRE-CREATION 
  branches/12/res/res_stasis.c 402955 
  branches/12/res/res_ari_deviceStates.c PRE-CREATION 
  branches/12/res/ari/resource_deviceStates.c PRE-CREATION 
  branches/12/res/ari/resource_deviceStates.h PRE-CREATION 
  branches/12/res/ari/resource_applications.h 402955 
  branches/12/res/ari/ari_model_validators.c 402955 
  branches/12/res/ari/ari_model_validators.h 402955 
  branches/12/res/ari.make 402955 
  branches/12/main/devicestate.c 402955 
  branches/12/include/asterisk/stasis_app_device_state.h PRE-CREATION 
  branches/12/include/asterisk/stasis_app.h 402955 
  branches/12/include/asterisk/devicestate.h 402955 

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


Testing
---

Some basic testing done using the swagger framework and a websocket connection. 
 Testing adding, changing, and removing device state with regards to an ARI 
controlled device were successful.  Also tested [un]subscribing to the events 
from device with success.  Planning on writing some testsuite test cases as 
well.


Thanks,

Kevin Harwell

-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] [Code Review] 2947: ARI: Adding a channel to a bridge while a live recording is active blocks

2013-11-21 Thread Kevin Harwell


 On Nov. 21, 2013, 12:53 p.m., opticron wrote:
  branches/12/include/asterisk/stasis_app.h, line 180
  https://reviewboard.asterisk.org/r/2947/diff/5/?file=48327#file48327line180
 
  This should return the enum instead of int.

The problem with making this an enum is currently it is assumed different enum 
types could be returned.  So instead of having a single master enum for all 
result types, resources could define and use their expected result types 
specific to their modules.


- Kevin


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


On Nov. 15, 2013, 1:41 p.m., Kevin Harwell wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviewboard.asterisk.org/r/2947/
 ---
 
 (Updated Nov. 15, 2013, 1:41 p.m.)
 
 
 Review request for Asterisk Developers.
 
 
 Bugs: ASTERISK-22624
 https://issues.asterisk.org/jira/browse/ASTERISK-22624
 
 
 Repository: Asterisk
 
 
 Description
 ---
 
 Added a channel recording flag that is checked before adding a channel to a 
 bridge.  If the the channel is currently being recorded a 409 Conflict is 
 returned and the channel is not added to the bridge.
 
 
 Diffs
 -
 
   branches/12/rest-api/api-docs/bridges.json 402853 
   branches/12/res/stasis/control.c 402853 
   branches/12/res/stasis/command.c 402853 
   branches/12/res/stasis/command.h 402853 
   branches/12/res/res_stasis_recording.c 402853 
   branches/12/res/res_stasis_playback.c 402853 
   branches/12/res/res_stasis_answer.c 402853 
   branches/12/res/res_ari_bridges.c 402853 
   branches/12/res/ari/resource_bridges.c 402853 
   branches/12/include/asterisk/stasis_app_impl.h 402853 
   branches/12/include/asterisk/stasis_app.h 402853 
 
 Diff: https://reviewboard.asterisk.org/r/2947/diff/
 
 
 Testing
 ---
 
 Ran a manual test and also wrote a testsuite test: 
 https://reviewboard.asterisk.org/r/2951/
 
 
 Thanks,
 
 Kevin Harwell
 


-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev