2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Asterisk  - -  An  open  source  telephony  toolkit . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Copyright  ( C )  2012  -  2013 ,  Digium ,  Inc . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  David  M .  Lee ,  II  < dlee @ digium . com > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  See  http : //www.asterisk.org for more information about
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  Asterisk  project .  Please  do  not  directly  contact 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  any  of  the  maintainers  of  this  project  for  assistance ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  project  provides  a  web  site ,  mailing  lists  and  IRC 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  channels  for  your  use . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  free  software ,  distributed  under  the  terms  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  GNU  General  Public  License  Version  2.  See  the  LICENSE  file 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  at  the  top  of  the  source  tree . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*! \file
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Generated  file  -  declares  stubs  to  be  implemented  in 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-27 23:11:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  res / ari / resource_channels . c 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Channel  resources 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ author  David  M .  Lee ,  II  < dlee @ digium . com > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ! ! ! ! !                                DO  NOT  EDIT                         ! ! ! ! ! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  file  is  generated  by  a  mustache  template .  Please  see  the  original 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-27 23:11:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  template  in  rest - api - templates / ari_resource . h . mustache 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifndef _ASTERISK_RESOURCE_CHANNELS_H 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define _ASTERISK_RESOURCE_CHANNELS_H 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-07-27 23:11:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "asterisk/ari.h" 
  
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_list() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_list_args  {  
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
									
										
										
										
											2013-10-16 14:02:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ brief  List  all  active  channels  in  Asterisk . 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_list ( struct  ast_variable  * headers ,  struct  ast_ari_channels_list_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_originate() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_originate_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Endpoint to call. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * endpoint ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The extension to dial after the endpoint answers. Mutually exclusive with 'app'. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * extension ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * context ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-28 16:23:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									long  priority ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'. */ 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-07 18:54:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * label ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-28 16:23:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * app ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-28 16:23:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * app_args ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! CallerID to use when dialing the endpoint or extension. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-07 18:39:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * caller_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Timeout (in seconds) before giving up dialing, or -1 for no timeout. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-07 18:39:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  timeout ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-03 16:14:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": { "CALLERID(name)": "Alice" } } */ 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									struct  ast_json  * variables ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The unique id to assign the channel on creation. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The unique id to assign the second channel when using local channels. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * other_channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-09 15:45:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The unique id of the channel which is originating this one. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * originator ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-16 18:59:54 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The format name capability list to use if originator is not specified. Ex. "ulaw,slin16".  Format names can be found with "core show codecs". */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-27 13:49:42 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * formats ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_originate_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_originate_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Create  a  new  channel  ( originate ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2013-10-19 14:45:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  The  new  channel  is  created  immediately  and  a  snapshot  of  it  returned .  If  a  Stasis  application  is  provided  it  will  be  automatically  subscribed  to  the  originated  channel  for  further  events  and  updates . 
							 
						 
					
						
							
								
									
										
										
										
											2013-09-09 19:09:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_originate ( struct  ast_variable  * headers ,  struct  ast_ari_channels_originate_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2016-03-30 17:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_create() */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  ast_ari_channels_create_args  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Endpoint for channel communication */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * endpoint ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Stasis Application to place channel into */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * app ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * app_args ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The unique id to assign the channel on creation. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The unique id to assign the second channel when using local channels. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * other_channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Unique ID of the calling channel */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * originator ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-04 10:27:48 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The format name capability list to use if originator is not specified. Ex. "ulaw,slin16".  Format names can be found with "core show codecs". */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-27 13:49:42 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * formats ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-12 20:15:41 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": { "CALLERID(name)": "Alice" } } */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * variables ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-30 17:01:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / create . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_create_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_create_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Create  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_create ( struct  ast_variable  * headers ,  struct  ast_ari_channels_create_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_get() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_get_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Channel  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_get ( struct  ast_variable  * headers ,  struct  ast_ari_channels_get_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_originate_with_id() */  
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_originate_with_id_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The unique id to assign the channel on creation. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Endpoint to call. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * endpoint ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The extension to dial after the endpoint answers. Mutually exclusive with 'app'. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * extension ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The context to dial after the endpoint answers. If omitted, uses 'default'. Mutually exclusive with 'app'. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * context ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The priority to dial after the endpoint answers. If omitted, uses 1. Mutually exclusive with 'app'. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									long  priority ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The label to dial after the endpoint answers. Will supersede 'priority' if provided. Mutually exclusive with 'app'. */ 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-07 18:54:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * label ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The application that is subscribed to the originated channel. When the channel is answered, it will be passed to this Stasis application. Mutually exclusive with 'context', 'extension', 'priority', and 'label'. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * app ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The application arguments to pass to the Stasis application provided by 'app'. Mutually exclusive with 'context', 'extension', 'priority', and 'label'. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * app_args ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! CallerID to use when dialing the endpoint or extension. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * caller_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Timeout (in seconds) before giving up dialing, or -1 for no timeout. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  timeout ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-03 16:14:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": { "CALLERID(name)": "Alice" } } */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									struct  ast_json  * variables ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The unique id to assign the second channel when using local channels. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * other_channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-09 15:45:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The unique id of the channel which is originating this one. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * originator ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-16 18:59:54 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The format name capability list to use if originator is not specified. Ex. "ulaw,slin16".  Format names can be found with "core show codecs". */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-05-27 13:49:42 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * formats ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_originate_with_id_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_originate_with_id_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Create  a  new  channel  ( originate  with  id ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  The  new  channel  is  created  immediately  and  a  snapshot  of  it  returned .  If  a  Stasis  application  is  provided  it  will  be  automatically  subscribed  to  the  originated  channel  for  further  events  and  updates . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_originate_with_id ( struct  ast_variable  * headers ,  struct  ast_ari_channels_originate_with_id_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_hangup() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_hangup_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-09 16:26:46 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The reason code for hanging up the channel for detail use. Mutually exclusive with 'reason'. See detail hangup codes at here. https://docs.asterisk.org/Configuration/Miscellaneous/Hangup-Cause-Mappings/ */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 01:26:46 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * reason_code ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Reason for hanging up the channel for simple use. Mutually exclusive with 'reason_code'. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * reason ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_hangup_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_hangup_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Delete  ( i . e .  hangup )  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_hangup ( struct  ast_variable  * headers ,  struct  ast_ari_channels_hangup_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_continue_in_dialplan() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_continue_in_dialplan_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The context to continue to. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-26 19:29:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * context ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The extension to continue to. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-26 19:29:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * extension ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The priority to continue to. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-26 19:29:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  priority ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-07 18:54:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The label to continue to - will supersede 'priority' if both are provided. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * label ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / continue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_continue_in_dialplan_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_continue_in_dialplan_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Exit  application ;  continue  execution  in  the  dialplan . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_continue_in_dialplan ( struct  ast_variable  * headers ,  struct  ast_ari_channels_continue_in_dialplan_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2019-03-07 07:52:20 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_move() */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  ast_ari_channels_move_args  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The channel will be passed to this Stasis application. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * app ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The application arguments to pass to the Stasis application provided by 'app'. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * app_args ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / move . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_move_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_move_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Move  the  channel  from  one  Stasis  application  to  another . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_move ( struct  ast_variable  * headers ,  struct  ast_ari_channels_move_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
											 
										
											
												ARI/PJSIP: Add the ability to redirect (transfer) a channel in a Stasis app
This patch adds a new feature to ARI to redirect a channel to another server,
and fixes a few bugs in PJSIP's handling of the Transfer dialplan
application/ARI redirect capability.
*New Feature*
A new operation has been added to the ARI channels resource, redirect. With
this, a channel in a Stasis application can be redirected to another endpoint
of the same underlying channel technology.
*Bug fixes*
In the process of writing this new feature, two bugs were fixed in the PJSIP
stack:
(1) The existing .transfer channel callback had the limitation that it could
    only transfer channels to a SIP URI, i.e., you had to pass
    'PJSIP/sip:foo@my_provider.com' to the dialplan application. While this is
    still supported, it is somewhat unintuitive - particularly in a world full
    of endpoints. As such, we now also support specifying the PJSIP endpoint to
    transfer to.
(2) res_pjsip_multihomed was, unfortunately, trying to 'help' a 302 redirect by
    updating its Contact header. Alas, that resulted in the forwarding
    destination set by the dialplan application/ARI resource/whatever being
    rewritten with very incorrect information. Hence, we now don't bother
    updating an outgoing response if it is a 302. Since this took a looong time
    to find, some additional debug statements have been added to those modules
    that update the Contact headers.
Review: https://reviewboard.asterisk.org/r/4316/
ASTERISK-24015 #close
Reported by: Private Name
ASTERISK-24703 #close
Reported by: Matt Jordan
........
Merged revisions 431717 from http://svn.asterisk.org/svn/asterisk/branches/13
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@431718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2015-02-12 20:34:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_redirect() */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  ast_ari_channels_redirect_args  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The endpoint to redirect the channel to */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * endpoint ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / redirect . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_redirect_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_redirect_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Redirect  the  channel  to  a  different  location . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_redirect ( struct  ast_variable  * headers ,  struct  ast_ari_channels_redirect_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_answer() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_answer_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Answer  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_answer ( struct  ast_variable  * headers ,  struct  ast_ari_channels_answer_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_ring() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_ring_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Indicate  ringing  to  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_ring ( struct  ast_variable  * headers ,  struct  ast_ari_channels_ring_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_ring_stop() */  
						 
					
						
							
								
									
										
										
										
											2013-11-13 23:11:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_ring_stop_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-13 23:11:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Stop  ringing  indication  on  a  channel  if  locally  generated . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_ring_stop ( struct  ast_variable  * headers ,  struct  ast_ari_channels_ring_stop_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2025-07-30 14:24:07 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_progress() */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  ast_ari_channels_progress_args  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Indicate  progress  on  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_progress ( struct  ast_variable  * headers ,  struct  ast_ari_channels_progress_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_send_dtmf() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_send_dtmf_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! DTMF To send. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * dtmf ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Amount of time to wait before DTMF digits (specified in milliseconds) start. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  before ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Amount of time in between DTMF digits (specified in milliseconds). */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  between ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Length of each DTMF digit (specified in milliseconds). */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  duration ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Amount of time to wait after DTMF digits (specified in milliseconds) end. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  after ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / dtmf . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_send_dtmf_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_send_dtmf_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 14:38:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Send  provided  DTMF  to  a  given  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_send_dtmf ( struct  ast_variable  * headers ,  struct  ast_ari_channels_send_dtmf_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_mute() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_mute_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Direction in which to mute audio */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * direction ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / mute . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_mute_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_mute_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Mute  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_mute ( struct  ast_variable  * headers ,  struct  ast_ari_channels_mute_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_unmute() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_unmute_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Direction in which to unmute audio */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * direction ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / mute . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_unmute_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_unmute_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Unmute  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_unmute ( struct  ast_variable  * headers ,  struct  ast_ari_channels_unmute_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_hold() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_hold_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Hold  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_hold ( struct  ast_variable  * headers ,  struct  ast_ari_channels_hold_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_unhold() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_unhold_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Remove  a  channel  from  hold . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_unhold ( struct  ast_variable  * headers ,  struct  ast_ari_channels_unhold_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_start_moh() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_start_moh_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-19 19:40:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Music on hold class to use */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-19 19:40:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * moh_class ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / moh . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_start_moh_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_start_moh_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-07-19 19:40:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Play  music  on  hold  to  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-21 15:56:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Using  media  operations  such  as  / play  on  a  channel  playing  MOH  in  this  manner  will  suspend  MOH  without  resuming  automatically .  If  continuing  music  on  hold  is  desired ,  the  stasis  application  must  reinitiate  music  on  hold . 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-19 19:40:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_start_moh ( struct  ast_variable  * headers ,  struct  ast_ari_channels_start_moh_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_stop_moh() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_stop_moh_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-19 19:40:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Stop  playing  music  on  hold  to  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_stop_moh ( struct  ast_variable  * headers ,  struct  ast_ari_channels_stop_moh_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_start_silence() */  
						 
					
						
							
								
									
										
										
										
											2013-11-21 15:56:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_start_silence_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-21 15:56:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Play  silence  to  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Using  media  operations  such  as  / play  on  a  channel  playing  silence  in  this  manner  will  suspend  silence  without  resuming  automatically . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_start_silence ( struct  ast_variable  * headers ,  struct  ast_ari_channels_start_silence_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_stop_silence() */  
						 
					
						
							
								
									
										
										
										
											2013-11-21 15:56:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_stop_silence_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-21 15:56:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Stop  playing  silence  to  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_stop_silence ( struct  ast_variable  * headers ,  struct  ast_ari_channels_stop_silence_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_play() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_play_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												ARI: Add the ability to play multiple media URIs in a single operation
Many ARI applications will want to play multiple media files in a row to
a resource. The most common use case is when building long-ish IVR prompts
made up of multiple, smaller sound files. Today, that requires building a
small state machine, listening for each PlaybackFinished event, and triggering
the next sound file to play. While not especially challenging, it is tedious
work. Since requiring developers to write tedious code to do normal activities
stinks, this patch adds the ability to play back a list of media files to a
resource.
Each of the 'play' operations on supported resources (channels and bridges)
now accepts a comma delineated list of media URIs to play. A single Playback
resource is created as a handle to the entire list. The operation of playing
a list is identical to playing a single media URI, save that a new event,
PlaybackContinuing, is raised instead of a PlaybackFinished for each non-final
media URI. When the entire list is finished being played, a PlaybackFinished
event is raised.
In order to help inform applications where they are in the list playback, the
Playback resource now includes a new, optional attribute, 'next_media_uri',
that contains the next URI in the list to be played.
It's important to note the following:
 - If an offset is provided to the 'play' operations, it only applies to the
   first media URI, as it would be weird to skip n seconds forward in every
   media resource.
 - Operations that control the position of the media only affect the current
   media being played. For example, once a media resource in the list
   completes, a 'reverse' operation on a subsequent media resource will not
   start a previously completed media resource at the appropiate offset.
 - This patch does not add any new operations to control the list. Hopefully,
   user feedback and/or future patches would add that if people want it.
ASTERISK-26022 #close
Change-Id: Ie1ea5356573447b8f51f2e7964915ea01792f16f
											 
										 
										
											2016-04-18 18:17:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Array of Media URIs to play. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * * media ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Length of media array. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									size_t  media_count ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Parsing context for media. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									char  * media_parse ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! For sounds, selects language for sound. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-05-23 20:11:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * lang ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												ARI: Add the ability to play multiple media URIs in a single operation
Many ARI applications will want to play multiple media files in a row to
a resource. The most common use case is when building long-ish IVR prompts
made up of multiple, smaller sound files. Today, that requires building a
small state machine, listening for each PlaybackFinished event, and triggering
the next sound file to play. While not especially challenging, it is tedious
work. Since requiring developers to write tedious code to do normal activities
stinks, this patch adds the ability to play back a list of media files to a
resource.
Each of the 'play' operations on supported resources (channels and bridges)
now accepts a comma delineated list of media URIs to play. A single Playback
resource is created as a handle to the entire list. The operation of playing
a list is identical to playing a single media URI, save that a new event,
PlaybackContinuing, is raised instead of a PlaybackFinished for each non-final
media URI. When the entire list is finished being played, a PlaybackFinished
event is raised.
In order to help inform applications where they are in the list playback, the
Playback resource now includes a new, optional attribute, 'next_media_uri',
that contains the next URI in the list to be played.
It's important to note the following:
 - If an offset is provided to the 'play' operations, it only applies to the
   first media URI, as it would be weird to skip n seconds forward in every
   media resource.
 - Operations that control the position of the media only affect the current
   media being played. For example, once a media resource in the list
   completes, a 'reverse' operation on a subsequent media resource will not
   start a previously completed media resource at the appropiate offset.
 - This patch does not add any new operations to control the list. Hopefully,
   user feedback and/or future patches would add that if people want it.
ASTERISK-26022 #close
Change-Id: Ie1ea5356573447b8f51f2e7964915ea01792f16f
											 
										 
										
											2016-04-18 18:17:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-05-23 20:21:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  offsetms ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Number of milliseconds to skip for forward/reverse operations. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-05-23 20:21:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  skipms ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Playback ID. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * playback_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / play . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_play_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_play_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Start  playback  of  media . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-17 21:57:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  The  media  URI  may  be  any  of  a  number  of  URI ' s .  Currently  sound : ,  recording : ,  number : ,  digits : ,  characters : ,  and  tone :  URI ' s  are  supported .  This  operation  creates  a  playback  resource  that  can  be  used  to  control  the  playback  of  media  ( pause ,  rewind ,  fast  forward ,  etc . ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_play ( struct  ast_variable  * headers ,  struct  ast_ari_channels_play_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_play_with_id() */  
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_play_with_id_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Playback ID. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * playback_id ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												ARI: Add the ability to play multiple media URIs in a single operation
Many ARI applications will want to play multiple media files in a row to
a resource. The most common use case is when building long-ish IVR prompts
made up of multiple, smaller sound files. Today, that requires building a
small state machine, listening for each PlaybackFinished event, and triggering
the next sound file to play. While not especially challenging, it is tedious
work. Since requiring developers to write tedious code to do normal activities
stinks, this patch adds the ability to play back a list of media files to a
resource.
Each of the 'play' operations on supported resources (channels and bridges)
now accepts a comma delineated list of media URIs to play. A single Playback
resource is created as a handle to the entire list. The operation of playing
a list is identical to playing a single media URI, save that a new event,
PlaybackContinuing, is raised instead of a PlaybackFinished for each non-final
media URI. When the entire list is finished being played, a PlaybackFinished
event is raised.
In order to help inform applications where they are in the list playback, the
Playback resource now includes a new, optional attribute, 'next_media_uri',
that contains the next URI in the list to be played.
It's important to note the following:
 - If an offset is provided to the 'play' operations, it only applies to the
   first media URI, as it would be weird to skip n seconds forward in every
   media resource.
 - Operations that control the position of the media only affect the current
   media being played. For example, once a media resource in the list
   completes, a 'reverse' operation on a subsequent media resource will not
   start a previously completed media resource at the appropiate offset.
 - This patch does not add any new operations to control the list. Hopefully,
   user feedback and/or future patches would add that if people want it.
ASTERISK-26022 #close
Change-Id: Ie1ea5356573447b8f51f2e7964915ea01792f16f
											 
										 
										
											2016-04-18 18:17:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Array of Media URIs to play. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * * media ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Length of media array. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									size_t  media_count ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Parsing context for media. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									char  * media_parse ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! For sounds, selects language for sound. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * lang ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												ARI: Add the ability to play multiple media URIs in a single operation
Many ARI applications will want to play multiple media files in a row to
a resource. The most common use case is when building long-ish IVR prompts
made up of multiple, smaller sound files. Today, that requires building a
small state machine, listening for each PlaybackFinished event, and triggering
the next sound file to play. While not especially challenging, it is tedious
work. Since requiring developers to write tedious code to do normal activities
stinks, this patch adds the ability to play back a list of media files to a
resource.
Each of the 'play' operations on supported resources (channels and bridges)
now accepts a comma delineated list of media URIs to play. A single Playback
resource is created as a handle to the entire list. The operation of playing
a list is identical to playing a single media URI, save that a new event,
PlaybackContinuing, is raised instead of a PlaybackFinished for each non-final
media URI. When the entire list is finished being played, a PlaybackFinished
event is raised.
In order to help inform applications where they are in the list playback, the
Playback resource now includes a new, optional attribute, 'next_media_uri',
that contains the next URI in the list to be played.
It's important to note the following:
 - If an offset is provided to the 'play' operations, it only applies to the
   first media URI, as it would be weird to skip n seconds forward in every
   media resource.
 - Operations that control the position of the media only affect the current
   media being played. For example, once a media resource in the list
   completes, a 'reverse' operation on a subsequent media resource will not
   start a previously completed media resource at the appropiate offset.
 - This patch does not add any new operations to control the list. Hopefully,
   user feedback and/or future patches would add that if people want it.
ASTERISK-26022 #close
Change-Id: Ie1ea5356573447b8f51f2e7964915ea01792f16f
											 
										 
										
											2016-04-18 18:17:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  offsetms ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Number of milliseconds to skip for forward/reverse operations. */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  skipms ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / play / { playbackId } . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_play_with_id_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_play_with_id_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Start  playback  of  media  and  specify  the  playbackId . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-27 17:21:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  The  media  URI  may  be  any  of  a  number  of  URI ' s .  Currently  sound : ,  recording : ,  number : ,  digits : ,  characters : ,  and  tone :  URI ' s  are  supported .  This  operation  creates  a  playback  resource  that  can  be  used  to  control  the  playback  of  media  ( pause ,  rewind ,  fast  forward ,  etc . ) 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_play_with_id ( struct  ast_variable  * headers ,  struct  ast_ari_channels_play_with_id_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_record() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_record_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Recording's filename */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * name ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Format to encode audio in */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * format ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Maximum duration of the recording, in seconds. 0 for no limit */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									int  max_duration_seconds ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Maximum duration of silence, in seconds. 0 for no limit */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									int  max_silence_seconds ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Action to take if a recording with the same name already exists. */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-03 17:58:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * if_exists ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Play beep when recording begins */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									int  beep ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! DTMF input to terminate recording */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									const  char  * terminate_on ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / record . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_record_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_record_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Start  a  recording . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Record  audio  from  a  channel .  Note  that  this  will  not  capture  audio  sent  to  the  channel .  The  bridge  itself  has  a  record  feature  if  that ' s  what  you  want . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_record ( struct  ast_variable  * headers ,  struct  ast_ari_channels_record_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_get_channel_var() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_get_channel_var_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-08 14:46:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The channel variable or function to get */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-08 14:46:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * variable ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / variable . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_get_channel_var_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_get_channel_var_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-07-08 14:46:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Get  the  value  of  a  channel  variable  or  function . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_get_channel_var ( struct  ast_variable  * headers ,  struct  ast_ari_channels_get_channel_var_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_set_channel_var() */  
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_set_channel_var_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-08 14:46:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The channel variable or function to set */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-08 14:46:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * variable ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The value to set the variable to */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-08 14:46:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * value ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / variable . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_set_channel_var_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_set_channel_var_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-07-08 14:46:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Set  the  value  of  a  channel  variable  or  function . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-07 21:10:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  ast_ari_channels_set_channel_var ( struct  ast_variable  * headers ,  struct  ast_ari_channels_set_channel_var_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_snoop_channel() */  
						 
					
						
							
								
									
										
										
										
											2013-11-23 12:40:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_snoop_channel_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-23 12:40:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Direction of audio to spy on */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-23 12:40:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * spy ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Direction of audio to whisper into */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-23 12:40:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * whisper ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Application the snooping channel is placed into */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-23 12:40:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * app ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The application arguments to pass to the Stasis application */ 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-23 12:40:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * app_args ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Unique ID to assign to snooping channel */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * snoop_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-23 12:40:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
									
										
										
										
											2014-01-21 14:27:21 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / snoop . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_snoop_channel_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_snoop_channel_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-23 12:40:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Start  snooping . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Snoop  ( spy / whisper )  on  a  specific  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_snoop_channel ( struct  ast_variable  * headers ,  struct  ast_ari_channels_snoop_channel_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_snoop_channel_with_id() */  
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								struct  ast_ari_channels_snoop_channel_with_id_args  {  
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Unique ID to assign to snooping channel */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * snoop_id ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Direction of audio to spy on */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * spy ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Direction of audio to whisper into */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * whisper ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Application the snooping channel is placed into */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * app ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-02 21:13:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! The application arguments to pass to the Stasis application */ 
							 
						 
					
						
							
								
									
										
											 
										
											
												uniqueid: channel linkedid, ami, ari object creation with id's
Much needed was a way to assign id to objects on creation, and
much change was necessary to accomplish it.  Channel uniqueids
and linkedids are split into separate string and creation time
components without breaking linkedid propgation.  This allowed
the uniqueid to be specified by the user interface - and those
values are now carried through to channel creation, adding the
assignedids value to every function in the chain including the
channel drivers. For local channels, the second channel can be
specified or left to default to a ;2 suffix of first.  In ARI,
bridge, playback, and snoop objects can also be created with a
specified uniqueid.
Along the way, the args order to allocating channels was fixed
in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
masquerade occurs.
(closes issue ASTERISK-23120)
Review: https://reviewboard.asterisk.org/r/3191/
........
Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
											 
										 
										
											2014-03-07 15:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * app_args ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / snoop / { snoopId } . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_snoop_channel_with_id_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_snoop_channel_with_id_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Start  snooping . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Snoop  ( spy / whisper )  on  a  specific  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_snoop_channel_with_id ( struct  ast_variable  * headers ,  struct  ast_ari_channels_snoop_channel_with_id_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2016-03-30 17:18:39 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_dial() */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  ast_ari_channels_dial_args  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Channel ID of caller */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * caller ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Dial timeout */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  timeout ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / dial . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_dial_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_dial_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Dial  a  created  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_dial ( struct  ast_variable  * headers ,  struct  ast_ari_channels_dial_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2019-03-02 12:37:21 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_rtpstatistics() */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  ast_ari_channels_rtpstatistics_args  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  RTP  stats  on  a  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_rtpstatistics ( struct  ast_variable  * headers ,  struct  ast_ari_channels_rtpstatistics_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2019-08-05 05:59:59 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_external_media() */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  ast_ari_channels_external_media_args  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The unique id to assign the channel on creation. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Stasis Application to place channel into */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * app ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The "variables" key in the body object holds variable key/value pairs to set on the channel on creation. Other keys in the body object are interpreted as query parameters. Ex. { "endpoint": "SIP/Alice", "variables": { "CALLERID(name)": "Alice" } } */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * variables ; 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-28 10:39:50 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Hostname/ip:port or websocket_client connection ID of external host.  May be empty for a websocket server connection. */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-05 05:59:59 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * external_host ; 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-28 10:39:50 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Payload encapsulation protocol.  Must be 'none' for the websocket transport. */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-05 05:59:59 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * encapsulation ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Transport protocol */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * transport ; 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-28 10:39:50 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! Connection type (client/server). 'server' is only valid for the websocket transport. */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-05 05:59:59 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									const  char  * connection_type ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Format to encode audio in */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * format ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! External media direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * direction ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-17 20:47:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*! An arbitrary data field */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * data ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-05 05:59:59 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / externalMedia . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_external_media_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_external_media_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Start  an  External  Media  session . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-28 10:39:50 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Create  a  channel  to  an  External  Media  source / sink .   The  combination  of  transport  and  encapsulation  will  select  one  of  chan_rtp ( udp / rtp ) ,  chan_audiosocket ( tcp / audiosocket )  or  chan_websocket ( websocket / none )  channel  drivers . 
							 
						 
					
						
							
								
									
										
										
										
											2019-08-05 05:59:59 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_external_media ( struct  ast_variable  * headers ,  struct  ast_ari_channels_external_media_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2024-06-15 16:01:58 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*! Argument struct for ast_ari_channels_transfer_progress() */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  ast_ari_channels_transfer_progress_args  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! Channel's id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * channel_id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/*! The state of the progress */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									const  char  * states ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Body  parsing  function  for  / channels / { channelId } / transfer_progress . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  body  The  JSON  body  from  which  to  parse  parameters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  args  The  args  structure  to  parse  into . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  zero  on  success 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ retval  non - zero  on  failure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								int  ast_ari_channels_transfer_progress_parse_body (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_json  * body , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									struct  ast_ari_channels_transfer_progress_args  * args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*!
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Inform  the  channel  about  the  progress  of  the  attended / blind  transfer . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  headers  HTTP  headers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  args  Swagger  parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param [ out ]  response  HTTP  response 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  ast_ari_channels_transfer_progress ( struct  ast_variable  * headers ,  struct  ast_ari_channels_transfer_progress_args  * args ,  struct  ast_ari_response  * response ) ;  
						 
					
						
							
								
									
										
										
										
											2013-04-22 14:58:53 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif  /* _ASTERISK_RESOURCE_CHANNELS_H */