Yjinglechan

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
(Created page with "== Jingle module == This module supports the Jingle protocol by implementing XMPP as an external component of another server. === Message handlers === ==== Routing ==== Sy...")
 
 
(32 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Jingle module ==
 
  
This module supports the Jingle protocol by implementing XMPP as an external component of another server.
+
This module supports the Jingle protocol. The configuration file for Jingle channel module is yjinglechan.conf.
  
=== Message handlers ===
+
By default the module detects Yate's run mode and behaves accordingly (as a Server, if is not set, otherwise reads run mode from configuration file).
  
==== Routing ====
+
To use it in client mode disable parameter '''servermode''' from [general] section.
  
Syntax: jingle/user@server
+
See in the next image a configuration of Yate Server with Jingle configured in server mode. The clients can be SIP, IAX, Jabber or H323 for one side and Jingle or other clients for the other side. In those cases the mapping of the called number must be done from routing modules.
  
A 'callerprompt' parameter may be added with a text to be sent to the called party before making the call
+
[[File:jingleserver_config.png]]
  
==== Examples ====
+
Here is a configuration example when Yate Server is in Jingle client mode:
  
Route a call 125 to the user 'remoteuser' at server 'remotedomain.com'
+
[[File:jingleclient_config.png]]
  [= ^125$=jingle/remoteuser@remotedomain.com;callerprompt=Hello, this is a call from ME =]
+
   
 +
==Server mode==
 +
 
 +
By default if yjinglechan is loaded Yate will run in server mode.
 +
 
 +
The domains and resources must be set in this case.
 +
 
 +
When a call is done using just the caller number, the jingle module will choose the first domain and resource and send the information to the other module to handle the call.
 +
 
 +
For a call to reach the destination, it needs to have set a full JID (Jabber ID). If called is user@domain, then the module will request subscription and will probe user presence, to obtain a resource to call.
 +
 
 +
Yate in Jingle server mode can automatically respond to the subscription requests, and send presence information.
 +
 
 +
== Client mode==
 +
 
 +
In yjinglechan.conf set Yate in client mode:
 +
 
 +
[general]
 +
servermode=no
 +
 
 +
'''Note:''' If you intend to use the jabberserver module, and you set the same domain as the server, keep in mind that the jingle channel
 +
  will handle all jingle iq stanzas when running in server mode.
 +
Jabberserver module must not be loaded when using Yate in client mode.
  
=== Configuration ===
+
==Configuration==
  
 
yjinglechan.conf
 
yjinglechan.conf
  
 +
; This file keeps the configuration for the Jingle channel
 +
 
  [general]
 
  [general]
  ; Global settings of Jabber and Jingle engines
+
  ; Global settings of Jingle channel
  ;
+
  ; localip: string: Set this machine's IP address. If missing, we will try to guess one\\
+
  ; servermode: boolean: Server/client mode
  ; The local machine's IP address is used to negotiate the audio stream\\
+
; 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=
 
  ;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
  ; pending_timeout: integer: How much an outgoing call will wait for a response to a probe\\
+
  ; pending_timeout: integer: How much an outgoing call will wait for a response to a probe
  ;  Defaults to 10000\\
+
  ;  Defaults to 10000
  ; These options are used when we want to make an outgoing call and we can't do that because we don't have\\
+
; The parameters are not used in client mode
  ;  a resource with audio capability for the called party, so we have to probe its presence\\
+
  ; These options are used when we want to make an outgoing call and we can't do that because we don't have
  ; Since we might not receive a response if the caller is not subscribed to called's party presence,\\
+
  ;  a resource with audio capability for the called party, so we have to probe its presence
  ;  we should make a subscribe request first (enabling request_subscribe will do that)\\
+
  ; Since we might not receive a response if the caller is not subscribed to called's party presence,
  ; The jingle channel will wait for the time given by pending_timeout for an appropriate response\\
+
  ;  we should make a subscribe request first (enabling request_subscribe will do that)
  ; If no response is received within pending_timeout interval the call will be dropped\\
+
  ; The jingle channel will wait for the time given by pending_timeout for an an appropriate response
  ; When receiving a valid response, the jingle channel will start to negotiate the call\\
+
  ; If no response is received within pending_timeout interval the call will be dropped
  ; pending_timeout actually extends the time an outgoing call may be in a not answered state\\
+
  ; When receiving a valid response, the jingle channel will start to negotiate the call
  ;request_subscribe=enable\\
+
  ; pending_timeout actually extends the time an outgoing call may be in a not answered state
 +
  ;request_subscribe=enable
 
  ;pending_timeout=10000
 
  ;pending_timeout=10000
  ;
+
   
  ; xmlparser_maxbuffer: integer: Maximum length of text we ever parse as XML\\
+
  ; auto_subscribe: boolean: Automatically respond to (un)subscribe requests
; Defaults to 8192
+
  ; The parameter is not used in client mode
  ;xmlparser_maxbuffer=8192
+
  ; Defaults to disable
;
+
  ; WARNING: If auto_subscribe is enabled when the module is handling the same domain(s) as
; stream_restartcount: integer: Maximum value for stream restart counter\\
+
  ; the jabber server this might lead to subscription request aproval on behalf of 'real'
  ;   Defaults to 2. Take values between 1 and 10\\
+
  ;  jabber users!
  ; stream_restartupdateinterval: integer: Interval (in miliseconds) to update (increase)\\
+
  ;auto_subscribe=disable
  ;   the stream restart counter. Defaults to 15000. Take values between 5000 and 300000\\
+
   
  ; The TCP connection with a server may be closed due to XML parser or socket errors or the open\\
+
  ; stanza_timeout: integer: The timeout interval (in milliseconds) of a stanza sent by a
  ;  operation may fail (the server may be down)\\
+
  ; jingle session
  ; These options defines the TCP connection restart behaviour. The mechanism is designed to avoid\\
+
  ; Session initiate and ping timeout will automatically lead to session termination
  ;  repetitive connect attempts\\
+
  ; Minimum allowed value is 10000
  ; The restart count defines the number of times the engine will try to establish a TCP connection\\
+
  ; Defaults to 20000 if missing or to the minimum value if invalid
  ;   with the server. Each time a connect attempt fails the counter is decremented. No more attempts\\
+
  ;stanza_timeout=20000
  ;   to (re)connect are made when the counter is 0\\
+
   
  ; The restart count update interval defines the interval at which the restart counter is incremented,\\
+
  ; ping_interval: integer: The interval (in milliseconds) to ping the remote party of a
  ;   up to the value given by stream_restartcount\\
+
  ;  jingle session
  ;stream_restartcount=2\\
+
  ; If enabled and the ping element fails the session will be terminated
  ;stream_restartupdateinterval=15000
+
  ; Minimum allowed value is 60000. Set it to 0 to disable ping
  ;
+
  ; Defaults to 300000 if missing or invalid
; auto_subscribe: string: Presence. Set the behaviour of processing the subscribe/unsubscribe requests\\
+
  ; If enabled, it's value must be greater then stanza_timeout
; Allowed values:\\
+
  ;ping_interval=300000
;    none: All subscription are processed as a result of messages. The subscription changes are made\\
+
   
  ;         on receiving 'unsubscribed' responses from remote users or 'resource.subscribe' from another module\\
+
  ; resource.notify: integer: Override the priority of module's resource.notify message handler
  ;    from: Automatically accept subscribe/unsubscribe requests\\
+
  ;resource.notify=
  ;   to:  Automatically subscribe/unsubscribe to/from the remote user when adding to the roster\\
+
   
  ;   both: The combination of 'from' and 'to'\\
+
  ; redirectcount: integer: Default value for outgoing calls redirect counter
  ; Defaults to none\\
+
  ; This parameter controls the behaviour of an outgoing call terminated
  ; This parameter is forced to 'from' if the roster is kept by the server\\
+
  ;  with 'redirect' reason containing a non empty target
  ;auto_subscribe=none
+
  ; If non 0 the counter is decreased. If the target is an XMPP uri the call will
  ;
+
  ; be re-executed internally.
  ; delete_unavailable: bool: Presence. Automatically delete an user or a resource when unavailable\\
+
  ; If the counter is 0 when terminated, the call parameters list will be filled with
  ; This setting is ignored if the roster is kept by the server\\
+
  ;  session parameters to let the PBX deal with it.
; Defaults to enable\\
+
  ; This parameter can be overridden from routing
;delete_unavailable=enable
+
  ;redirectcount=0
  ;
+
   
  ; auto_probe: boolean: Presence. Automatically respond to probe requests for users in our domain when\\
+
  ; dtmfmethod: string: Default value for the method used to send DTMFs
;  we know nothing about the user presence\\
+
  ; Allowed values:
; Defaults to enable\\
+
  ;  jingle: Use the jingle protocol
  ; This parameter is forced to enable if the roster is kept by the server\\
+
  ; rfc2833: Send RFC 2833 DTMFs
  ;auto_probe=enable
+
  ;  inband: Generate inband tones
  ;
+
  ;  chat: Send tones as chat messages
; probe_interval: integer: Presence. Interval to probe a remote user if no data was received\\
+
  ; This parameter can be overridden from routing
  ;   Defaults to 1800000\\
+
  ;dtmfmethod=jingle
; expire_interval: integer: Presence: Interval to wait a response to a probe request sent as a result\\
+
;  of interval (set in probe_interval) ellapsing\\
+
   
;  Defaults to 300000\\
+
; These options are used to refresh the roster. The probe interval is the maximum time allowed between\\
+
  ;   succesive presence notifications from remote users. After this interval ellapses a probe request will\\
+
  ;   be sent to the user. If a response is not received within expire_interval, the remote user will be\\
+
  ;   supposed to be unavailable\\
+
  ; These parameters are ignored when the roster is kept by the server\\
+
  ;probe_interval=1800000\\
+
  ;expire_interval=300000
+
  ;
+
  ; default_resource: string: Default resource name when missing from local users' JIDs\\
+
; Defaults to yate\\
+
  ;default_resource=yate
+
  ;
+
  ; extra_domain: string: Extra domain served by us\\
+
  ; Here may be specified an extra domain accepted by the engine (other then the domain name of\\
+
  ;   the default component server) as destination for incoming data\\
+
  ;extra_domain=
+
  ;
+
  ; printxml: boolean: Print sent/received XML data to output if debug level is at least 9\\
+
  ; Defaults to no\\
+
  ;printxml=no
+
  ;
+
 
  [codecs]
 
  [codecs]
 
  ; This section allows to individually enable or disable the codecs
 
  ; This section allows to individually enable or disable the codecs
  ;
+
   
  ; default: bool: Enable all unlisted codecs by default\\
+
  ; default: bool: Enable all unlisted codecs by default
 
  default=false
 
  default=false
  ;
+
   
  ; mulaw: bool: Companded-only G711 mu-law (PCMU/8000)\\
+
  ; mulaw: bool: Companded-only G711 mu-law (PCMU/8000)
  ;mulaw=default
+
  mulaw=true
;
+
 
  ; alaw: bool: Companded-only G711 a-law (PCMU/8000)\\
+
  ; alaw: bool: Companded-only G711 a-law (PCMU/8000)
  ;alaw=true
+
  alaw=true
  ;
+
   
  ; gsm: bool: European GSM 06.10 (GSM/8000)\\
+
  ; gsm: bool: European GSM 06.10 (GSM/8000)
 
  gsm=default
 
  gsm=default
  ;
+
  ; lpc10: bool: Linear Prediction Codec (LPC/8000)\\
+
  ; ilbc: bool: Internet Low Bandwidth Codec (iLBC/8000)
 +
;ilbc=default
 +
 +
  ; lpc10: bool: Linear Prediction Codec (LPC/8000)
 
  lpc10=default
 
  lpc10=default
 
   
 
   
  ; slin: bool: Signed Linear 16-bit uncompressed (L16/8000)\\
+
  ; slin: bool: Signed Linear 16-bit uncompressed (L16/8000)
 
  slin=default
 
  slin=default
 
   
 
   
  ; g723: bool: ITU G.723 all variations (G723/8000)\\
+
  ; g723: bool: ITU G.723 all variations (G723/8000)
  g723=default  
+
  g723=default
 
   
 
   
  ; g726: bool: ITU G.726 32-bit (G726-32/8000)\\
+
  ; g726: bool: ITU G.726 32-bit (G726-32/8000)
 
  g726=default
 
  g726=default
 
   
 
   
  ; g728: bool: ITU G.728 all variations (G728/8000)\\
+
  ; g728: bool: ITU G.728 all variations (G728/8000)
 
  g728=default
 
  g728=default
 
   
 
   
  ; g729: bool: ITU G.729 all variations (G729/8000)\\
+
  ; g729: bool: ITU G.729 all variations (G729/8000)
 
  g729=default
 
  g729=default
 
   
 
   
 
   
 
   
  [jabber.domain]
+
  [hacks]
  ; Each other section is used to initialize the server list as a Jabber Component\\
+
  ; This section holds the dirty stuff required to work with some broken
  ; The name of the section is used as base Jabber domain\\
+
  ;  or old implementations
  ; Changes don't affect the already opened streams
+
 
   
 
   
  ; address: string: The IP address of the machine running the Jabber server (required)\\
+
  ; ilbc_forced: string: Format to offer as iLBC, can be: ilbc20 or ilbc30
  ;address=
+
; Defaults to ilbc30
 +
  ;ilbc_forced=ilbc30
 
   
 
   
  ; port: integer: The port on server to connect to (required)\\
+
  ; ilbc_default: string: Format to use for iLBC when packetization is unknown
  ;port=
+
  ; Defaults to ilbc30
+
  ;ilbc_default=ilbc30
; password: string: The password used by Yate to authenticate with the server\\
+
 
  ;password=
+
==Routing==
+
 
; identity: string: The (sub)domain used by the component\\
+
From a routing module you can route any calls like this:
; This setting controls the roster storing and will be used to generate the domain name of local users\\
+
 
  ; If identity is equal to jabber.domain (section name) the roster will be kept by the component server\\
+
  jingle/user@server
;  The domain part of local user's JID will be given by the identity: jabber.domain\\
+
 
; If identity is not equal to section name:\\
+
A 'callerprompt' parameter may be added with a text to be sent to the called party before making the call.
;  If terminated in '.jabber.domain' it will be left untouched, otherwise the suffix '.jabber.domain' will be added\\
+
 
;  In this case, the roster will be kept locally\\
+
===Routing example===
; Examples:\\
+
 
;  Section name: null.ro, subdomain=somename\\
+
When calling 125 route to the user 'remoteuser' at server 'remotedomain.com'
;  identity=null.ro\\
+
   ^125$=jingle/remoteuser@remotedomain.com;callerprompt=Hello, this is a call from ME
;    The roster is kept by the component server. Domain part of local JIDs: null.ro\\
+
 
;    Yate identify itself to the server as somename.null.ro\\
+
==Configuration example==
;   identity=someidentity or identity=someidentity.null.ro\\
+
 
;     The roster is kept locally. Domain part of local JIDs: someidentity.null.ro\\
+
You can use the Jingle channel and the Jabberclient module to make and receive calls on Jabber accounts as you can see in this article: [[Jabber Client With Jingle Yate Server]].
;    Yate identify itself to the server as someidentity.null.ro\\
+
 
; Either way, the domain part of the local users will be also the domain accepted by the engine\\
+
;  as destination for received data (and, of course, the domain given by extra_domain)\\
+
; Defaults to section name\\
+
;identity=
+
+
; subdomain: string: The subdomain to use if the identity equals the section name\\
+
; Defaults to the value of default_resource\\
+
;subdomain=yate
+
+
; startup: boolean: Open the stream to the server when initializing the driver\\
+
; Defaults to enable\\
+
;startup=enable
+
+
; default: boolean: This is the default component to use. If no component is\\
+
;  marked as default the first will be implicitely default\\
+
; Defaults to false
+
;default=false
+
+
=== Examples ===
+
  
This is an example of how to configure the stream with the Jabber server who will expose Yate to the Jabber network
+
'''See also'''
  
[mydomain.com]
+
* [[Telephony]]
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
+
[[Category:Jingle]] [[Category:Server]] [[Category:Client]]

Latest revision as of 12:14, 4 November 2013

This module supports the Jingle protocol. The configuration file for Jingle channel module is yjinglechan.conf.

By default the module detects Yate's run mode and behaves accordingly (as a Server, if is not set, otherwise reads run mode from configuration file).

To use it in client mode disable parameter servermode from [general] section.

See in the next image a configuration of Yate Server with Jingle configured in server mode. The clients can be SIP, IAX, Jabber or H323 for one side and Jingle or other clients for the other side. In those cases the mapping of the called number must be done from routing modules.

Jingleserver config.png

Here is a configuration example when Yate Server is in Jingle client mode:

Jingleclient config.png

Contents

[edit] Server mode

By default if yjinglechan is loaded Yate will run in server mode.

The domains and resources must be set in this case.

When a call is done using just the caller number, the jingle module will choose the first domain and resource and send the information to the other module to handle the call.

For a call to reach the destination, it needs to have set a full JID (Jabber ID). If called is user@domain, then the module will request subscription and will probe user presence, to obtain a resource to call.

Yate in Jingle server mode can automatically respond to the subscription requests, and send presence information.

[edit] Client mode

In yjinglechan.conf set Yate in client mode:

[general]
servermode=no
Note: If you intend to use the jabberserver module, and you set the same domain as the server, keep in mind that the jingle channel
 will handle all jingle iq stanzas when running in server mode.
Jabberserver module must not be loaded when using Yate in client mode.

[edit] 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

[edit] Routing

From a routing module you can route any calls like this:

jingle/user@server

A 'callerprompt' parameter may be added with a text to be sent to the called party before making the call.

[edit] Routing example

When calling 125 route to the user 'remoteuser' at server 'remotedomain.com'

 ^125$=jingle/remoteuser@remotedomain.com;callerprompt=Hello, this is a call from ME

[edit] Configuration example

You can use the Jingle channel and the Jabberclient module to make and receive calls on Jabber accounts as you can see in this article: Jabber Client With Jingle Yate Server.


See also

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers