Asterisk - The Open Source Telephony Project  18.5.0
Data Fields
cc_control_payload Struct Reference

The payload for an AST_CONTROL_CC frame. More...

Collaboration diagram for cc_control_payload:
Collaboration graph
[legend]

Data Fields

struct ast_cc_config_params config_params
 Configuration parameters used by this endpoint. More...
 
char device_name [AST_CHANNEL_NAME]
 Name of device to be monitored. More...
 
char dialstring [AST_CHANNEL_NAME]
 Recall dialstring. More...
 
const char * monitor_type
 The type of monitor to allocate. More...
 
int parent_interface_id
 ID of parent extension. More...
 
void * private_data
 Private data allocated by the callee. More...
 
enum ast_cc_service_type service
 Service offered by the endpoint. More...
 

Detailed Description

The payload for an AST_CONTROL_CC frame.

This contains all the necessary data regarding a called device so that the CC core will be able to allocate the proper monitoring resources.

Definition at line 222 of file ccss.c.

Field Documentation

◆ config_params

struct ast_cc_config_params config_params

Configuration parameters used by this endpoint.

Each time an endpoint offers call completion, it must provide its call completion configuration parameters. This is because settings may be different depending on the circumstances.

Definition at line 275 of file ccss.c.

Referenced by cc_build_payload(), and cc_device_monitor_init().

◆ device_name

char device_name[AST_CHANNEL_NAME]

Name of device to be monitored.

The device name by which this monitored endpoint will be referred in the CC core. It is highly recommended that this device name is derived by using the function ast_channel_get_device_name.

Definition at line 293 of file ccss.c.

Referenced by ast_cc_call_failed(), ast_handle_cc_control_frame(), and cc_build_payload().

◆ dialstring

char dialstring[AST_CHANNEL_NAME]

Recall dialstring.

Certain channel drivers (DAHDI in particular) will require that a special dialstring be used to indicate that the outgoing call is to interpreted as a CC recall. If the channel driver has such a requirement, then this is where that special recall dialstring is placed. If no special dialstring is to be used, then the channel driver must provide the original dialstring used to call this endpoint.

Definition at line 305 of file ccss.c.

Referenced by ast_handle_cc_control_frame(), and cc_build_payload().

◆ monitor_type

const char* monitor_type

The type of monitor to allocate.

The type of monitor to allocate. This is a string which corresponds to a set of monitor callbacks registered. Examples include "generic" and "SIP"

Note
This really should be an array of characters in case this payload is sent accross an IAX2 link. However, this would not make too much sense given this type may not be recognized by the other end. Protection may be necessary to prevent it from being transmitted.

In addition the following other problems are also possible: 1) Endian issues with the integers/enums stored in the config_params. 2) Alignment padding issues for the element types.

Definition at line 240 of file ccss.c.

Referenced by ast_handle_cc_control_frame(), cc_build_payload(), and cc_device_monitor_init().

◆ parent_interface_id

int parent_interface_id

ID of parent extension.

This is the only datum that the CC core derives on its own and is not provided by the offerer of CC. This provides the core with information on which extension monitor is the most immediate parent of this device.

Definition at line 284 of file ccss.c.

Referenced by cc_build_payload(), and cc_device_monitor_init().

◆ private_data

void* private_data

Private data allocated by the callee.

All channel drivers that monitor endpoints will need to allocate data that is not usable by the CC core. In most cases, some or all of this data is allocated at the time that the channel driver offers CC to the caller. There are many opportunities for failures to occur between when a channel driver offers CC and when a monitor is actually allocated to watch the endpoint. For this reason, the channel driver must give the core a pointer to the private data that was allocated so that the core can call back into the channel driver to destroy it if a failure occurs. If no private data has been allocated at the time that CC is offered, then it is perfectly acceptable to pass NULL for this field.

Definition at line 257 of file ccss.c.

Referenced by ast_handle_cc_control_frame(), cc_build_payload(), and cc_device_monitor_init().

◆ service

enum ast_cc_service_type service

Service offered by the endpoint.

This indicates the type of call completion service offered by the endpoint. This data is not crucial to the machinations of the CC core, but it is helpful for debugging purposes.

Definition at line 266 of file ccss.c.

Referenced by ast_handle_cc_control_frame(), cc_build_payload(), and cc_device_monitor_init().


The documentation for this struct was generated from the following file: