dect
/
libdect
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
libdect/include/dect/cc.h

247 lines
11 KiB
C

/*
* DECT Call-Control (CC) NWK <-> IWU interface
*
* Copyright (c) 2009 Patrick McHardy <kaber@trash.net>
*/
#ifndef _LIBDECT_DECT_CC_H
#define _LIBDECT_DECT_CC_H
#include <dect/ie.h>
/**
* struct dect_mncc_setup_param - MNCC_SETUP primitive parameters
*/
struct dect_mncc_setup_param {
struct dect_ie_basic_service *basic_service;
struct dect_ie_repeat_indicator iwu_attributes;
struct dect_ie_cipher_info *cipher_info;
struct dect_ie_repeat_indicator facility;
struct dect_ie_repeat_indicator progress_indicator;
struct dect_ie_display *display;
struct dect_ie_keypad *keypad;
struct dect_ie_signal *signal;
struct dect_ie_feature_activate *feature_activate;
struct dect_ie_feature_indicate *feature_indicate;
struct dect_ie_network_parameter *network_parameter;
struct dect_ie_terminal_capability *terminal_capability;
struct dect_ie_end_to_end_compatibility *end_to_end_compatibility;
struct dect_ie_rate_parameters *rate_parameters;
struct dect_ie_transit_delay *transit_delay;
struct dect_ie_window_size *window_size;
struct dect_ie_called_party_number *called_party_number;
struct dect_ie_called_party_subaddress *called_party_subaddress;
struct dect_ie_calling_party_number *calling_party_number;
struct dect_ie_calling_party_name *calling_party_name;
struct dect_ie_sending_complete *sending_complete;
struct dect_ie_iwu_to_iwu *iwu_to_iwu;
struct dect_ie_iwu_packet *iwu_packet;
};
struct dect_mncc_setup_ack_param {
struct dect_ie_info_type *info_type;
struct dect_ie_location_area *location_area;
struct dect_ie_repeat_indicator facility;
struct dect_ie_repeat_indicator progress_indicator;
struct dect_ie_display *display;
struct dect_ie_signal *signal;
struct dect_ie_feature_indicate *feature_indicate;
struct dect_ie_transit_delay *transit_delay;
struct dect_ie_window_size *window_size;
struct dect_ie_delimiter_request *delimiter_request;
struct dect_ie_repeat_indicator iwu_to_iwu;
struct dect_ie_iwu_packet *iwu_packet;
};
struct dect_mncc_release_param {
struct dect_ie_release_reason *release_reason;
struct dect_ie_identity_type *identity_type;
struct dect_ie_location_area *location_area;
struct dect_ie_iwu_attributes *iwu_attributes;
struct dect_ie_repeat_indicator facility;
struct dect_ie_display *display;
struct dect_ie_feature_indicate *feature_indicate;
struct dect_ie_network_parameter *network_parameter;
struct dect_ie_iwu_to_iwu *iwu_to_iwu;
struct dect_ie_iwu_packet *iwu_packet;
};
struct dect_mncc_call_proc_param {
struct dect_ie_repeat_indicator facility;
struct dect_ie_repeat_indicator progress_indicator;
struct dect_ie_display *display;
struct dect_ie_signal *signal;
struct dect_ie_feature_indicate *feature_indicate;
struct dect_ie_transit_delay *transit_delay;
struct dect_ie_window_size *window_size;
struct dect_ie_repeat_indicator iwu_to_iwu;
struct dect_ie_iwu_packet *iwu_packet;
};
struct dect_mncc_alert_param {
struct dect_ie_repeat_indicator facility;
struct dect_ie_repeat_indicator progress_indicator;
struct dect_ie_display *display;
struct dect_ie_signal *signal;
struct dect_ie_feature_indicate *feature_indicate;
struct dect_ie_terminal_capability *terminal_capability;
struct dect_ie_transit_delay *transit_delay;
struct dect_ie_window_size *window_size;
struct dect_ie_repeat_indicator iwu_to_iwu;
struct dect_ie_iwu_packet *iwu_packet;
};
struct dect_mncc_connect_param {
struct dect_ie_repeat_indicator facility;
struct dect_ie_repeat_indicator progress_indicator;
struct dect_ie_display *display;
struct dect_ie_signal *signal;
struct dect_ie_feature_indicate *feature_indicate;
struct dect_ie_terminal_capability *terminal_capability;
struct dect_ie_transit_delay *transit_delay;
struct dect_ie_window_size *window_size;
struct dect_ie_iwu_to_iwu *iwu_to_iwu;
struct dect_ie_iwu_packet *iwu_packet;
};
struct dect_mncc_facility_param {
struct dect_ie_repeat_indicator facility;
struct dect_ie_repeat_indicator progress_indicator;
struct dect_ie_display *display;
struct dect_ie_keypad *keypad;
struct dect_ie_feature_activate *feature_activate;
struct dect_ie_feature_indicate *feature_indicate;
};
struct dect_mncc_info_param {
struct dect_ie_location_area *location_area;
struct dect_ie_nwk_assigned_identity *nwk_assigned_identity;
struct dect_ie_repeat_indicator facility;
struct dect_ie_repeat_indicator progress_indicator;
struct dect_ie_display *display;
struct dect_ie_keypad *keypad;
struct dect_ie_signal *signal;
struct dect_ie_feature_activate *feature_activate;
struct dect_ie_feature_indicate *feature_indicate;
struct dect_ie_network_parameter *network_parameter;
struct dect_ie_called_party_number *called_party_number;
struct dect_ie_called_party_subaddress *called_party_subaddress;
struct dect_ie_calling_party_number *calling_party_number;
struct dect_ie_calling_party_name *calling_party_name;
struct dect_ie_sending_complete *sending_complete;
struct dect_ie_repeat_indicator iwu_to_iwu;
struct dect_ie_iwu_packet *iwu_packet;
};
struct dect_mncc_modify_param {
struct dect_ie_service_change_info *service_change_info;
struct dect_ie_repeat_indicator iwu_attributes;
struct dect_ie_repeat_indicator iwu_to_iwu;
};
struct dect_mncc_hold_param {
struct dect_ie_display *display;
struct dect_ie_release_reason *release_reason;
};
struct dect_mncc_iwu_info_param {
struct dect_ie_alphanumeric *alphanumeric;
struct dect_ie_iwu_to_iwu *iwu_to_iwu;
struct dect_ie_iwu_packet *iwu_packet;
};
struct dect_handle;
struct dect_call;
struct dect_msg_buf;
extern struct dect_call *dect_call_alloc(const struct dect_handle *dh);
extern void *dect_call_priv(struct dect_call *call);
extern const struct dect_ipui *dect_call_portable_identity(const struct dect_call *call);
struct dect_cc_ops {
size_t priv_size;
void (*mncc_setup_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_setup_param *param);
void (*mncc_setup_ack_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_setup_ack_param *param);
void (*mncc_reject_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_release_param *param);
void (*mncc_call_proc_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_call_proc_param *param);
void (*mncc_alert_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_alert_param *param);
void (*mncc_connect_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_connect_param *param);
void (*mncc_connect_cfm)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_connect_param *param);
void (*mncc_release_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_release_param *param);
void (*mncc_release_cfm)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_release_param *param);
void (*mncc_facility_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_facility_param *param);
void (*mncc_info_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_info_param *param);
void (*mncc_modify_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_modify_param *param);
void (*mncc_modify_cfm)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_modify_param *param);
void (*mncc_hold_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_hold_param *param);
void (*mncc_hold_cfm)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_hold_param *param);
void (*mncc_retrieve_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_hold_param *param);
void (*mncc_retrieve_cfm)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_hold_param *param);
void (*mncc_iwu_info_ind)(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_iwu_info_param *param);
void (*dl_u_data_ind)(struct dect_handle *dh, struct dect_call *call,
struct dect_msg_buf *mb);
};
extern int dect_mncc_setup_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_ipui *ipui,
const struct dect_mncc_setup_param *param);
extern int dect_mncc_setup_ack_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_setup_ack_param *param);
extern int dect_mncc_reject_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_release_param *param);
extern int dect_mncc_call_proc_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_call_proc_param *param);
extern int dect_mncc_alert_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_alert_param *param);
extern int dect_mncc_connect_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_connect_param *param);
extern int dect_mncc_connect_res(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_connect_param *param);
extern int dect_mncc_release_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_release_param *param);
extern int dect_mncc_release_res(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_release_param *param);
extern int dect_mncc_facility_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_facility_param *param);
extern int dect_mncc_info_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_info_param *param);
extern int dect_mncc_modify_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_modify_param *param);
extern int dect_mncc_modify_res(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_modify_param *param);
extern int dect_mncc_hold_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_hold_param *param);
extern int dect_mncc_hold_res(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_hold_param *param);
extern int dect_mncc_retrieve_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_hold_param *param);
extern int dect_mncc_retrieve_res(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_hold_param *param);
extern int dect_mncc_iwu_info_req(struct dect_handle *dh, struct dect_call *call,
const struct dect_mncc_iwu_info_param *param);
extern int dect_dl_u_data_req(const struct dect_handle *dh, struct dect_call *call,
struct dect_msg_buf *mb);
#endif /* _LIBDECT_DECT_CC_H */