Features required for use Yate as a SOHO (Small Office – Home Office) solution, for “live” discussions: markit in #yate. Suggestions and corrections are very welcomed!

**** DRAFT ****

Main goals should be: a) easy to use b) minimize operator errors c) be able to resume easily from an operator error, never lose the call

The user (secretary, manager...) must consider Yate PBX as her/his best friend, a tool that does a good job without ever making them feel “stupid” or “inadequate”. In other words, not an “evil product” that some PBX's appear to be. Advanced features must be added such that they preserve the simple, logical interface of basic features.

Feature list:

  • connection with the “outside” world through one (or more) PSTN (analog) or ISDN Bri lines and VoIP
  • handle various kind to transfer calls (the more important being the assisted/announced transfer)
  • fax support in both direction (with an external analog device connected, or with some software that e-mails incoming faxes, and keeps tracks of out gone)
  • answering machine (with different time lapse before the answer depending if there are already messages recorded or not, and the possibility to play a special dtmf PIN to take control of it and manage messages remotely)
  • call parking and retrieval
  • CDR (call detail record) to keep tracks of incoming and outgoing calls
  • LCR (Least Cost Routing) with up to 9 paths
  • different ring tone between calls coming from the outside and the ones form another extension
  • define extensions that must ring for incoming external calls
  • internal call (between extensions) and incoming external call pickup, Since multiple calls can happen simultaneously, “generic” pickup (the first one) or “targeted” (the call at that extension) pickup
  • user friendly, web based configuration interface, with “advanced” and “basic” font ends, and a setup, password protected page
  • 4 digit “internal” numbering for extensions and various services
  • configurable one digit prefix for outgoing calls (i.e. 0 goes outside through LCR, 1 for VoIP calls, 2 for a certain telephony provider prefix, 3 for another, 4 for GSM gateway...)
  • definition and handle of special 3 digits emergency numbers (i.e. “999” can be dialed correctly as “0999” or just “999” for panic situations)
  • forced authorization (access) codes on per user basis for dialling out to long distance calls, with accounting and audit facilities


  • day/hours/special conditions that change dialplan, so, for instance, the answering machine can be turned on, or followme can route to different numbers, or a different answer message can be used
  • being able to route incoming calls depending from the CallerID
  • be able to record the whole conversation and store it in compressed, easy to find files (i.e. filename with timestamp_CallerID_extension_uniqueid) , with the option of have a message announcing that the call will be recorded
  • be able to start/stop recording a conversation at will
  • voicemail specific for each extension so (optionally, configurable) message can be left if the extension is busy, or doesn't answer, or simply you want to leave a voice message to your secretary about something to do the next morning
  • follow me (calls are automatically routed against another extension or even external number, like a cellular phone)
  • list with regex support of CallerID that can access special features like they were internal extensions (i.e. listen answering machine and manage messages, activate follow me or other features, leave voicemail messages to extensions, do outgoing calls, etc.), optionally password protected
  • meetme rooms, where the possibility to make join external calls, or from it call someone and invite him (that it could be another internal extension or an external call)
  • 3 way calling between different combinations of internal / external (see transfer documentation)
  • Automatic dialing. If you pick up the receiver and then do not dial any number, after 10 seconds a previously stored emergency number will be automatically dialed. Optionally a pre-recorded message will be played,
  • Call waiting. You can signal a user who is currently engaged to take notice that you are there by "knocking". The knocking (call-waiting) tone will be heard during the call already in progress. When the internal user you want to speak to puts down the receiver, he or she will immediately receive your call. Should work also in case of blind transfer.

To ease user interaction, a lot of features must be accessed through IVR menu, with voice prompts and multiple choices. Must be possible enter the choices also while the prompts is playing, to shorten the time spent when the user already know what choice make (so experienced users are not penalized).

For dial able numbers, the first digits (“prefix”) tells the “destination”, as: 0 (or 9) for outgoing calls (maybe routed through a LCR logic) 4 is for internal extensions 5 is for special services (like answering machine management) 8 for specific outgoing paths. To tell the exact path you have another digit: 81 is PSTN, 82 is FWD, or whatever like different PSTN operators and providers, bypassing LCR). Short emergency numbers (like 999, or 113 in Italy) must not end up with an “invalid extension number” o “unavailable service” but be routed torwards the more reliable outgoing technology/device, usually PSTN.

So the final internal numbering can be of 2 or more digits, prefix (“4”) + number. I suggest to use the next 2 digits to differentiate people, and the last to differentiate devices. example: 4010 Tom's voicemail
4011 Tom's phone at the office (the real, local, internal extension)
4012 Tom's phone at home (dials outside to Tom's home)
4013 Tom's cell. Phone
4019 Tom's extension status check and service configuration voice menu
4320 Mary's voicemail
4321 Mary's phone at the office (the real, local, internal extension)
4322 Mary's phone at home (dials outside to Tom's home)
4323 Mary's cell. Phone
4319 Mary's extension status check and service configuration voice menu
so you have the easily management of 99 people, and 10 (from 0 to 9) “devices”.

Different extension state (i.e. don't disturb activated, or follow me or whatever “state” the extension is) must be notified with a special tone when you pick up the phone, and the state must possibly be inquired with a special “service” number that, with recorded messages, tells the operator what is his extension state and let him modify it (in the above example, the final “9” of each person number in the office is dedicated to it). The same if a new voicemail present, but should have a different tone (it's not a “state”, but a “message that requires attention”) and possibly other visual effects permitted by the phone (i.e. a flashing LDC, for instance).

Special services: The prefix is “5”

51 for answering machine

511 basic menu (with possible 9 options)

  • 1 activate
  • 2 deactivate
  • 3 status
  • 4 message management (with possibility of navigate, play, replay and delete)
  • 5 -
  • 6 leave a message (used, for instance, to leave a message for the secretary the next morning)
  • 7 announce management (switch between different messages (1-9), listen, record)

Different possible messages (1-9, with the 1 as default) can be used by the dialplan logic to play different messages depending of the hour or day (i.e. during worktime if no one answers before a long timeout, i.e. 20 seconds, can be different than the one played when the office is closed).

515 voicemail

  • 1 record a message for all the voicemail used (a “broadcast” message, i.e. for important news concerning all the office members)

52 call parking 520 call parking (the actual “virtual” extension number where the call is parked is announced) 521-9 “virtual” extensions for call parking

53 meetme rooms 531-9 different meetme rooms where you can enter (transferring) or transfer a outcoming call

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