libosmogsm 1.11.0.26-c59d.202505152026
Osmocom GSM library
|
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/endian.h>
Go to the source code of this file.
Data Structures | |
struct | bssmap_header |
struct | dtap_header |
struct | gsm0808_speech_codec |
3GPP TS 48.008 3.2.2.104 Speech Codec. More... | |
struct | gsm0808_speech_codec_list |
struct | gsm0808_channel_type |
struct | gsm0808_encrypt_info |
struct | gsm0808_cell_id_list |
DEPRECATED: This definition of the cell identifier list is insufficient. More... | |
struct | gsm0808_diagnostics |
#define BSS_MAP_MSG_ASSIGMENT_COMPLETE BSS_MAP_MSG_ASSIGNMENT_COMPLETE |
#define BSS_MAP_MSG_ASSIGMENT_FAILURE BSS_MAP_MSG_ASSIGNMENT_FAILURE |
#define BSS_MAP_MSG_ASSIGMENT_RQST BSS_MAP_MSG_ASSIGNMENT_RQST |
#define CELL_ID_LIST_LAC_MAXLEN 127 |
#define CELL_IDENT_LAI_AND_LAC CELL_IDENT_LAI |
#define CH_TYPE_PERM_SPCH_MAXLEN 9 |
#define ENCRY_INFO_KEY_MAXLEN 252 |
#define ENCRY_INFO_PERM_ALGO_MAXLEN 8 |
#define GSM0808_DATA_FULL_RPREF GSM0808_DATA_FULL_PREF |
#define GSM0808_SCT_EXT 0x0f |
#define SPEECH_CODEC_MAXLEN 255 |
GSM 08.08 3.2.2.11 Channel Type (see also 3GPP TS 48.008, section 3.2.2.11)
Default speech codec configurations: Some codecs specified with struct gsm0808_speech_codec, require a configuration (cfg).
The following default configuration will configure the codec (RTP) to match the configuration that is used on the air interface (Um).
Default values for FR_AMR, HR_AMR and OHR_AMR: See also: 3GPP TS 28.062, Table 7.11.3.1.3-2: Preferred Configurations for the Adaptive Multi-Rate Codec Types and 3GPP TS 48.008, Section 3.2.2.103.
Default values for FR_AMR_WB, OFR_AMR_WB and OHR_AMR_WB: See also: 3GPP TS 26.103, Table 5.7-1: Allowed Configurations for the Adaptive Multi-Rate - Wideband Codec Types
This is a copy of 3GPP TS 28.062, Table 7.11.3.1.3-2:
S0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
12,20 (x) x x x 10,20 x x x 7,95 x x x 7,40 x x x x 6,70 x x x x x x 5,90 x x x x x x x x x x 5,15 4,75 x x x x x x x x x x
OM F F F F F F F F F F F A F A F A
HR Y Y Y Y Y Y Y Y Y FR Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Each bit allows one Codec Configuration. E.g. when bit S3 is set, look at column labeled "3", and see that only 6,7k is active in this configuration; it is "F" forbidden to change in Optimisation Mode, "Y" HR AMR supports this mode, and "Y" FR AMR can also do it.
This means that whichever configuration is chosen from S0 thru S15, there are never more than four rates active.
The spec praises S1 as the most desired configuration: "because it leads in all call cases to TFO/TrFO compatible connections with optimal voice quality." (Since HR AMR supports up to 7.95k, it seems that S14 would be more optimal voice quality, but it is not marked as supported by HR AMR.)
For FR_AMR below, the default of 0x57ff means: 0x57ff = 0101 0111 1111 1111 ^14 ^10 ^0 allow config 0 thru 10, and configs 12 and 14.
For HR_AMR, drop all those where there is no "Y" in the HR row: 0x073f = 0000 0111 0011 1111 ^15 ^11 ^6 ^0
Single speech codec configurations broken down by rate.
See also: 3GPP TS 28.062, Table 7.11.3.1.3-2: Preferred Configurations for the Adaptive Multi-Rate Codec Types.
Set bit Sn (S0 = 0x01), where Sn is identified by a descriptive name.
Default speech codec configurations broken down by rate.
See also: 3GPP TS 28.062, Table 7.11.3.1.3-2: Preferred Configurations for the Adaptive Multi-Rate Codec Types.
Set all Sn bits that have this rate listed as active.
3GPP TS 48.008, 3.2.2.103 Speech Codec Type
|
inlinestatic |
References get_value_string(), and gsm0406_dlci_sapi_names.
|
inlinestatic |
References get_value_string(), and gsm0808_amr_mode_names.
|
inlinestatic |
References get_value_string(), and gsm0808_permitted_speech_names.
|
inlinestatic |
References get_value_string(), and gsm0808_speech_codec_type_names.
union { ... } |
enum gsm0406_dlci_sapi __attribute__ |
uint8_t error_pointer_octet |
uint8_t length |
Referenced by abis_nm_get_sw_desc(), append_utran_fdd(), append_utran_fdd_length(), f0_helper(), gsm0480_parse_facility_ie(), gsm48_generate_mid(), gsm_7bit_decode_n_ussd(), gsm_7bit_decode_ussd(), parse_process_uss_data(), parse_process_uss_req(), parse_ss_for_bs_req(), parse_ss_invoke(), parse_ss_return_result(), rslms_rx_rll_data_req(), rslms_rx_rll_est_req(), rslms_rx_rll_res_req(), and rslms_rx_rll_udata_req().
uint8_t link_id |
Referenced by gsm0480_wrap_invoke(), gsm0808_create_dtap(), gsm0808_create_sapi_reject(), gsm0808_create_sapi_reject_cause(), gsm0808_prepend_dtap_header(), l2_ph_data_ind(), rsl_rll_push_hdr(), rsl_rll_push_l3(), rsl_rll_simple(), rslms_rx_rll_est_req(), rslms_rx_rll_res_req(), rslms_rx_rll_udata_req(), set_lapdm_context(), tx_ph_data_enqueue(), and tx_ph_data_enqueue_ui().
uint8_t msg[0] |
Referenced by __attribute__(), abis_nm_put_sw_desc(), abis_nm_put_sw_file(), cbsp_enc_error_ind(), cbsp_enc_failure(), cbsp_enc_keep_alive(), cbsp_enc_kill(), cbsp_enc_kill_compl(), cbsp_enc_kill_fail(), cbsp_enc_load_query(), cbsp_enc_load_query_compl(), cbsp_enc_load_query_fail(), cbsp_enc_msg_status_query(), cbsp_enc_msg_status_query_compl(), cbsp_enc_msg_status_query_fail(), cbsp_enc_reset(), cbsp_enc_reset_compl(), cbsp_enc_reset_fail(), cbsp_enc_restart(), cbsp_enc_write_repl(), cbsp_enc_write_repl_compl(), cbsp_enc_write_repl_fail(), create_simple_msg(), enc_speech_codec(), encode_auth_info(), encode_pdp_info(), gsm0480_create_notifySS(), gsm0480_create_release_complete(), gsm0480_create_unstructuredSS_Notify(), gsm0480_create_ussd_notify(), gsm0480_create_ussd_release_complete(), gsm0480_create_ussd_resp(), gsm0480_gen_reject(), gsm0480_gen_return_error(), gsm0480_gen_ussd_resp_7bit(), gsm0480_wrap_facility(), gsm0480_wrap_invoke(), gsm0808_create_ass2(), gsm0808_create_ass_compl2(), gsm0808_create_ass_fail(), gsm0808_create_cipher2(), gsm0808_create_cipher_complete(), gsm0808_create_cipher_reject(), gsm0808_create_cipher_reject_ext(), gsm0808_create_classmark_request(), gsm0808_create_classmark_update(), gsm0808_create_clear_command(), gsm0808_create_clear_command2(), gsm0808_create_clear_complete(), gsm0808_create_clear_rqst(), gsm0808_create_common_id(), gsm0808_create_dtap(), gsm0808_create_handover_command(), gsm0808_create_handover_complete(), gsm0808_create_handover_detect(), gsm0808_create_handover_failure(), gsm0808_create_handover_performed(), gsm0808_create_handover_request(), gsm0808_create_handover_request_ack2(), gsm0808_create_handover_required(), gsm0808_create_handover_required_reject(), gsm0808_create_handover_succeeded(), gsm0808_create_layer3_2(), gsm0808_create_lcls_conn_ctrl(), gsm0808_create_lcls_conn_ctrl_ack(), gsm0808_create_lcls_notification(), gsm0808_create_notification_data(), gsm0808_create_paging2(), gsm0808_create_perform_location_abort(), gsm0808_create_perform_location_request(), gsm0808_create_perform_location_response(), gsm0808_create_reset(), gsm0808_create_reset_ack(), gsm0808_create_sapi_reject_cause(), gsm0808_create_uplink_app_data(), gsm0808_create_uplink_reject_cmd(), gsm0808_create_uplink_release_cmd(), gsm0808_create_uplink_release_ind(), gsm0808_create_uplink_request(), gsm0808_create_uplink_request_ack(), gsm0808_create_uplink_request_cnf(), gsm0808_create_uplink_seized_cmd(), gsm0808_create_vgcs_additional_info(), gsm0808_create_vgcs_queuing_ind(), gsm0808_create_vgcs_sms(), gsm0808_create_vgcs_vbs_area_cell_info(), gsm0808_create_vgcs_vbs_assign_fail(), gsm0808_create_vgcs_vbs_assign_req(), gsm0808_create_vgcs_vbs_assign_res(), gsm0808_create_vgcs_vbs_assign_stat(), gsm0808_create_vgcs_vbs_setup(), gsm0808_create_vgcs_vbs_setup_ack(), gsm0808_create_vgcs_vbs_setup_refuse(), gsm0808_enc_assign_req(), gsm0808_enc_cell_id(), gsm0808_enc_cell_id_list(), gsm0808_enc_cell_id_list2(), gsm0808_enc_cell_id_list_segment(), gsm0808_enc_channel_type(), gsm0808_enc_data_identity(), gsm0808_enc_encrypt_info(), gsm0808_enc_gcr(), gsm0808_enc_group_callref(), gsm0808_enc_kc128(), gsm0808_enc_lcls(), gsm0808_enc_lcs_cause(), gsm0808_enc_msisdn(), gsm0808_enc_priority(), gsm0808_enc_speech_codec(), gsm0808_enc_speech_codec2(), gsm0808_enc_speech_codec_list(), gsm0808_enc_speech_codec_list2(), gsm0808_enc_talker_identity(), gsm0808_enc_vgcs_feature_flags(), gsm0808_msgb_put_cell_id_u(), gsm0808_prepend_dtap_header(), gsm29118_create_dl_ud(), gsm29118_create_lu_ack(), gsm29118_create_lu_rej(), gsm29118_create_mm_info_req(), gsm29118_create_paging_req(), gsm29118_create_release_req(), gsm29118_create_reset_ack(), gsm29118_create_reset_ind(), gsm29118_create_status(), gsm411_mmsms_cp_data(), gsm411_mmsms_cp_error(), gsm411_mnsms_abort_req(), gsm411_mnsms_data_ind_tx(), gsm411_mnsms_data_req(), gsm411_mnsms_error_ind_rx(), gsm411_mnsms_error_ind_tx(), gsm411_mnsms_est_ind(), gsm411_mnsms_est_req(), gsm411_mnsms_rel_req(), gsm411_push_cp_header(), gsm411_push_rp_header(), gsm411_rl_data_req(), gsm411_rl_report_req(), gsm411_rp_sendmsg(), gsm411_send_abort(), gsm411_send_release(), gsm411_send_report(), gsm411_send_rp_error(), gsm411_smc_recv(), gsm411_smc_send(), gsm411_smr_recv(), gsm411_smr_send(), gsm48_encode_bearer_cap(), gsm48_encode_called(), gsm48_encode_callerid(), gsm48_encode_calling(), gsm48_encode_cause(), gsm48_encode_cccap(), gsm48_encode_connected(), gsm48_encode_facility(), gsm48_encode_keypad(), gsm48_encode_more(), gsm48_encode_notify(), gsm48_encode_progress(), gsm48_encode_redirecting(), gsm48_encode_signal(), gsm48_encode_ssversion(), gsm48_encode_useruser(), gsm48_push_l3hdr(), ipa_ccm_make_id_resp(), ipa_ccm_rcvmsg_base(), ipa_ccm_rcvmsg_bts_base(), ipa_prepend_header(), ipa_prepend_header_ext(), ipa_send(), irp_error_event_alloc_c(), itp_copy_c(), l2_ph_chan_conf(), l2_ph_data_conf(), l2_ph_data_ind(), l2_ph_rach_ind(), lapdm_pad_msgb(), lapdm_phsap_dequeue_prim_fn(), lapdm_rslms_recvmsg(), lapdm_send_ph_data_req(), msgb_l16tv_put(), msgb_lv_put(), msgb_put_cbsp_cell_list(), msgb_put_cbsp_fail_list(), msgb_put_cbsp_loading_list(), msgb_put_cbsp_num_compl_list(), msgb_sgsap_imsi_put(), msgb_sgsap_lai_put(), msgb_sgsap_name_put(), msgb_t16lv_put(), msgb_tl16v_put(), msgb_tl_put(), msgb_tlv16_put(), msgb_tlv1_push(), msgb_tlv_push(), msgb_tlv_put(), msgb_tv16_push(), msgb_tv16_put(), msgb_tv32_push(), msgb_tv32_put(), msgb_tv_fixed_put(), msgb_tv_push(), msgb_tv_put(), msgb_tvl_put(), msgb_tvlv_push(), msgb_tvlv_put(), msgb_tvlv_put_16be(), msgb_tvlv_put_32be(), msgb_v_put(), msgb_vtvl_gan_push(), msgb_vtvlv_gan_push(), msgb_vtvlv_gan_put(), osmo_bssap_le_dec(), osmo_bssap_le_enc(), osmo_bsslap_enc(), osmo_bsslap_ie_enc_cause(), osmo_bsslap_ie_enc_cell_id(), osmo_bsslap_ie_enc_chan_desc(), osmo_bsslap_ie_enc_ta(), osmo_bssmap_le_enc(), osmo_bssmap_le_enc_conn_oriented_info(), osmo_bssmap_le_enc_perform_loc_abort(), osmo_bssmap_le_enc_perform_loc_req(), osmo_bssmap_le_enc_perform_loc_resp(), osmo_bssmap_le_enc_reset(), osmo_bssmap_le_ie_enc_apdu(), osmo_bssmap_le_ie_enc_lcs_client_type(), osmo_bssmap_le_ie_enc_lcs_priority(), osmo_bssmap_le_ie_enc_lcs_qos(), osmo_bssmap_le_ie_enc_location_type(), osmo_cbsp_encode(), osmo_enc_gcr(), osmo_gad_raw_write(), osmo_gsup_encode(), osmo_gsup_encode_an_apdu(), osmo_gsup_sms_encode_sm_rp_da(), osmo_gsup_sms_encode_sm_rp_oa(), osmo_iuup_rnl_prim_alloc(), osmo_iuup_tnl_prim_alloc(), osmo_lcs_cause_enc(), osmo_mobile_identity_decode_from_l3(), osmo_mobile_identity_encode_msgb(), osmo_oap_client_encoded(), osmo_oap_encode(), osmo_routing_area_id_encode_msgb(), put_old_bss_to_new_bss_information(), rnl_to_tnl_data(), rsl_rll_error(), rsl_rll_push_hdr(), rsl_rll_push_l3(), rsl_rll_simple(), rslms_rx_chan_rqd(), rslms_rx_com_chan(), rslms_rx_rll(), rslms_rx_rll_data_req(), rslms_rx_rll_est_req(), rslms_rx_rll_rel_req(), rslms_rx_rll_res_req(), rslms_rx_rll_susp_req(), rslms_rx_rll_udata_req(), rslms_sendmsg(), send_rll_simple(), send_rslms_rll_l3(), send_rslms_rll_l3_ui(), tlv_encode(), tlv_encode_one(), tlv_encode_ordered(), tnl_to_rnl_data(), tnp_ctrl_init_alloc(), tx_dequeue_acch_msgb(), tx_dequeue_dcch_msgb(), tx_dequeue_msgb(), tx_ph_data_enqueue(), tx_ph_data_enqueue_ui(), and update_pending_frames().
uint8_t type |