Main • H323ToSIPSignallingProxy

Products -> H323 - SIP signalling proxy

One of the most common features requested for Yate is proxying between the H.323 and SIP protocols. This allows equipment that only knows one of the protocols to make calls to equipment that knows only the other protocol.

An extra bonus is that both H.323 and SIP use the RTP protocol to transport the actual voice data. The proxy is configured to tell both ends to forward the RTP packets directly to the other end. This way the proxy machine doesn't need to handle the voice traffic, unpack the RTP packets, or understand the data format. Formats for which Yate has no codec can still be proxied provided they are supported by both endpoints.

Some of the Yate modules - namely h323chan and ysipchan - have the ability to negotiate RTP Forwarding during the routing stage.

Compiling H323plus

Yate with H323plus compiling
NOTE !!! OpenH323 has been deprecated by H323plus. However OpenH323 is still more stable with Yate than H323plus at 13.12.2013

Compiling OpenH323

Take a look to learn how to compile OpenH323.

Creating a H.323 to SIP proxy

Here's how to create the desired application: a H.323 to SIP proxy using the G.711u or G.711a or G.723 audio formats. Note that we have no codec for G.723 but we still can pass it directly between clients.

First we have to set up the H.323 channel to use RTP pass-through mode. In this channel the RTP mode must be configured globally, not per call.
In the file h323chan.conf we put:

passtrough_rtp=yes  ; note the incorrect spelling



We must enable fast start mode as it will provide the media network address early enough to send it to SIP.

In the ysipchan.conf file we put:


There is no special setting for RTP pass-through as the SIP module can use the routing time decision.

Now we have to establish routes and to activate RTP pass-trough for them. We will use the Regular expression routing module for that.

In the regexroute.conf file we put:


We accept RTP Forwarding for all modules that declare that capability. If the data formats list holds more than one we will only keep the first one. This is required so that we know in advance which codec will be used. While SIP sends a list of formats and accepts data in any of them, H.323 requires negotiating a specific format. Since that would require re-INVITE in SIP, we are better off deciding early what format we like.

In the sample routing rules above, numbers starting with 00 are sent to a H.323 gateway at address while all others are routed to a SIP agent at address

This is another example that routes everything from protocol sip to ip on protocol h.323 and everything that comes from h323 goes to on protocol SIP:

.*=-;error=forbidden;reason=Protocol not allowed

Here are some ideas for configuring the system for handling many simultaneous calls. The RTP section will probably not apply.

As a final note, there is nothing wrong in proxying the signalling between two endpoints that use the same protocol! It may be less optimal than a native protocol proxy but it works and preserves the uniformity of configurations.

July 2014:
Yate 5.4 and YateBTS 4 launched. Added JSON and DNS support in Javascript, Handover support in YateBTS.

March 2014:
YateBTS 2.0 launched. Added authentication and WebGUI. Added USSD support in commercial version.

March 2014:
Yate 5.2 launched. Better JavaScript support and a fixed memory leak.

Jan 2014:
YateBTS 1.0 launched. The first GSM Basestation which works with an IMS/VoLTE core network.

Jan 2014:
Yate 5.1 launched. Better JavaScript support and added libygsm. Elisa chatbot added in RManager

Oct 2013:
OpenHSS is the Yate based HLR/HSS solution for MVNO and LTE carriers.

Oct 2013:
Yate 5 released. Added IPv6 support in SIP for LTE. Improved JavaScript support. Download NOW

Jan 2013:
Yate 4.3 released: Added XML support in Javascript. SCCP - GTT routing between different networks. Stability improvements.
Download NOW

Aug 2012:
Yate 4.2 released: SIP flood protection. Better Jabber/Google Voice support. Usable Javascript. Fixed SIGTRAN links fluctuations.
Download NOW

Apr 2012:
YateClient was accepted in the Mac Store.

Yate 4.1 released: better Gvoice support, iSAC codec, support for new Wanpipe drivers. Fixes T.38 and Mac client issues.

Mar 2012:
SS7Cloud is launched today, 1st March, 2012, by NullTeam, Yate creators. Having all you need to be a US CLEC, it brings SS7 services in a cloud.

Feb 2012:
Yate 4.0 released.
SCCP, TCAP, MAP and CAMEL, TCP and TLS in SIP, Javascript fast prototyping of telephony applications and brand new face for YateClient.

Nov 2011:
Here is a video that, quote "demonstrates the truly awesome power of the YATE engine, as it easily handles 3 simultaneous calls to an audio player application including dtmf (button press) handling "(from PaintedRockComm).

Nov 2011:
Yate will attend ORR - OPENRHEINRUHR (November 12 - 13).

04 May 2011:
sipgate chooses open source project Yate for core infrastructure.

12 Apr 2011:
Yate 3.3.2 released.
Fix for Jingle calls to Google Voice dropping after 5 minutes.
4 Apr 2011:
Yate 3.3 released.
Support for GMail chat conference, fixes for internal microphone in MacOS. Minor fixes in SS7 M2PA and ANSI. Fixes in H.323, SIP and RTP.

9 Mar 2011:
Yate 3.2 released.
Bug fixes in SIGTRAN/MGCP/SS7 and added support for CNAM/LNP lookup by SIP INVITE/3xx.

Feb 2011:
Yate will attend FOSDEM and XMPP summit.

31 Jan 2011:
Yate 3.1 released.
Yate client support for Google Voice. Support for any country tones in tonegen.

20 Dec 2010:
Yate 3.0 released.
SS7 ITU certified. SS7 STP added. Client supports Jabber IM (Google Talk + Facebook).

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

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.

EditHistoryBacklinksRecent ChangesSearch