; Trunking notes: ; Trunking can be enabled when routing by a 'trunkout' parameter for outgoing calls ; and 'trunkin' parameter for incoming calls. ; When registering a line to a remote server trunking can be enabled using a 'trunking' ; parameter set in 'user.login' message ; The following parameters can be set in 'user.login' to override the defaults: ; trunk_timestamps, trunk_sendinterval, trunk_maxlen, trunk_efficient_use, ; trunk_nominits_sync_use_ts, trunk_nominits_ts_diff_restart ; When setting trunking parameters for a call the order is: ; - init with configured parameters value ; - override with parameters set for line (outgoing calls only) ; - override parameters set when routing ; IMPORTANT: When a call is set to send trunked data all parameters related to ; trunk (timestamps use, send interval, max packet length) are ignored if there ; is another call using trunking with the same remote ip/port. ; TAKE CARE WHEN SETTING TRUNKING PARAMETERS IN MORE THEN 1 PLACE FOR THE SAME ; REMOTE IP/PORT !!! ; When routing a call to iax module a specific listener can be specfied: ; 1: Its name can be set in 'oconnection_id' parameter. ; The name of the listener created from 'general' section is 'iaxengine' ; 2: Local ip/port can be specified in 'oip_transport_localip' and ; 'oip_transport_localport'. The port defaults to 4569 if missing. ; If a non empty connection id or local address is specified and a valid listener ; is not found the call will fail [general] ; This section sets global variables of the implementation ; It also sets the default listener named 'iaxengine' ; Unless specified all parameters are listener specific ; port: int: UDP port for incoming connections ;port=4569 ; addr: ipaddress: IP address to bind to ;addr=0.0.0.0 ; force_bind: boolean: Try to use a random port if failed to bind on configured one ; Defaults to yes ;force_bind=yes ; default: boolean: Specifiy if this is the default transport to use when none specified ; Defaults to yes (unlike the other listeners) ;default=yes ; numtype: string: Default calling number type for outgoing calls ; This parameter is applied on reload ; It can be overridden from routing by 'callernumtype' parameter ; Values: unknown,international,national,net-specific,subscriber,abbreviated,reserved ; Defaults to unknown if missing or incorrect ;numtype=unknown ; presentation: string: Default number presentation for outgoing calls ; This parameter is applied on reload ; It can be overridden from routing by 'callerpres' parameter ; Values: allowed, restricted, unavailable ; Defaults to allowed if missing or incorrect ;presentation=allowed ; screening: string: Default number screening for outgoing calls ; This parameter is applied on reload ; It can be overridden from routing by 'callerscreening' parameter ; Values: user-provided, user-provided-passed, user-provided-failed, network-provided ; Defaults to user-provided if missing or incorrect ;screening=user-provided ; trunk_timestamps: boolean: Configure how trunked audio data is sent, enable it for ; trunked data with timestamps and disable it to send trunked data without timestamps ; This parameter is applied on reload ; It can be overridden when routing by 'trunkin_timestamps' for incoming calls ; or 'trunkout_timestamps' for outgoing calls ; This parameter is applied when a new trunk is created (a trunked call is created and ; there is no trunk for the same remote address) ; Defaults to yes ;trunk_timestamps=yes ; trunk_sendinterval: integer: Interval, in milliseconds, to send trunked trunked audio data ; The interval is measured from the first packet put in a trunk ; Trunked data is sent when this interval ellapses or the buffer is full ; This parameter is applied on reload ; It can be overridden when routing by 'trunkin_sendinterval' for incoming calls ; or 'trunkout_sendinterval' for outgoing calls ; This parameter is applied when a new trunk is created (a trunked call is created and ; there is no trunk for the same remote address) ; Minimum allowed value is 5 ; Defaults to 20 ;trunk_sendinterval=20 ; trunk_maxlen: integer: Maximum value for trunked data frames. ; This value includes the length if trunk frame header (8 bytes) ; Trunked data is sent when the send interval ellapses or the buffer is full ; This parameter is applied on reload ; It can be overridden when routing by 'trunkin_maxlen' for incoming calls ; or 'trunkout_maxlen' for outgoing calls ; This parameter is applied when a new trunk is created (a trunked call is created and ; there is no trunk for the same remote address) ; Minimum allowed value is 20 ; Defaults to 1400 ;trunk_maxlen=1400 ; trunk_efficient_use: boolean: Use the trunk efficiently: don't send trunking data when ; there is only 1 call using it ; This parameter is applied on reload ; It can be overridden when routing by 'trunkin_efficient_use' for incoming calls ; or 'trunkout_efficient_use' for outgoing calls ; Defaults to no ;trunk_efficient_use=0 ; trunk_nominits_sync_use_ts: boolean: Configure how to re-build timestamps when ; processing incoming trunked audio without miniframe timestamps ; When enabled the transaction will use trunk timestamp and last received full voice ; frame time and timestamp to build miniframe timestamps ; When disabled the transaction will use the time difference between current time and ; last received full voice frame to build the miniframe timestamps ; This parameter is applied on reload ; It can be overridden when routing by 'trunkin_nominits_sync_use_ts' for incoming calls ; or 'trunkout_nominits_sync_use_ts' for outgoing calls ; Defaults to yes ;trunk_nominits_sync_use_ts=yes ; trunk_nominits_ts_diff_restart: integer: The difference (in milliseconds) between ; current timestamp and first timestamp of incoming trunked audio data without miniframe ; timestamps at which to restart timestamps build data ; This value is used when received trunk timestamp is older then first timestamp ; If the difference is less then this value the miniframes will be dropped ; This will deal with trunk timestamp wraparound or restarted by remote party ; This parameter is ignored if trunk_nominits_sync_use_ts is disabled ; This parameter is applied on reload ; It can be overridden when routing by 'trunkin_nominits_ts_diff_restart' for incoming ; calls or 'trunkout_nominits_ts_diff_restart' for outgoing calls ; Minimum allowed value is 1000 ; Defaults to 5000 ;trunk_nominits_ts_diff_restart=5000 ; calltoken_in: boolean: Use call token ip address authentication on incoming calls ; Note: If the caller don't support the call token IAX extension the call request ; will be ignored anyway ; This parameter is applied on reload ; Defaults to no ;calltoken_in=no ; calltoken_out: boolean: Offer call token ip address authentication on outgoing calls ; This is not a listener specific parameter, it will be applied for all listeners ; This parameter is applied on reload and can be overridden from routing ; Defaults to yes ;calltoken_out=yes ; calltoken_rejectmissing: boolean: Reject incoming calls without call token support ; when calltoken_in is enabled ; If disabled the requests will be ignored (dropped) ; This parameter is applied on reload ; Defaults to yes ;calltoken_rejectmissing=yes ; retrans_count: integer: The number of frame retransmissions ; This parameter is applied on reload for new calls only ; Allowed interval: 1..10 ; Defaults to 4 ;retrans_count=4 ; retrans_interval: integer: The first frame retransmission interval in milliseconds ; This parameter is applied on reload for new calls only ; Allowed interval: 200..5000 ; Defaults to 500 ;retrans_interval=500 ; ping_interval: integer: The interval, in milliseconds, to send ping ; This parameter is applied on reload for new calls only ; Minimum allowed value is 10000 ; Defaults to 20000 ;ping_interval=20000 ; adjust_ts_out_threshold: integer: The difference, in milliseconds, between sent audio data ; timestamp and transaction timestamp at which audio data timestamp will be adjusted ; Its value will be rouded up to a multiple of 10 ; This value is applied on reload for new calls only ; It can be overridden from routing ; Defaults to 120 ; Allowed interval: 20 .. 300 ;adjust_ts_out_threshold=120 ; adjust_ts_out_over: integer: Interval, in milliseconds, to adjust sent audio data ; timestamp on data overrun (the sender transmits data on a rate greater then expected) ; When applied the packets will be dropped until data timestamp will be at least at the ; value of last sent packet timestamp ; NOTE: Choose values greater the packet time to drop more packets at a time. ; Lower values will drop less packets in a row but this will happen more frequently ; Its value will be rouded up to a multiple of 10 ; This value is applied on reload for new calls only ; It can be overridden from routing ; It can't be greater then adjust_ts_out_threshold ; Defaults to 120 ; Allowed interval: 10 .. adjust_ts_out_threshold ;adjust_ts_out_over=120 ; adjust_ts_out_under: integer: Interval, in milliseconds, to adjust sent audio data ; timestamp on data underrun (the sender transmits data on a rate less then expected) ; Its value will be rouded up to a multiple of 10 ; This value is applied on reload for new calls only ; It can be overridden from routing ; It can't be greater then 2 * adjust_ts_out_threshold - 1 ; Defaults to 60 ; Allowed interval: 10 .. 2 * adjust_ts_out_threshold - 1 ;adjust_ts_out_under=60 ; challenge_timeout: integer: Interval, in milliseconds, in which a remote party should ; reply with credentials when we are challenging it ; This value is applied on reload ; Minimum allowed value is 5000 ; Defaults to 30000 ;challenge_timeout=30000 ; tos: keyword: Type Of Service to set in outgoing UDP packets ; numeric TOS value or: lowdelay, throughput, reliability, mincost ;tos=0 ; read_threads: int: Number of threads that read packets from socket ;read_threads=1 in client mode, 3 in server mode ; event_threads: int: Number of threads that process events ;event_threads=1 in client mode, 3 in server mode ; trunk_threads: int: Number of threads that service trunked voice packets ;trunk_threads=1 ; thread: keyword: Default priority of the data service threads (socket listener and data trunking) ; Can be one of: lowest, low, normal, high, highest ; It is a bad idea to set a low priority for anything but testing ;thread=normal ; maxchans: int: Maximum number of channels running at once ; This is not a listener specific parameter, it will be applied for all listeners ; A value of 0 specifies that there is no limit enforced. ; Defaults to the value set by the maxchans setting from yate.conf ;maxchans= ; printmsg: boolean: Print sent/received frames to output if the module's debug ; level is at least 9 ; This parameter is applied on reload ; Defaults to yes ;printmsg=yes [registrar] ; Controls the behaviour when acting as registrar ; expires_min: int: Minimum allowed expiration time in seconds ; This parameter is applied on reload ; Minimum allowed value is 1 ; Defaults to 60 if missing ;expires_min=60 ; expires_max: int: Value used to limit the expiration time to something sane ; This parameter is applied on reload ; Minimum allowed value is the value set in expires_min ; Defaults to 3600 if missing ;expires_max=3600 ; expires_def: int: Default expiration time if not present in register requests ; This parameter is applied on reload ; The value is checked to be between expires_min and expires_max ; Defaults to 60 if missing ;expires_def=60 [formats] ; This section allows to individually enable or disable the codecs ; default: bool: Default enabling state for codecs ;default=enable ; preferred: string: Preferred format to use ;preferred= ; slin: bool: Uncompressed 16-bit signed linear ;slin=enable ; mulaw: bool: Companded-only G711 mu-law ;mulaw=enable ; alaw: bool: Companded-only G711 a-law ;alaw=enable ; gsm: bool: European GSM 06.10 ;gsm=enable ; gsmhr: bool: European GSM 06.20 (GSM Half Rate) ;gsmhr=enable ; lpc10: bool: LPC 10 ;lpc10=enable ;[listener listener_name] ; This section configures an extra listener to use ; 'iaxengine' can't be used as listener name ; Listed parameters can't use the default value from 'general' section ; All other parameters from 'general' section who are listener specific can be overriden ; for this listener ; enable: boolean: Enable or disable this listener ; This parameter is applied on reload and defaults to yes ;enable=yes ; port: int: UDP port for incoming connections ;port=4569 ; addr: ipaddress: IP address to bind to ;addr=0.0.0.0 ; force_bind: boolean: Try to use a random port if failed to bind on configured one ; Defaults to yes ;force_bind=yes ; default: boolean: Specifiy if this is the default transport to use when none specified ; Defaults to no ;default=no