Asterisk - The Open Source Telephony Project  GIT-master-e8cda4b
Data Structures | Macros | Typedefs | Enumerations | Functions
iax2.h File Reference

Implementation of Inter-Asterisk eXchange, version 2 iax2-parser::c iax2-parser.h chan_iax2.c. More...

Go to the source code of this file.

Data Structures

struct  ast_iax2_firmware_header
 
struct  ast_iax2_full_enc_hdr
 
struct  ast_iax2_full_hdr
 
struct  ast_iax2_meta_hdr
 
struct  ast_iax2_meta_trunk_entry
 
struct  ast_iax2_meta_trunk_hdr
 
struct  ast_iax2_meta_trunk_mini
 
struct  ast_iax2_mini_enc_hdr
 
struct  ast_iax2_mini_hdr
 
struct  ast_iax2_video_hdr
 

Macros

#define IAX_AUTH_MD5   (1 << 1)
 
#define IAX_AUTH_PLAINTEXT   (1 << 0)
 
#define IAX_AUTH_RSA   (1 << 2)
 
#define IAX_DEFAULT_PORTNO   4569
 
#define IAX_DEFAULT_REG_EXPIRE   60
 
#define IAX_DPSTATUS_CANEXIST   (1 << 1)
 
#define IAX_DPSTATUS_EXISTS   (1 << 0)
 
#define IAX_DPSTATUS_IGNOREPAT   (1 << 14)
 
#define IAX_DPSTATUS_MATCHMORE   (1 << 15)
 
#define IAX_DPSTATUS_NONEXISTENT   (1 << 2)
 
#define IAX_ENCRYPT_AES128   (1 << 0)
 
#define IAX_ENCRYPT_KEYROTATE   (1 << 15)
 
#define IAX_FIRMWARE_MAGIC   0x69617879
 
#define IAX_FLAG_FULL   0x8000
 
#define IAX_FLAG_RETRANS   0x8000
 
#define IAX_FLAG_SC_LOG   0x80
 
#define IAX_IE_ADSICPE   12
 
#define IAX_IE_AESPROVISIONING   30
 
#define IAX_IE_APPARENT_ADDR   18
 
#define IAX_IE_AUTHMETHODS   14
 
#define IAX_IE_AUTOANSWER   25
 
#define IAX_IE_CALLED_CONTEXT   5
 
#define IAX_IE_CALLED_NUMBER   1
 
#define IAX_IE_CALLING_ANI   3
 
#define IAX_IE_CALLING_NAME   4
 
#define IAX_IE_CALLING_NUMBER   2
 
#define IAX_IE_CALLINGPRES   38
 
#define IAX_IE_CALLINGTNS   40
 
#define IAX_IE_CALLINGTON   39
 
#define IAX_IE_CALLNO   21
 
#define IAX_IE_CALLTOKEN   54
 
#define IAX_IE_CAPABILITY   8
 
#define IAX_IE_CAPABILITY2   55
 
#define IAX_IE_CAUSE   22
 
#define IAX_IE_CAUSECODE   42
 
#define IAX_IE_CHALLENGE   15
 
#define IAX_IE_CODEC_PREFS   45
 
#define IAX_IE_DATETIME   31
 
#define IAX_IE_DEVICETYPE   32
 
#define IAX_IE_DNID   13
 
#define IAX_IE_DPSTATUS   20
 
#define IAX_IE_ENCKEY   44
 
#define IAX_IE_ENCRYPTION   43
 
#define IAX_IE_FIRMWAREVER   34
 
#define IAX_IE_FORMAT   9
 
#define IAX_IE_FORMAT2   56
 
#define IAX_IE_FWBLOCKDATA   36
 
#define IAX_IE_FWBLOCKDESC   35
 
#define IAX_IE_IAX_UNKNOWN   23
 
#define IAX_IE_LANGUAGE   10
 
#define IAX_IE_MD5_RESULT   16
 
#define IAX_IE_MSGCOUNT   24
 
#define IAX_IE_MUSICONHOLD   26
 
#define IAX_IE_OSPTOKEN   53
 
#define IAX_IE_PASSWORD   7
 
#define IAX_IE_PROVISIONING   29
 
#define IAX_IE_PROVVER   37
 
#define IAX_IE_RDNIS   28
 
#define IAX_IE_REFRESH   19
 
#define IAX_IE_RR_DELAY   49
 
#define IAX_IE_RR_DROPPED   50
 
#define IAX_IE_RR_JITTER   46
 
#define IAX_IE_RR_LOSS   47
 
#define IAX_IE_RR_OOO   51
 
#define IAX_IE_RR_PKTS   48
 
#define IAX_IE_RSA_RESULT   17
 
#define IAX_IE_SAMPLINGRATE   41
 
#define IAX_IE_SERVICEIDENT   33
 
#define IAX_IE_TRANSFERID   27
 
#define IAX_IE_USERNAME   6
 
#define IAX_IE_VARIABLE   52
 
#define IAX_IE_VERSION   11
 
#define IAX_LINGER_TIMEOUT   10
 
#define IAX_MAX_CALLS   32768
 
#define IAX_MAX_OSPBLOCK_NUM   4
 
#define IAX_MAX_OSPBLOCK_SIZE   254
 
#define IAX_MAX_OSPBUFF_SIZE   (IAX_MAX_OSPTOKEN_SIZE + 16)
 
#define IAX_MAX_OSPTOKEN_SIZE   (IAX_MAX_OSPBLOCK_SIZE * IAX_MAX_OSPBLOCK_NUM)
 
#define IAX_MAX_SHIFT   0x3F
 
#define IAX_META_TRUNK   1
 
#define IAX_META_TRUNK_MINI   1
 
#define IAX_META_TRUNK_SUPERMINI   0
 
#define IAX_META_VIDEO   2
 
#define IAX_PROTO_VERSION   2
 
#define IAX_RATE_11KHZ   (1 << 1)
 
#define IAX_RATE_16KHZ   (1 << 2)
 
#define IAX_RATE_22KHZ   (1 << 3)
 
#define IAX_RATE_44KHZ   (1 << 4)
 
#define IAX_RATE_48KHZ   (1 << 5)
 
#define IAX_RATE_8KHZ   (1 << 0)
 
#define IAX_WINDOW   64
 

Typedefs

typedef int64_t iax2_format
 

Enumerations

enum  iax_frame_subclass {
  IAX_COMMAND_NEW = 1, IAX_COMMAND_PING = 2, IAX_COMMAND_PONG = 3, IAX_COMMAND_ACK = 4,
  IAX_COMMAND_HANGUP = 5, IAX_COMMAND_REJECT = 6, IAX_COMMAND_ACCEPT = 7, IAX_COMMAND_AUTHREQ = 8,
  IAX_COMMAND_AUTHREP = 9, IAX_COMMAND_INVAL = 10, IAX_COMMAND_LAGRQ = 11, IAX_COMMAND_LAGRP = 12,
  IAX_COMMAND_REGREQ = 13, IAX_COMMAND_REGAUTH = 14, IAX_COMMAND_REGACK = 15, IAX_COMMAND_REGREJ = 16,
  IAX_COMMAND_REGREL = 17, IAX_COMMAND_VNAK = 18, IAX_COMMAND_DPREQ = 19, IAX_COMMAND_DPREP = 20,
  IAX_COMMAND_DIAL = 21, IAX_COMMAND_TXREQ = 22, IAX_COMMAND_TXCNT = 23, IAX_COMMAND_TXACC = 24,
  IAX_COMMAND_TXREADY = 25, IAX_COMMAND_TXREL = 26, IAX_COMMAND_TXREJ = 27, IAX_COMMAND_QUELCH = 28,
  IAX_COMMAND_UNQUELCH = 29, IAX_COMMAND_POKE = 30, IAX_COMMAND_PAGE = 31, IAX_COMMAND_MWI = 32,
  IAX_COMMAND_UNSUPPORT = 33, IAX_COMMAND_TRANSFER = 34, IAX_COMMAND_PROVISION = 35, IAX_COMMAND_FWDOWNL = 36,
  IAX_COMMAND_FWDATA = 37, IAX_COMMAND_TXMEDIA = 38, IAX_COMMAND_RTKEY = 39, IAX_COMMAND_CALLTOKEN = 40
}
 

Functions

const char * iax2_getformatname (iax2_format format)
 iax2 wrapper function for ast_getformatname More...
 

Detailed Description

Implementation of Inter-Asterisk eXchange, version 2 iax2-parser::c iax2-parser.h chan_iax2.c.

Definition in file iax2.h.

Macro Definition Documentation

◆ IAX_AUTH_MD5

#define IAX_AUTH_MD5   (1 << 1)

◆ IAX_AUTH_PLAINTEXT

#define IAX_AUTH_PLAINTEXT   (1 << 0)

◆ IAX_AUTH_RSA

#define IAX_AUTH_RSA   (1 << 2)

◆ IAX_DEFAULT_PORTNO

#define IAX_DEFAULT_PORTNO   4569

◆ IAX_DEFAULT_REG_EXPIRE

#define IAX_DEFAULT_REG_EXPIRE   60

By default require re-registration once per minute

Definition at line 123 of file iax2.h.

Referenced by __attempt_transmit(), iax2_append_register(), realtime_peer(), and set_config().

◆ IAX_DPSTATUS_CANEXIST

#define IAX_DPSTATUS_CANEXIST   (1 << 1)

Definition at line 216 of file iax2.h.

Referenced by complete_dpreply(), and dp_lookup().

◆ IAX_DPSTATUS_EXISTS

#define IAX_DPSTATUS_EXISTS   (1 << 0)

Definition at line 215 of file iax2.h.

Referenced by complete_dpreply(), and dp_lookup().

◆ IAX_DPSTATUS_IGNOREPAT

#define IAX_DPSTATUS_IGNOREPAT   (1 << 14)

Definition at line 218 of file iax2.h.

Referenced by dp_lookup().

◆ IAX_DPSTATUS_MATCHMORE

#define IAX_DPSTATUS_MATCHMORE   (1 << 15)

Definition at line 219 of file iax2.h.

Referenced by complete_dpreply(), and dp_lookup().

◆ IAX_DPSTATUS_NONEXISTENT

#define IAX_DPSTATUS_NONEXISTENT   (1 << 2)

Definition at line 217 of file iax2.h.

Referenced by complete_dpreply(), and dp_lookup().

◆ IAX_ENCRYPT_AES128

#define IAX_ENCRYPT_AES128   (1 << 0)

Definition at line 199 of file iax2.h.

Referenced by encmethods_to_str(), get_encrypt_methods(), and merge_encryption().

◆ IAX_ENCRYPT_KEYROTATE

#define IAX_ENCRYPT_KEYROTATE   (1 << 15)

Keyrotation support

Definition at line 200 of file iax2.h.

Referenced by encmethods_to_str(), get_encrypt_methods(), and merge_encryption().

◆ IAX_FIRMWARE_MAGIC

#define IAX_FIRMWARE_MAGIC   0x69617879

Definition at line 291 of file iax2.h.

Referenced by try_firmware().

◆ IAX_FLAG_FULL

#define IAX_FLAG_FULL   0x8000

◆ IAX_FLAG_RETRANS

#define IAX_FLAG_RETRANS   0x8000

Definition at line 42 of file iax2.h.

Referenced by iax_showframe(), send_apathetic_reply(), socket_process_helper(), and update_packet().

◆ IAX_FLAG_SC_LOG

#define IAX_FLAG_SC_LOG   0x80

Definition at line 44 of file iax2.h.

Referenced by compress_subclass(), and uncompress_subclass().

◆ IAX_IE_ADSICPE

#define IAX_IE_ADSICPE   12

CPE ADSI capability - short

Definition at line 142 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_AESPROVISIONING

#define IAX_IE_AESPROVISIONING   30

AES Provisioning info

Definition at line 160 of file iax2.h.

◆ IAX_IE_APPARENT_ADDR

#define IAX_IE_APPARENT_ADDR   18

Apparent address of peer - struct sockaddr_in

Definition at line 148 of file iax2.h.

Referenced by iax2_key_rotate(), iax_parse_ies(), and update_registry().

◆ IAX_IE_AUTHMETHODS

#define IAX_IE_AUTHMETHODS   14

Authentication method(s) - short

Definition at line 144 of file iax2.h.

Referenced by authenticate_request(), iax_parse_ies(), and registry_authrequest().

◆ IAX_IE_AUTOANSWER

#define IAX_IE_AUTOANSWER   25

Request auto-answering – none

Definition at line 155 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_CALLED_CONTEXT

#define IAX_IE_CALLED_CONTEXT   5

Context for number - string

Definition at line 135 of file iax2.h.

Referenced by cache_get_callno_locked(), iax2_call(), iax2_transfer(), and iax_parse_ies().

◆ IAX_IE_CALLED_NUMBER

#define IAX_IE_CALLED_NUMBER   1

IAX Information elements Number/extension being called - string

Definition at line 131 of file iax2.h.

Referenced by cache_get_callno_locked(), dp_lookup(), iax2_call(), iax2_dprequest(), iax2_transfer(), and iax_parse_ies().

◆ IAX_IE_CALLING_ANI

#define IAX_IE_CALLING_ANI   3

Calling number ANI for billing - string

Definition at line 133 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_CALLING_NAME

#define IAX_IE_CALLING_NAME   4

Name of caller - string

Definition at line 134 of file iax2.h.

Referenced by iax2_call(), iax_parse_ies(), and update_registry().

◆ IAX_IE_CALLING_NUMBER

#define IAX_IE_CALLING_NUMBER   2

Calling number - string

Definition at line 132 of file iax2.h.

Referenced by iax2_call(), iax_parse_ies(), and update_registry().

◆ IAX_IE_CALLINGPRES

#define IAX_IE_CALLINGPRES   38

Calling presentation (u8)

Definition at line 168 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_CALLINGTNS

#define IAX_IE_CALLINGTNS   40

Calling transit network select (u16)

Definition at line 170 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_CALLINGTON

#define IAX_IE_CALLINGTON   39

Calling type of number (u8)

Definition at line 169 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_CALLNO

#define IAX_IE_CALLNO   21

Call number of peer - short

Definition at line 151 of file iax2.h.

Referenced by iax2_key_rotate(), iax_parse_ies(), and socket_process_helper().

◆ IAX_IE_CALLTOKEN

#define IAX_IE_CALLTOKEN   54

Call number security token

Definition at line 185 of file iax2.h.

Referenced by add_empty_calltoken_ie(), handle_call_token(), iax_parse_ies(), and resend_with_token().

◆ IAX_IE_CAPABILITY

#define IAX_IE_CAPABILITY   8

Actual codec capability - unsigned int

Definition at line 138 of file iax2.h.

Referenced by cache_get_callno_locked(), iax2_call(), and iax_parse_ies().

◆ IAX_IE_CAPABILITY2

#define IAX_IE_CAPABILITY2   55

Actual codec capability - u8 version + integer array

Definition at line 187 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_CAUSE

#define IAX_IE_CAUSE   22

Cause - string

Definition at line 152 of file iax2.h.

Referenced by __auth_reject(), __auto_hangup(), authenticate_request(), iax_parse_ies(), and socket_process_helper().

◆ IAX_IE_CAUSECODE

#define IAX_IE_CAUSECODE   42

Hangup cause (u8)

Definition at line 172 of file iax2.h.

Referenced by __auth_reject(), __auto_hangup(), authenticate_request(), iax2_hangup(), iax_parse_ies(), and socket_process_helper().

◆ IAX_IE_CHALLENGE

#define IAX_IE_CHALLENGE   15

Challenge data for MD5/RSA - string

Definition at line 145 of file iax2.h.

Referenced by authenticate_request(), iax2_key_rotate(), iax_parse_ies(), and registry_authrequest().

◆ IAX_IE_CODEC_PREFS

#define IAX_IE_CODEC_PREFS   45

Codec Negotiation

Definition at line 175 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_DATETIME

#define IAX_IE_DATETIME   31

Date/Time

Definition at line 161 of file iax2.h.

Referenced by iax2_call(), iax_parse_ies(), and update_registry().

◆ IAX_IE_DEVICETYPE

#define IAX_IE_DEVICETYPE   32

Device Type – string

Definition at line 162 of file iax2.h.

Referenced by iax_parse_ies().

◆ IAX_IE_DNID

#define IAX_IE_DNID   13

Originally dialed DNID - string

Definition at line 143 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_DPSTATUS

#define IAX_IE_DPSTATUS   20

Dialplan status - short

Definition at line 150 of file iax2.h.

Referenced by dp_lookup(), and iax_parse_ies().

◆ IAX_IE_ENCKEY

#define IAX_IE_ENCKEY   44

Encryption key (raw)

Definition at line 174 of file iax2.h.

Referenced by iax_parse_ies().

◆ IAX_IE_ENCRYPTION

#define IAX_IE_ENCRYPTION   43

Encryption format (u16)

Definition at line 173 of file iax2.h.

Referenced by authenticate_request(), iax2_call(), and iax_parse_ies().

◆ IAX_IE_FIRMWAREVER

#define IAX_IE_FIRMWAREVER   34

Firmware revision – u16

Definition at line 164 of file iax2.h.

Referenced by iax_parse_ies(), and update_registry().

◆ IAX_IE_FORMAT

#define IAX_IE_FORMAT   9

Desired codec format - unsigned int

Definition at line 139 of file iax2.h.

Referenced by cache_get_callno_locked(), iax2_call(), iax_parse_ies(), and socket_process_helper().

◆ IAX_IE_FORMAT2

#define IAX_IE_FORMAT2   56

Desired codec format - u8 version + integer array

Definition at line 188 of file iax2.h.

Referenced by iax2_call(), iax_parse_ies(), and socket_process_helper().

◆ IAX_IE_FWBLOCKDATA

#define IAX_IE_FWBLOCKDATA   36

Firmware block of data – raw

Definition at line 166 of file iax2.h.

Referenced by iax_firmware_append(), and iax_parse_ies().

◆ IAX_IE_FWBLOCKDESC

#define IAX_IE_FWBLOCKDESC   35

Firmware block description – u32

Definition at line 165 of file iax2.h.

Referenced by iax_firmware_append(), and iax_parse_ies().

◆ IAX_IE_IAX_UNKNOWN

#define IAX_IE_IAX_UNKNOWN   23

Unknown IAX command - byte

Definition at line 153 of file iax2.h.

Referenced by iax_parse_ies(), and socket_process_helper().

◆ IAX_IE_LANGUAGE

#define IAX_IE_LANGUAGE   10

Desired language - string

Definition at line 140 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_MD5_RESULT

#define IAX_IE_MD5_RESULT   16

MD5 challenge result - string

Definition at line 146 of file iax2.h.

Referenced by authenticate(), and iax_parse_ies().

◆ IAX_IE_MSGCOUNT

#define IAX_IE_MSGCOUNT   24

How many messages waiting - short

Definition at line 154 of file iax2.h.

Referenced by iax_parse_ies(), and update_registry().

◆ IAX_IE_MUSICONHOLD

#define IAX_IE_MUSICONHOLD   26

Request musiconhold with QUELCH – none or string

Definition at line 156 of file iax2.h.

Referenced by iax_parse_ies().

◆ IAX_IE_OSPTOKEN

#define IAX_IE_OSPTOKEN   53

OSP token

Definition at line 184 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_PASSWORD

#define IAX_IE_PASSWORD   7

Password for authentication - string

Definition at line 137 of file iax2.h.

Referenced by authenticate(), and iax_parse_ies().

◆ IAX_IE_PROVISIONING

#define IAX_IE_PROVISIONING   29

Provisioning info

Definition at line 159 of file iax2.h.

Referenced by iax2_provision().

◆ IAX_IE_PROVVER

#define IAX_IE_PROVVER   37

Provisioning Version (u32)

Definition at line 167 of file iax2.h.

Referenced by iax_parse_ies().

◆ IAX_IE_RDNIS

#define IAX_IE_RDNIS   28

Referring DNIS – string

Definition at line 158 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_REFRESH

#define IAX_IE_REFRESH   19

When to refresh registration - short

Definition at line 149 of file iax2.h.

Referenced by dp_lookup(), iax2_do_register(), iax_parse_ies(), registry_rerequest(), and update_registry().

◆ IAX_IE_RR_DELAY

#define IAX_IE_RR_DELAY   49

Max playout delay for received frames (in ms) u16

Definition at line 180 of file iax2.h.

Referenced by construct_rr(), and iax_parse_ies().

◆ IAX_IE_RR_DROPPED

#define IAX_IE_RR_DROPPED   50

Dropped frames (presumably by jitterbuf) u32

Definition at line 181 of file iax2.h.

Referenced by construct_rr(), and iax_parse_ies().

◆ IAX_IE_RR_JITTER

#define IAX_IE_RR_JITTER   46

Received jitter (as in RFC1889) u32

Definition at line 177 of file iax2.h.

Referenced by construct_rr(), and iax_parse_ies().

◆ IAX_IE_RR_LOSS

#define IAX_IE_RR_LOSS   47

Received loss (high byte loss pct, low 24 bits loss count, as in rfc1889

Definition at line 178 of file iax2.h.

Referenced by construct_rr(), and iax_parse_ies().

◆ IAX_IE_RR_OOO

#define IAX_IE_RR_OOO   51

Frames received Out of Order u32

Definition at line 182 of file iax2.h.

Referenced by construct_rr(), and iax_parse_ies().

◆ IAX_IE_RR_PKTS

#define IAX_IE_RR_PKTS   48

Received frames (total frames received) u32

Definition at line 179 of file iax2.h.

Referenced by construct_rr(), and iax_parse_ies().

◆ IAX_IE_RSA_RESULT

#define IAX_IE_RSA_RESULT   17

RSA challenge result - string

Definition at line 147 of file iax2.h.

Referenced by authenticate(), and iax_parse_ies().

◆ IAX_IE_SAMPLINGRATE

#define IAX_IE_SAMPLINGRATE   41

Supported sampling rates (u16)

Definition at line 171 of file iax2.h.

Referenced by iax_parse_ies().

◆ IAX_IE_SERVICEIDENT

#define IAX_IE_SERVICEIDENT   33

Service Identifier – string

Definition at line 163 of file iax2.h.

Referenced by iax_parse_ies().

◆ IAX_IE_TRANSFERID

#define IAX_IE_TRANSFERID   27

Transfer Request Identifier – int

Definition at line 157 of file iax2.h.

Referenced by iax2_key_rotate(), iax_parse_ies(), and try_transfer().

◆ IAX_IE_USERNAME

#define IAX_IE_USERNAME   6

Username (peer or user) for authentication - string

Definition at line 136 of file iax2.h.

Referenced by authenticate_request(), cache_get_callno_locked(), iax2_call(), iax2_do_register(), iax_parse_ies(), registry_authrequest(), registry_rerequest(), and update_registry().

◆ IAX_IE_VARIABLE

#define IAX_IE_VARIABLE   52

Remote variables

Definition at line 183 of file iax2.h.

Referenced by iax2_call(), and iax_parse_ies().

◆ IAX_IE_VERSION

#define IAX_IE_VERSION   11

Protocol version - short

Definition at line 141 of file iax2.h.

Referenced by cache_get_callno_locked(), iax2_call(), and iax_parse_ies().

◆ IAX_LINGER_TIMEOUT

#define IAX_LINGER_TIMEOUT   10

How long to wait before closing bridged call

Definition at line 126 of file iax2.h.

Referenced by iax2_key_rotate().

◆ IAX_MAX_CALLS

#define IAX_MAX_CALLS   32768

Definition at line 37 of file iax2.h.

Referenced by create_callno_pools(), and load_objects().

◆ IAX_MAX_OSPBLOCK_NUM

#define IAX_MAX_OSPBLOCK_NUM   4

Definition at line 191 of file iax2.h.

Referenced by iax_parse_ies(), and save_osptoken().

◆ IAX_MAX_OSPBLOCK_SIZE

#define IAX_MAX_OSPBLOCK_SIZE   254

Max OSP token block size, 255 bytes - 1 byte OSP token block index

Definition at line 190 of file iax2.h.

Referenced by iax2_call(), and save_osptoken().

◆ IAX_MAX_OSPBUFF_SIZE

#define IAX_MAX_OSPBUFF_SIZE   (IAX_MAX_OSPTOKEN_SIZE + 16)

Definition at line 193 of file iax2.h.

Referenced by save_osptoken().

◆ IAX_MAX_OSPTOKEN_SIZE

#define IAX_MAX_OSPTOKEN_SIZE   (IAX_MAX_OSPBLOCK_SIZE * IAX_MAX_OSPBLOCK_NUM)

Definition at line 192 of file iax2.h.

Referenced by iax2_call().

◆ IAX_MAX_SHIFT

#define IAX_MAX_SHIFT   0x3F

Definition at line 46 of file iax2.h.

Referenced by compress_subclass(), and uncompress_subclass().

◆ IAX_META_TRUNK

#define IAX_META_TRUNK   1

Trunk meta-message

Definition at line 202 of file iax2.h.

Referenced by send_trunk(), and socket_process_meta().

◆ IAX_META_TRUNK_MINI

#define IAX_META_TRUNK_MINI   1

This trunk frame contains trunked mini frames

Definition at line 206 of file iax2.h.

Referenced by send_trunk(), and socket_process_meta().

◆ IAX_META_TRUNK_SUPERMINI

#define IAX_META_TRUNK_SUPERMINI   0

This trunk frame contains classic supermini frames

Definition at line 205 of file iax2.h.

Referenced by send_trunk(), and socket_process_meta().

◆ IAX_META_VIDEO

#define IAX_META_VIDEO   2

Video frame

Definition at line 203 of file iax2.h.

◆ IAX_PROTO_VERSION

#define IAX_PROTO_VERSION   2

Definition at line 27 of file iax2.h.

Referenced by cache_get_callno_locked(), check_access(), and iax2_call().

◆ IAX_RATE_11KHZ

#define IAX_RATE_11KHZ   (1 << 1)

11.025khz sampling

Definition at line 209 of file iax2.h.

Referenced by dump_samprate().

◆ IAX_RATE_16KHZ

#define IAX_RATE_16KHZ   (1 << 2)

16khz sampling

Definition at line 210 of file iax2.h.

Referenced by dump_samprate().

◆ IAX_RATE_22KHZ

#define IAX_RATE_22KHZ   (1 << 3)

22.05khz sampling

Definition at line 211 of file iax2.h.

Referenced by dump_samprate().

◆ IAX_RATE_44KHZ

#define IAX_RATE_44KHZ   (1 << 4)

44.1khz sampling

Definition at line 212 of file iax2.h.

Referenced by dump_samprate().

◆ IAX_RATE_48KHZ

#define IAX_RATE_48KHZ   (1 << 5)

48khz sampling

Definition at line 213 of file iax2.h.

Referenced by dump_samprate().

◆ IAX_RATE_8KHZ

#define IAX_RATE_8KHZ   (1 << 0)

8khz sampling (default if absent)

Definition at line 208 of file iax2.h.

Referenced by dump_samprate(), and iax_parse_ies().

◆ IAX_WINDOW

#define IAX_WINDOW   64

Definition at line 48 of file iax2.h.

Typedef Documentation

◆ iax2_format

typedef int64_t iax2_format

iax2 format bit field for handling codecs the old way

Definition at line 222 of file iax2.h.

Enumeration Type Documentation

◆ iax_frame_subclass

Subclass for AST_FRAME_IAX

Enumerator
IAX_COMMAND_NEW 
IAX_COMMAND_PING 
IAX_COMMAND_PONG 
IAX_COMMAND_ACK 
IAX_COMMAND_HANGUP 
IAX_COMMAND_REJECT 
IAX_COMMAND_ACCEPT 
IAX_COMMAND_AUTHREQ 
IAX_COMMAND_AUTHREP 
IAX_COMMAND_INVAL 
IAX_COMMAND_LAGRQ 
IAX_COMMAND_LAGRP 
IAX_COMMAND_REGREQ 

Registration request

IAX_COMMAND_REGAUTH 

Registration authentication required

IAX_COMMAND_REGACK 

Registration accepted

IAX_COMMAND_REGREJ 

Registration rejected

IAX_COMMAND_REGREL 

Force release of registration

IAX_COMMAND_VNAK 

If we receive voice before valid first voice frame, send this

IAX_COMMAND_DPREQ 

Request status of a dialplan entry

IAX_COMMAND_DPREP 

Request status of a dialplan entry

IAX_COMMAND_DIAL 

Request a dial on channel brought up TBD

IAX_COMMAND_TXREQ 

Transfer Request

IAX_COMMAND_TXCNT 

Transfer Connect

IAX_COMMAND_TXACC 

Transfer Accepted

IAX_COMMAND_TXREADY 

Transfer ready

IAX_COMMAND_TXREL 

Transfer release

IAX_COMMAND_TXREJ 

Transfer reject

IAX_COMMAND_QUELCH 

Stop audio/video transmission

IAX_COMMAND_UNQUELCH 

Resume audio/video transmission

IAX_COMMAND_POKE 

Like ping, but does not require an open connection

IAX_COMMAND_PAGE 

Paging description

IAX_COMMAND_MWI 

Stand-alone message waiting indicator

IAX_COMMAND_UNSUPPORT 

Unsupported message received

IAX_COMMAND_TRANSFER 

Request remote transfer

IAX_COMMAND_PROVISION 

Provision device

IAX_COMMAND_FWDOWNL 

Download firmware

IAX_COMMAND_FWDATA 

Firmware Data

IAX_COMMAND_TXMEDIA 

Transfer media only

IAX_COMMAND_RTKEY 

Command to rotate key

IAX_COMMAND_CALLTOKEN 

Call number token

Definition at line 51 of file iax2.h.

51  {
52  IAX_COMMAND_NEW = 1,
53  IAX_COMMAND_PING = 2,
54  IAX_COMMAND_PONG = 3,
55  IAX_COMMAND_ACK = 4,
61  IAX_COMMAND_INVAL = 10,
62  IAX_COMMAND_LAGRQ = 11,
63  IAX_COMMAND_LAGRP = 12,
64  /*! Registration request */
65  IAX_COMMAND_REGREQ = 13,
66  /*! Registration authentication required */
68  /*! Registration accepted */
69  IAX_COMMAND_REGACK = 15,
70  /*! Registration rejected */
71  IAX_COMMAND_REGREJ = 16,
72  /*! Force release of registration */
73  IAX_COMMAND_REGREL = 17,
74  /*! If we receive voice before valid first voice frame, send this */
75  IAX_COMMAND_VNAK = 18,
76  /*! Request status of a dialplan entry */
77  IAX_COMMAND_DPREQ = 19,
78  /*! Request status of a dialplan entry */
79  IAX_COMMAND_DPREP = 20,
80  /*! Request a dial on channel brought up TBD */
81  IAX_COMMAND_DIAL = 21,
82  /*! Transfer Request */
83  IAX_COMMAND_TXREQ = 22,
84  /*! Transfer Connect */
85  IAX_COMMAND_TXCNT = 23,
86  /*! Transfer Accepted */
87  IAX_COMMAND_TXACC = 24,
88  /*! Transfer ready */
90  /*! Transfer release */
91  IAX_COMMAND_TXREL = 26,
92  /*! Transfer reject */
93  IAX_COMMAND_TXREJ = 27,
94  /*! Stop audio/video transmission */
95  IAX_COMMAND_QUELCH = 28,
96  /*! Resume audio/video transmission */
98  /*! Like ping, but does not require an open connection */
99  IAX_COMMAND_POKE = 30,
100  /*! Paging description */
101  IAX_COMMAND_PAGE = 31,
102  /*! Stand-alone message waiting indicator */
103  IAX_COMMAND_MWI = 32,
104  /*! Unsupported message received */
106  /*! Request remote transfer */
108  /*! Provision device */
110  /*! Download firmware */
111  IAX_COMMAND_FWDOWNL = 36,
112  /*! Firmware Data */
113  IAX_COMMAND_FWDATA = 37,
114  /*! Transfer media only */
115  IAX_COMMAND_TXMEDIA = 38,
116  /*! Command to rotate key */
117  IAX_COMMAND_RTKEY = 39,
118  /*! Call number token */
120 };

Function Documentation

◆ iax2_getformatname()

const char* iax2_getformatname ( iax2_format  format)

iax2 wrapper function for ast_getformatname

Definition at line 1903 of file chan_iax2.c.

References ast_format_compatibility_bitfield2format(), and ast_format_get_name().

Referenced by dump_versioned_codec(), handle_cli_iax2_show_channels(), iax_show_provisioning(), and socket_process_helper().

1904 {
1905  struct ast_format *tmpfmt;
1906 
1908  if (!tmpfmt) {
1909  return "Unknown";
1910  }
1911 
1912  return ast_format_get_name(tmpfmt);
1913 }
struct ast_format * ast_format_compatibility_bitfield2format(uint64_t bitfield)
Convert a bitfield to its respective format structure.
Definition of a media format.
Definition: format.c:43
const char * ast_format_get_name(const struct ast_format *format)
Get the name associated with a format.
Definition: format.c:334
static snd_pcm_format_t format
Definition: chan_alsa.c:102