From FreeSWITCH Wiki
Jump to: navigation, search


Bounties paid

Its just as important to know who has a history of paying and who has a history of completing tasks, so the Bounties Completed page lists those.

Improving doc on bitpacking / G726-XX codecs

100 USD - Ivan ( - IMO the documentation on bitpacking is too scarce ; I'm not knowlegeable enough to update the wiki with some of my findings, so I'd prefer that someone who really knows that stuff improves it. For instance:

  • there's the bitpacking param in sofia, but no details about what are the available parameters except aal2 (that's the only one since there's only a comparison to "aal2" in the source code). Then, when bitpacking is set to AAL2, how does one deal with a heterogeneous set of endpoints, some using standard bitpacking, and others using AAL2 without saying (eg. linphone, linksys) ?
  • there are specific AAL2-G726-XX codecs; they're the same as G726-32 when bitpacking=aal2 in Sofia, right ?
  • any pointer on playing recorded G726-XX calls (with record_session) on linux ? With or without AAL2 ? VLC/mplayer won't work (or maybe because of a lack of proper command lines options). I've also found but that would only produce noise (and there are options for different bitpacking methods, while rfc3551 says it must use packing).

Optionally we could write down a list of endpoints known to use AAL2 bitpacking while advertising "standard" G726-XX

Integration of Windows speech API for Server 2008 R2

Looking for this ASAP. Will pay whatever it takes to get done. Prompt payment. Contact

Record Sound Prompts In Other Languages

Looking for others to put up some money. William Dale has pledged at least $250 to getting the Spanish prompts recorded. Please contact Michael ( if you would like to pledge for this cause. We estimate roughly $1200 is needed to do a full set of prompts for a single language.

Alternative behavior when using P-Asserted-Identity and Privacy headers

$300 - Oyatel AS ( It's currently not possible to read the values of P-Asserted-Identity and Privacy headers on the A-leg of a call. This might be information that is handy on routing calls when using FreeSWITCH in an SBC context. Also FreeSWITCH alters the Caller-Username and Caller-Caller-ID-Number based on the content of the P-Asserted-Identity.

Current behavior:

From: "+4711111111" <>;tag=as24269fa6
Contact: <sip:+4711111111@>
Remote-Party-ID: "+4711111111" <>;privacy=off;screen=yes
P-Asserted-Identity: <>
Privacy: none

This information is gathered at FS with the Info app.
Caller-Username: [+4712121212]  ;---- FS changes this field based on content in P-Asserted-Identity
Caller-Caller-ID-Name: [+4711111111]
Caller-Caller-ID-Number: [+4712121212]  ;---- FS changes this field based on content in P-Asserted-Identity
variable_sip_from_user: [+4711111111]
variable_sip_from_uri: []
variable_sip_contact_user: [+4711111111]
variable_sip_contact_uri: [+4711111111@]

Then FreeSWITCH removes P-Asserted-Identity header.

We would like an alternate behavior:
Maybe by setting something on a sip- profile to change from default behavior?

True: P-Asserted-Identity can be read from the channel variables, and is possible to export to leg-b. Caller-Username and Caller-Caller-ID-Number are not changed.

False: Like current behavior

False is default setting.

Jira ticket might contain some relevant info.

Active Directory Domain Support

$200.00 - Jimmy A. ( A good way to accomplish this is to ensure FreeSWITCH user and group directory services inter-operates well with Likewise Open components within Linux and Unix distributions. This is because Likewise Open (which provides Active Directory authentication, management, etc for Linux and Unix systems on Windows enterprise networks) is starting to ship with Linux and Unix distributions according to Linux Magazine; . Ubuntu and Red Hat are the first couple of distributions to go this enterprise-ready route followed by Novell, IBM, etc. FreeSWITCH should not be left out.

H.323 Support

Especially H.264 (a portion of the MPEG-4 standard, referenced as MPEG-4 part 10), uses less than half the bandwidth of any other video codec. It is also specially developed for IP networks.

Call Timers

  • NOTE: This is completed, awaiting payment of bounty

Create a parameter to BRIDGE application which will disconnect a call after X amount of time

  • $100 - Wavelength Communications, Inc - 703-459-7429 -- Contact: Daniel Corbe <>
  • $150 EXTRA (total of $250) Ability to play announcements to the caller (callee must not hear) to warn of impending disconnect
  • Must drop callee side, not caller side so that continue_on_fail type scenarios continue to process
  • $100 - Nikolay Kolev - me *at* nikolay *dot* com

Continuation of a call in No-Media Mode after Successful Bridge

  • NOTE: This is completed, awaiting payment of bounty
  • $200 - Wavelength Communications, Inc - 703-459-7429 -- Contact: Daniel Corbe <>
  • A call goes into the "HIBERNATE" state if you have no-media mode enabled. This prevents the call from

matching multiple condition blocks in an extension if the outgoing call leg was BYEd (meaning a successful bridge occurred).

For example, the following Dialplan works with no-media mode disabled. With no-media mode enabled, the 2nd <condition> block is never executed.

<context name="default">
        <extension name="globals" continue="true">
                        <action application="set" data="continue_on_fail=true"/>
        <extension name="ld_service" continue=true>
                <condition field="destination_number" expression="^1(.+)$">
                        <action application="set" data="no_media=true"/>
                        <action application="set" data="hangup_after_bridge=false"/>
                        <action application="bridge" data="sofia/local_profile/1231@" />
                <condition field="destination_number" expression="^1(.+)$">
                        <action application="set" data="no_media=true"/>
                        <action application="set" data="hangup_after_bridge=true"/>
                        <action application="bridge" data="sofia/local_profile/1456@" />
                        <action application="bridge" data="sofia/local_profile/1$1@" />

SS7 support

  • $1000 contact me 516-356-1080

"FreeSWITCH Internals"

  • $100 if someone can throw together a guide documenting some FreeSWITCH internals so I can begin contributing to the project more meaningfully 516-356-1080

Integrate SS7 into FreeSWITCH UPDATED

  • My previous bounty was for $1,000.00 and a requirement to include OpenSS7. I got no response to speak of, so here's another attempt. I am raising the stakes to $5,000.00, perhaps more, and taking out the OpenSS7 requirement. Contact me, Ahmed at [] anyone if you are interested and capable of making this fly.
  • Another $5,000.00 - $10,000.00 for supporting applications to make FreeSWITCH into a boxed product.

SIGHUP support in Windows - CDR/LOG Rotation

Provide command line ability to send event (SIGHUP). (fsctl sighup)

Action should:

* Not drop any calls/state
* Rotate Master.csv file
* Rotate logfiles

Fee to be paid: $75.00 Contact: Shawn ->

CDR_CSV Auto Rotation

Note: this is done, waiting for payment.

Ability to AUTO-ROTATE CDR MASTER.CSV every "x" seconds/minutes whatever

* Add new conf parameter which will allow for an automatic rotation of the Master.csv every set period of time.

Fee to be paid: $75.00 Contact: Shawn ->

Note: I don't see the point of this. It's totally unnecessary as you can do this with logrotate easily.

mod_php updated to work with current FreeSWITCH

Any idea what sort of bounty would be required to make this happen? (and if there are other supporters of it) I am migrating a number of Asterisk systems which use PHP-based AGIs that will need to be re-developed for freeswitch and mod_php would be the easiest way of doing this.

Technophreak: Will contribute 250$ if this can be kept up-to-date.

RFC 3611 - RTP Control Protocol Extended Reports (RTCP XR) support

The goal would be to measure/collect voice quality details and report them during the live call (e.g. update channel variables which could be read through event_socket, XML-RPC, etc.) and report at the end of the call (event_socket message or/and CDR data). It has to work on win32 and Linux for sure.

  • $500 Netsip Pty Ltd, Contact
  • $1000 Contact
  • $500 Contact
  • more fund wanted

More info on JIRA: BOUNTY-4

Voicemail announcements only

Sometimes it is useful to only play an announcement when voicemail is enabled. Therefore there should be a another voicemenu item to enable/disable recording


  • "Press X to enable recording"
  • "Press X again to only play announcement"

So the user can manage it's settings on his own. An XML parameter should also be available in the directory settings to switch recording on/off

Posted: December 4th, 2009

Bounty: $100

Bounty valid until: December 31th, 2009

Extra $150 to enable Cepstral TTS to speak a defined TTS message. This should

  • be switchable on/off by a voicemenu item
  • be switchable on/off by an XML parameter in the directory settings

The spoken text and speaker should also be managable in the directory settings

Respond to Peter Steinbach (p dot steinbach at telefaks dot de)

MGCP Support

(was BOUNTY-10 MGCP Support)

We're offering a $500 (maybe more) bounty for MGCP support in FreeSWITCH. It would need to be compatible with Adtran TA600 series IADs as we have a bunch of those.

IMAP integration of voicemail

(was BOUNTY-5 $500: Looking for IMAP integration of voicemail)

  • ability to receive messages through a regular imap client and manipulate them as standard IMAP messages
  • User should never have to interact with the voice/phone based voicemail storage, but should still be able to and have any changes through the voice/phone based interface be reflected in IMAP as well

Three solutions:

Solution Where is the data MWI Storage shared with regular mails Implementation proposition Other limitations
FreeSWITCH as IMAP server SQLite/ODBC yes no perl's Net::IMAP::Server.
use IMAP storage instead of SQLite/ODBC On the IMAP server need to patch the mail server yes implement an IMAP storage module in FreeSWITCH
use local Maildir storage instead of SQLite/ODBC in the Maildir files need notify hook yes implement storage modules in FreeSWITCH won't fit on large systems


  • storages modules doesn't exists yet, so API should be written first.
  • mail server is one of Cyrus-IMAPD, Dovecot, ...

Multiplexing RTP feature

Requesting a quotation to implement a new feature for RTP multiplexing between FreeSWITCH boxes to reduce bandwidth usage, similar in a way to IAX2 trunking. There is a nice article on this here: There also needs to be a way to make sure packet size does not go larger than MTU of 1500. contact support att hellohowzit dott com

Enforce codec selection by sample rate and ptime

FreeSWITCH currently doesn't support enforcing codec selection by sample rate and ptime. If I define "SILK" as a codec preference any supported sample rate or ptime is acceptable. However, if I define "SILK@8000h" I only want SILK@8000h. Not SILK@12000h, not SILK@16000h or SILK@24000h.

Likewise if I define "SILK@12000h,SILK@8000h" as my outbound codec string I would like those sample rates offered in that order.

Tony says it's possible but it just not supported right now. I want to change that with this bounty! Of course this should apply to all codecs that offer different sample rates and ptimes (so pretty much all of them). contact: Kristian Kielhofner

Route Header Availability

I would like the Route: header on an incoming INVITE to be instantiated as a channel variable.

I would also like to be able to set it to an arbitrary value on outbound (bridged/originated) calls via a variable like sip_h_Route='arbitrary data.' I am aware of fs_path however it doesn't allow one to set extended attributes such as lr; maddr=XXX on that URI, and it doesn't seem to work with bridged calls. This is essentially a message to tell the next switch what to do with the call (required in this instance by a MetaSwitch).

Essentially I'd like it to work exactly as the Diversion header currently works - it shows up as a channel variable (sip_h_Diversion) and it can be set for outbound calls. contact: Nicholas Lemberger // Lakefield Communications

High Availability M + S Cluster Directly in FreeSWITCH

Multi-master, multi-slave cluster with interface, IP address, and firewall rule management built directly into FreeSWITCH (no need for Pacemaker + Corosync).

This is already being worked on. See mod_ha_cluster. Pledge bounties here to speed development.

Internal Database Modularization Support

Support for building database modules which can be loaded into FreeSWITCH so that direct connectivity to various database systems can be performed without the need for the ODBC abstraction layer. This will also allow connection pooling and redundant server configuration. The first two modules to be written will be for PostgreSQL and MySQL, in that order. This is already being worked on. Pledge bounties here to speed development.

Changes to sip MESSAGE treatment, with events

Also logged here Posted July 9th, 2011.

Bounty: $600. Contact david.varnes at gmail dot com. Only proviso is I need to know by July 20th _if_ this is likely to be done by the FS developers, otherwise some client developers will probably have a crack at it.

Context: the treatment of SIP MESSAGE (rfc 3428) by Sofia, and the events available to FS ESL subscribers. This bounty request is only concerned for sip MESSAGEs in the so called 'pager mode', ie not occurring inside a session.

Objective: to be able to use ESL to write a MESSAGE store and forward application that can handle the use case where a MESSAGE recipient is either not currently registered, or cannot currently receive the message.

This bounty is a request for three specific changes, obviously open to design correction or suggestion from the core team, since they surely know much more about this subject matter.

1. Sofia to send an event on the receipt of a MESSAGE. This event to be available to ESL event listeners, and include all the content of the incoming MESSAGE.

2. A configuration option to prevent sofia from routing incoming sip MESSAGE itself. Probably an option in sofia.conf.xml.

3. Sofia to send an event on the successful transmission of a MESSAGE, ie the receipt of the 200 message in response to the sent MESSAGE. This event to be available to ESL event listeners, and include the headers of the 200 message.

An assumption here is that a sip MESSAGE sent via the chat api would result (if successfully delivered) in an ESL event described in #3 above.

Expand mod_distributor functionality to have more allocation strategies

1) Hunt - Linear order from top to bottom
2) RoundRobin - Current bahavior of mod_distributor
3) LeastBusy - Select the session agent with least number of active sessions

Fix JIRA FS-6008 (both stable and master branches)

Value: 200$

When call is bridged to lcr endpoint, fail_on_single_reject is ignored. Dialplan example:

<action application="set" data="fail_on_single_reject=INCOMPATIBLE_DESTINATION"/> <action application="bridge" data="lcr/test_profile/2411765512"/>

Expected behaviour: call hits INCOMPATIBLE_DESTINATION and instanetely returns the same to A-leg

Real-life behaviour: Call hits INCOMPATIBLE_DESTINATION and fails-over to the next LCR route

Here is an example of LCR routes involved:

| Digit Match | Carrier | Rate | Codec | CID Regexp | Limit | Dialstring |
| 241 | 488_REJECTION | 0.00001 | | | ld_carriers 488_REJECTION -1 | [lcr_carrier=488_REJECTION,lcr_rate=0.00001]error/INCOMPATIBLE_DESTINATION |
| 241 | CARRIER_1 | 0.40240 | | | ld_carriers CARRIER_1 -1 | [lcr_carrier=CARRIER_1,lcr_rate=0.40240]sofia/gateway/CARRIER_1_GW_1/+2411765512 |