Home

Resources

Products

Developers

Main • H323chan

H.323 channel

This module supports h.323 protocol by using the OpenH323 library. In fact the H323 protocol defines a few standards. You can get more informations about H.323 at http://www.packetizer.com/voip/h323/standards.html

From a routing module you can call an h323 channel like this:

extension=h323/user@ip:port

regexroute.conf:

^1$=h323/diana@10.0.0.1:1720

NOTE!!!! Please if you use Yate on linux to setup ulimit -n 8096. This will setup the number of open files (file handlers) Yate is allowed to use.

Configuration file:

 
; h323chan.conf
;
[general]
; This section sets global variables of the implementation

; debug: int: OpenH323 debug level
;debug=0

; dumpcodecs: int: Debug level to dump registered OpenH323 codecs, 0 disables
;dumpcodecs=0

; vendor: string: Vendor name
;vendor=Null Team

; product: string: Product name
;product=YATE

; major: int: Major version number
;major=1

; minor: int: Minor version number
;minor=1

; build: int: Build number
;build=0

; status: keyword: Code status: alpha, beta or release
;status=alpha

; needmedia: bool: Drop calls for which no common media could be negotiated
;needmedia=yes

; Use an external RTP module instead of the native OpenH323 RTP stack, which is
;  very cpu intensive. If no external RTP can be found it will fallback to the
;  native stack. The only external RTP now is yrtp (see the yrtpchan module).
; external_rtp: bool: default: yes
;external_rtp=yes

; Attempt to use native (OpenH323) RTP if external fails to start. This is
;  usefull only if the failure is caused by the external RTP module not
;  being loaded.
; fallback_rtp: bool: default: yes
;fallback_rtp=yes

; Perform direct RTP forwarding between client endpoints.
; You should enable faststart=on in the [ep] section and make sure fast start
;  is also supported and enabled on all clients.
; forward_rtp: bool: default: no
;forward_rtp=no

; The OpenH323 cleaner thread is a scarce shared resource. A limit set here
;  will force new connections to be dropped if too many are already being
;  in the cleanup queue. Set the limit to zero to disable this check.
; maxcleaning: int: default: 100
;maxcleaning=100


[codecs]
; This section allows to individually enable or disable the codecs
; Using the OpenH323 internal RTP with a missing codec will lead to a crash!

; default: bool: Enable all unlisted codecs by default
;default=enable

; mulaw: bool: Companded-only G711 mu-law (G.711-uLaw-64k)
;mulaw=default

; alaw: bool: Companded-only G711 a-law (G.711-ALaw-64k)
;alaw=default

; gsm: bool: European GSM 06.10 (GSM-06.10)
;gsm=default

; msgsm: bool: Microsoft's proprietary verion of GSM (MS-GSM)
;msgsm=default

; speex: bool: Speex narrow (SpeexNarrow)
;speex=default

; lpc10: bool: Linear Prediction Codec (LPC-10)
;lpc10=default

; ilbc20: bool: Internet Low Bandwidth Codec 20ms (iLBC-15k2)
;ilbc20=default

; ilbc30: bool: Internet Low Bandwidth Codec 30ms (iLBC-13k3)
;ilbc30=default

; slin: bool: Signed Linear 16-bit uncompressed (PCM-16)
;slin=default

; g723: bool: ITU G.723 all variations (G.723)
;g723=default

; g726: bool: ITU G.726 all variations (G.726)
;g726=default

; g728: bool: ITU G.728 all variations (G.728)
;g728=default

; g729: bool: ITU G.729 all variations (G.729)
;g729=default


[ep]
; Control the endpoint operation of the module

; ep: bool: True if you want to activate the h323 endpoint
ep = true

; gw: bool: Set to true if you want this endpoint to declare itself as gateway
gw = false

; port: int: TCP port on which the endpoint will listen
;port=1720

; alias: string: The alias used by h323 module to connect to gatekeeper
alias = yate

; ident: string: Sets the hostname part of the outgoing e.164 (numeric) aliases
ident = yate

; maxconns: int: Maximum number of simultaneous connections (0 = no limit).
;maxconns = 0

; faststart: bool: Enable Fast Start mode (offer media channels early)
;faststart=false

; h245tunneling: bool: Enable H.245 tunneling mode
;h245tunneling=false

; h245insetup: bool: Enable H.245 establishment early in call setup message
; Note that this setting may conflict with faststart so don't enable both
;h245insetup=false

; dtmfinband: bool: Wheter to decode inband DTMF (CPU intensive)
;dtmfinband = false

; silencedetect: keyword: Silence detection algorithm: none, fixed, adaptive
;silencedetect = none

; gkclient: bool: If h323 module endpoint should register to a gatekeeper
gkclient = false

; password: string: Password for h.235 authentification
;password = 1234

; gkip: ipaddress: Set the reported ip aaddress of the gatekeeper
;gkip = 10.10.10.10

; gkname: string: Set the name of the gatekeeper
;gkname = gigi

; gkttl: int: Proposed gatekeeper registration time to live in seconds
;gkttl = 300

; gkretry: int: Gatekeeper discovery retry interval in seconds, 0 disables
;gkretry = 60


; How the gatekeeper is located
; If gkclient is true the endpoint will try first to find the gatekeeper by
; using gkip; then, if gkip is unset or is not corect, will try gkname and
; then will try to brodcast in the network.


[gk]
; If server is true the gatekeeper of yate will start. You must understand that
; the H323EndPoint and H323GateKeeper share the calls. So you can make a call
; to a registered endpoint of this gatekeeper even if in the [ep] section
; you haven't register the local H323EndPoint to the local H323Gatekeeper. In
; fact is not recomanded to register the local EndPoint to the local GateKeeper.
; The local H323EndPoint is used as proxy for calls to local non h323
; destinations. If you wanna call let's say tone/dial from a registered
; endpoint to the local gatekeeper, you must make a route in regexroute (or
; whatever you use) and then just dial the number.
; If you wanna call a registered endpoint you must use now as a module register
; since is the only module who can record prefixes right now.

; server: bool: Enable running a gatekeeper on the main endpoint
;server = false

; You must define the binding interfaces. Right now the multi hosted boxes don't
; work very well because OpenH323 mechanism, but we will fix that if someone
; have any problem.
;interface1=10.0.0.1

; port: int: Port on which the gatekeeper listens for connections
;port = 1719

; name: string: Identifier of the gatekeeper
;name = YateGatekeeper

; ttl: int: Registrations time to live in seconds, 0 to disable
;ttl = 600


[incoming]
; This section sets defaults for the incoming H.323 calls

; context: string: Input context
;context=default

; maxqueue: int: Maximum length of the routing queue
; Normaly you will like to have this setup to a certain value so someone can't
; do a DoS attack over your server.
;maxqueue=5

; called: string: Default number to call if not present in call setup
;called=
 

Note: with versions of OpenH323 older than 1.14.4 you need to set the codec availability to "fake" for all codecs not present in OpenH323. This requirement does not apply to newer versions - for these "fake" and "yes" are equivalent.

IMPORTANT: Using the OpenH323's internal RTP stack with a format for which there is no OpenH323 codec will lead to a crash. Starting with Yate version 1.1.0 the external RTP is the default so this should not be an issue. If you ever disable Yate's RTP module please consider setting fallback_rtp in section [general] to false.

3 May 2010:
Yate 3.0.0 alpha 3 released. Featuring the new Jabber server and wideband audio.
Download NOW

8 March 2010:
Yate 2.2 released. Mostly bug fixes. Dahdi compatible. Latest 2 release before 3.0.

6-7 February 2010:
Yate booth at FOSDEM 2010. Free CD with Freesentral available.

2 Nov 2009:
Yate 2.1 launched. Can replace a Cisco PGW2200 to control a Cisco AS54xx.

6 Aug 2008:
Yate and OpenSIPS (former OpenSER) join to build IP based clusters.

4 Aug 2008:
Yate 2 launched.

10 Jul 2008:
Yate presentation in Germany.

Feb 2008:
Yate 2.0.0 alpha 2 released. New routing module allows sending ENUM routed or forked calls to numbers of registered phones. More...

21 Jan 2008:
Yate 2 alpha released. Major changes, new ISDN, SS7 and MGCP stack. Added analogic and RBS support.

3 September:
Yate 1.3 released. Minor fixes and improvments mainly in client and SIP.

14 August:
Yate based ISDN passive recording system released by Trisys.

16 April:
Yate 1.2 released. Added Jingle and XML support, PBX improved.

25 September:
YateAdmin 1 released.

25 September:
Yate 1.1 released. Fallback routing from a database, fax support in Linux and bug fixes. Changelog and Download availables.

11 July 2006:
O'Reilly published an article about prototyping telephony applications with Yate and Python.

10 July 2006:
Yate 1 released. Includes YIAX, YSIP, YRTP and many new features.

June 1st 2006:
New Yate website launched


EditHistoryBacklinksRecent ChangesSearch