Child pages
  • Allowing Voicemails Longer than 60 Seconds to be Left from External Callers
Skip to end of metadata
Go to start of metadata

Allowing Voicemails Longer than 60 Seconds to be Left from External Callers

The Session Border Controller (SBC) settings for SIP Trunks from some Internet Telephony Service Providers (ITSP)  prevents an external caller from leaving voicemails longer than 60 seconds to sipXcom users. When a voicemail is left from an external caller, the RTP packets are sent from the ITSP to sipXcom. The ITSP SBC checks for packets coming back from sipXcom under the assumption that this is a two-way voice conversation. If the ITSP SBC sees no RTP packets from sipXcom in 60 seconds, the SBC assumes that there is something wrong at the far end (e.g. IP Phone has lost power) and issues a SIP BYE to terminate the call. Special arrangements with these ITSPs are then required to increase the time interval that a call can run when there are no packets received from sipXcom in order to allow voicemails longer than 60 seconds to be left. 

sipXcom uses the Freeswitch media server for recording voicemail - by default the variable record_waste_resources is set to false https://wiki.freeswitch.org/wiki/Variable_record_waste_resources, which means that the media server does not send RTP packets when recording a call. Setting the Freeswitch record_waste_resources variable to true or a numeric value instructs the media server to send RTP packets with 'white noise' when recording a call. If a numeric value is used with a lower value (e.g. 10), the caller leaving voicemail hears a distinct hiss, while higher values lowers the sound to a comfort noise. When the record_waste_resources is set to true, the variable defaults to a value of 1400 and the caller hears no background noise when leaving a voicemail.

The following steps enables the Freeswitch record_waste_resources capability in sipXcom and allows external callers to leave voicemails longer than 60 seconds from some ITSPs without making special arrangements.

Step 1 - Edit the /etc/sipxpbx/freeswitch/default_context.xml.vm    file

Step 2 - Locate the following Section

 

<extension name="IVR">

<condition field="destination_number" expression="^IVR${dollar}">

 

Step 3 - Set the record_waste_resources variable to true

 

<action application="set" data="record_waste_resources=true"/>

 

The reach_default_context.xml.vm file should look like this after adding the record_waste_resources statement.

Step 4 - Restart sixpconfig with service sipxconfig restart command and resend the sipXcom Server Profiles

Go to System -> Server, click on the appropriate server, and hit the Send Profiles radio button. This rebuilds the Freeswitch configuration files, and applies them to the in-memory Mongo database - the new record_waste_resources value will take effect for new calls after about 30 seconds.

Step 5 - Check the /etc/sipxpbx/freeswitch/conf/dialplan/sipX_context.xml file to  make certain that record-waste-resources variable was correctly set

Step 6 - Place a test call from an external number to a sipXcom user and leave Voicemail message that is greater than 60 seconds

  • No labels