IAX
(→Examples) |
(→Configuration) |
||
Line 19: | Line 19: | ||
; This file keeps the configuration for the Jingle channel | ; This file keeps the configuration for the Jingle channel | ||
− | + | ||
[general] | [general] | ||
; Global settings of Jingle channel | ; Global settings of Jingle channel | ||
− | + | ||
; servermode: boolean: Server/client mode | ; servermode: boolean: Server/client mode | ||
; This parameter can be used to override yate running mode | ; This parameter can be used to override yate running mode | ||
; Defaults to true if yate is running in non client mode, false otherwise | ; Defaults to true if yate is running in non client mode, false otherwise | ||
;servermode= | ;servermode= | ||
− | + | ||
; domains: string: Comma separated list of domains serviced by the jingle channel | ; domains: string: Comma separated list of domains serviced by the jingle channel | ||
; The parameter is not used in client mode | ; The parameter is not used in client mode | ||
; When running in non client mode any domain should be a jabber server (sub)domain | ; When running in non client mode any domain should be a jabber server (sub)domain | ||
;domains= | ;domains= | ||
− | + | ||
; resources: string: Comma separated list of resources serviced by the jingle channel | ; resources: string: Comma separated list of resources serviced by the jingle channel | ||
; The parameter is not used in client mode | ; The parameter is not used in client mode | ||
Line 38: | Line 38: | ||
; If this parameter is empty the module will handle all resources | ; If this parameter is empty the module will handle all resources | ||
;resources= | ;resources= | ||
− | + | ||
; resource_priority: integer: Resource priority for presence sent by the module | ; resource_priority: integer: Resource priority for presence sent by the module | ||
; Interval allowed -128..127 | ; Interval allowed -128..127 | ||
; Defaults to 0 | ; Defaults to 0 | ||
;resource_priority=0 | ;resource_priority=0 | ||
− | + | ||
; jingle_version: integer: Jingle session version to use for outgoing calls | ; jingle_version: integer: Jingle session version to use for outgoing calls | ||
; Defaults to the newest version if missing or invalid | ; Defaults to the newest version if missing or invalid | ||
Line 49: | Line 49: | ||
; This parameter can be overridden when routing by an 'ojingle_version' parameter | ; This parameter can be overridden when routing by an 'ojingle_version' parameter | ||
;jingle_version= | ;jingle_version= | ||
− | + | ||
; jingle_flags: string: Comma separated list of default jingle session flags | ; jingle_flags: string: Comma separated list of default jingle session flags | ||
; Available flags: | ; Available flags: | ||
Line 56: | Line 56: | ||
; outgoing calls or "jingle_flags" for incoming calls | ; outgoing calls or "jingle_flags" for incoming calls | ||
;jingle_flags= | ;jingle_flags= | ||
− | + | ||
; accept_relay: bool: Accept a "relay" transport type even if we had another type before | ; accept_relay: bool: Accept a "relay" transport type even if we had another type before | ||
; This works only with Jingle version 0 (Google Talk, libjingle) | ; This works only with Jingle version 0 (Google Talk, libjingle) | ||
;accept_relay=disable in server mode, enable in client mode | ;accept_relay=disable in server mode, enable in client mode | ||
− | + | ||
; singletone: boolean: Send chan tones as single characters. | ; singletone: boolean: Send chan tones as single characters. | ||
; If disabled, the whole text received as chan tone(s) will be sent | ; If disabled, the whole text received as chan tone(s) will be sent | ||
− | + | ||
; in the same XML element | ; in the same XML element | ||
; Defaults to enable | ; Defaults to enable | ||
;singletone=enable | ;singletone=enable | ||
− | + | ||
; imtochantext: boolean: Send received IM messages as chan.text if a channel is found | ; imtochantext: boolean: Send received IM messages as chan.text if a channel is found | ||
; If disabled, an im.route message will be pushed into the engine | ; If disabled, an im.route message will be pushed into the engine | ||
; Defaults to disable | ; Defaults to disable | ||
;imtochantext=disable | ;imtochantext=disable | ||
− | + | ||
; localip: string: Set this machine's IP address. If missing, we will try to guess one | ; localip: string: Set this machine's IP address. If missing, we will try to guess one | ||
; The local machine's IP address is used to negotiate the audio stream | ; The local machine's IP address is used to negotiate the audio stream | ||
;localip= | ;localip= | ||
− | + | ||
; anonymous_caller: string: Set the caller name if missing for outgoing calls | ; anonymous_caller: string: Set the caller name if missing for outgoing calls | ||
; Defaults to unk_caller | ; Defaults to unk_caller | ||
;anonymous_caller=unk_caller | ;anonymous_caller=unk_caller | ||
− | + | ||
; request_subscribe: boolean: Make a subscribe request before probing a remote user | ; request_subscribe: boolean: Make a subscribe request before probing a remote user | ||
; Defaults to enable | ; Defaults to enable | ||
Line 96: | Line 96: | ||
;request_subscribe=enable | ;request_subscribe=enable | ||
;pending_timeout=10000 | ;pending_timeout=10000 | ||
− | + | ||
; auto_subscribe: boolean: Automatically respond to (un)subscribe requests | ; auto_subscribe: boolean: Automatically respond to (un)subscribe requests | ||
; The parameter is not used in client mode | ; The parameter is not used in client mode | ||
Line 104: | Line 104: | ||
; jabber users! | ; jabber users! | ||
;auto_subscribe=disable | ;auto_subscribe=disable | ||
− | + | ||
; stanza_timeout: integer: The timeout interval (in milliseconds) of a stanza sent by a | ; stanza_timeout: integer: The timeout interval (in milliseconds) of a stanza sent by a | ||
; jingle session | ; jingle session | ||
− | + | ; Session initiate and ping timeout will automatically lead to session termination | |
; Minimum allowed value is 10000 | ; Minimum allowed value is 10000 | ||
; Defaults to 20000 if missing or to the minimum value if invalid | ; Defaults to 20000 if missing or to the minimum value if invalid | ||
;stanza_timeout=20000 | ;stanza_timeout=20000 | ||
− | + | ||
; ping_interval: integer: The interval (in milliseconds) to ping the remote party of a | ; ping_interval: integer: The interval (in milliseconds) to ping the remote party of a | ||
; jingle session | ; jingle session | ||
Line 119: | Line 119: | ||
; If enabled, it's value must be greater then stanza_timeout | ; If enabled, it's value must be greater then stanza_timeout | ||
;ping_interval=300000 | ;ping_interval=300000 | ||
− | + | ||
; resource.notify: integer: Override the priority of module's resource.notify message handler | ; resource.notify: integer: Override the priority of module's resource.notify message handler | ||
;resource.notify= | ;resource.notify= | ||
− | + | ||
; redirectcount: integer: Default value for outgoing calls redirect counter | ; redirectcount: integer: Default value for outgoing calls redirect counter | ||
; This parameter controls the behaviour of an outgoing call terminated | ; This parameter controls the behaviour of an outgoing call terminated | ||
Line 132: | Line 132: | ||
; This parameter can be overridden from routing | ; This parameter can be overridden from routing | ||
;redirectcount=0 | ;redirectcount=0 | ||
− | + | ||
; dtmfmethod: string: Default value for the method used to send DTMFs | ; dtmfmethod: string: Default value for the method used to send DTMFs | ||
; Allowed values: | ; Allowed values: | ||
Line 191: | Line 191: | ||
; Defaults to ilbc30 | ; Defaults to ilbc30 | ||
;ilbc_default=ilbc30 | ;ilbc_default=ilbc30 | ||
− | |||
===Examples=== | ===Examples=== |
Revision as of 11:22, 15 October 2012
Contents |
Jingle module
This module supports the Jingle protocol by implementing XMPP as an external component of another server.
Routing
Syntax: jingle/user@server
A 'callerprompt' parameter may be added with a text to be sent to the called party before making the call
Examples
Route a call 125 to the user 'remoteuser' at server 'remotedomain.com'
^125$=jingle/remoteuser@remotedomain.com;callerprompt=Hello, this is a call from ME
Configuration
yjinglechan.conf
; This file keeps the configuration for the Jingle channel [general] ; Global settings of Jingle channel ; servermode: boolean: Server/client mode ; This parameter can be used to override yate running mode ; Defaults to true if yate is running in non client mode, false otherwise ;servermode= ; domains: string: Comma separated list of domains serviced by the jingle channel ; The parameter is not used in client mode ; When running in non client mode any domain should be a jabber server (sub)domain ;domains= ; resources: string: Comma separated list of resources serviced by the jingle channel ; The parameter is not used in client mode ; The first resource will be the default one (for outgoing calls) ; If this parameter is empty the module will handle all resources ;resources= ; resource_priority: integer: Resource priority for presence sent by the module ; Interval allowed -128..127 ; Defaults to 0 ;resource_priority=0 ; jingle_version: integer: Jingle session version to use for outgoing calls ; Defaults to the newest version if missing or invalid ; Allowed values are 0 or 1 ; This parameter can be overridden when routing by an 'ojingle_version' parameter ;jingle_version= ; jingle_flags: string: Comma separated list of default jingle session flags ; Available flags: ; - noping: Don't send ping (empty session info) ; This parameter can be overridden when routing by an 'ojingle_flags' parameter for ; outgoing calls or "jingle_flags" for incoming calls ;jingle_flags= ; accept_relay: bool: Accept a "relay" transport type even if we had another type before ; This works only with Jingle version 0 (Google Talk, libjingle) ;accept_relay=disable in server mode, enable in client mode ; singletone: boolean: Send chan tones as single characters. ; If disabled, the whole text received as chan tone(s) will be sent ; in the same XML element ; Defaults to enable ;singletone=enable ; imtochantext: boolean: Send received IM messages as chan.text if a channel is found ; If disabled, an im.route message will be pushed into the engine ; Defaults to disable ;imtochantext=disable ; localip: string: Set this machine's IP address. If missing, we will try to guess one ; The local machine's IP address is used to negotiate the audio stream ;localip= ; anonymous_caller: string: Set the caller name if missing for outgoing calls ; Defaults to unk_caller ;anonymous_caller=unk_caller ; request_subscribe: boolean: Make a subscribe request before probing a remote user ; Defaults to enable ; pending_timeout: integer: How much an outgoing call will wait for a response to a probe ; Defaults to 10000 ; The parameters are not used in client mode ; These options are used when we want to make an outgoing call and we can't do that because we don't have ; a resource with audio capability for the called party, so we have to probe its presence ; Since we might not receive a response if the caller is not subscribed to called's party presence, ; we should make a subscribe request first (enabling request_subscribe will do that) ; The jingle channel will wait for the time given by pending_timeout for an an appropriate response ; If no response is received within pending_timeout interval the call will be dropped ; When receiving a valid response, the jingle channel will start to negotiate the call ; pending_timeout actually extends the time an outgoing call may be in a not answered state ;request_subscribe=enable ;pending_timeout=10000 ; auto_subscribe: boolean: Automatically respond to (un)subscribe requests ; The parameter is not used in client mode ; Defaults to disable ; WARNING: If auto_subscribe is enabled when the module is handling the same domain(s) as ; the jabber server this might lead to subscription request aproval on behalf of 'real' ; jabber users! ;auto_subscribe=disable ; stanza_timeout: integer: The timeout interval (in milliseconds) of a stanza sent by a ; jingle session ; Session initiate and ping timeout will automatically lead to session termination ; Minimum allowed value is 10000 ; Defaults to 20000 if missing or to the minimum value if invalid ;stanza_timeout=20000 ; ping_interval: integer: The interval (in milliseconds) to ping the remote party of a ; jingle session ; If enabled and the ping element fails the session will be terminated ; Minimum allowed value is 60000. Set it to 0 to disable ping ; Defaults to 300000 if missing or invalid ; If enabled, it's value must be greater then stanza_timeout ;ping_interval=300000 ; resource.notify: integer: Override the priority of module's resource.notify message handler ;resource.notify= ; redirectcount: integer: Default value for outgoing calls redirect counter ; This parameter controls the behaviour of an outgoing call terminated ; with 'redirect' reason containing a non empty target ; If non 0 the counter is decreased. If the target is an XMPP uri the call will ; be re-executed internally. ; If the counter is 0 when terminated, the call parameters list will be filled with ; session parameters to let the PBX deal with it. ; This parameter can be overridden from routing ;redirectcount=0 ; dtmfmethod: string: Default value for the method used to send DTMFs ; Allowed values: ; jingle: Use the jingle protocol ; rfc2833: Send RFC 2833 DTMFs ; inband: Generate inband tones ; chat: Send tones as chat messages ; This parameter can be overridden from routing ;dtmfmethod=jingle
[codecs] ; This section allows to individually enable or disable the codecs
; default: bool: Enable all unlisted codecs by default default=false
; mulaw: bool: Companded-only G711 mu-law (PCMU/8000) mulaw=true ; alaw: bool: Companded-only G711 a-law (PCMU/8000) alaw=true
; gsm: bool: European GSM 06.10 (GSM/8000) gsm=default
; ilbc: bool: Internet Low Bandwidth Codec (iLBC/8000) ;ilbc=default
; lpc10: bool: Linear Prediction Codec (LPC/8000) lpc10=default
; slin: bool: Signed Linear 16-bit uncompressed (L16/8000) slin=default
; g723: bool: ITU G.723 all variations (G723/8000) g723=default
; g726: bool: ITU G.726 32-bit (G726-32/8000) g726=default
; g728: bool: ITU G.728 all variations (G728/8000) g728=default
; g729: bool: ITU G.729 all variations (G729/8000) g729=default
[hacks] ; This section holds the dirty stuff required to work with some broken ; or old implementations
; ilbc_forced: string: Format to offer as iLBC, can be: ilbc20 or ilbc30 ; Defaults to ilbc30 ;ilbc_forced=ilbc30
; ilbc_default: string: Format to use for iLBC when packetization is unknown ; Defaults to ilbc30 ;ilbc_default=ilbc30
Examples
This is an example of how to configure the stream with the Jabber server who will expose Yate to the Jabber network
[mydomain.com] address=1.2.3.4 port=10000 password=whateverstring startup=enable
Yate will start a TCP connection to the IP address 'mydomain.com' resolves to. The port to use to connect to 'mydomain.com' (10000) will be obtained internally by searching after the value entered in the address parameter (1.2.3.4). The password (whateverstring) will be used to authenticate with the server