Browsed by
Tag: xml

Optimization: load IVR-XML files into memory

Optimization: load IVR-XML files into memory

In most scenarios, the size of IVR-XML files are very small, only several KB, so it is no problem to read these files from hard disk when processing an incoming call to trigger IVR service. But if there are heavy workloads, for example, huge concurrent calls to trigger IVR services, miniSIPServer has to read these files from hard disk frequently. Obviously, it will affect server’s performance.

So we try to optimize this and load all IVR-XML files into memory. If the file is not modified, IVR service will read it from memory directly. If the file is modified, miniSIPServer will reload it into memory automatically.

That means all IVR operations will be processed in memory and will never visit hard disk if the files are not modified. With this optimization, miniSIPServer will be faster than before.

Monitor events in IVR call flow

Monitor events in IVR call flow

In miniSIPServer, we can use IVR-XML script to enable our own services, such as automatic-attendant. With previous IVR-XML set, ‘callto’ action will invoke a call to destination and finish the whole IVR process.

But if we want to monitor some events in the call flow, such as we want to check ‘busy’ event and change the IVR flow to a new action, what should we do?

Now V37 is released and a key feature is updated in IVR-XML. We can use ‘monitor-events’ in ‘callto’ action to monitor some events and change the call flow if they are caused.

For example, the ‘callto’ action can be configured as below.

<action method="callto" name="mainAction">
        <monitor-event detection="busy" nextaction="callto101"/>

In this example, if the call invoked by ‘callto’ action is busy, IVR procedure will be changed to next action ‘callto101’.

Please refer to IVR-XML document for more details about “monitor-events” element.

Above zip file is an example of new ‘callto’ action. You can save and unzip it into ‘xml’ sub-directory where miniSIPServer is installed and configure a new record to test it.

Configure miniSIPServer to trigger IVR-XML
Configure miniSIPServer to trigger IVR-XML
Define your own IVR service in cloud

Define your own IVR service in cloud

As we know, we can define and use our own IVR-XML file to trigger IVR service in local miniSIPServer. Now we migrate this feature into cloud-mss, that means we can do that in cloud communication in the same way.

In local-MSS, we can save IVR-XML file into local directory. In cloud-mss, something is different. For safety protection, we require customers to send IVR-XML files to our support team (support(a), our guys will upload your own IVR-XML file to your virtual server. Then, once you sign into cloud-mss, please click menu ‘Resource / IVR-XML files’ to take a look.

check IVR-XML files in cloud-mss
Cloud-MSS menu ‘IVR-XML files’

If your own IVR-XML file has been uploaded into your virtual server, you can configure how to trigger IVR service. In MSS, we can trigger IVR services according to called numbers of calls. It is very easy to configure that, please click menu ‘Services / IVR services’ to take a look.

configure detection of IVR-XML service
IVR-XML service trigger

V10 released and TTS!

V10 released and TTS!

MSS V10 is released and supports TTS (Text to speech) feature now. With previous versions, once we want to play announcements, we need use some tools to record audios to create a wav file, then load it to MSS. We think tt is easy but some customers still think it is complex. So TTS is coming.

With TTS feature, you don’t need to create wav files. You just need write your announcement in text, MSS will play it for you. Cool! right? 🙂

Let’s look through XML-IVR of previous MSS ‘auto-attend’ service. We can see we need indicate an audio ID to MSS to play audio.


Now, we can change it to following:

     <text>Welcome, please input extension number</text>

MSS will play audio “welcome, please input extension number” to caller parties automatically, we don’t need create WAV file and load it to MSS.

Please refer to IVR-XML document for more details.

 BTW, V9 is reserved for Cloud-MSS.

Trigger different IVR for different incoming calls

Trigger different IVR for different incoming calls

miniSipServer is upgraded to V6.5 to support different IVR for different incoming calls.

It is very easy to configure MSS to do that, please refer to online document:

For example, if we want to trigger different IVR for another external line (such as “1234”), we can configure the “IVR services” with following record:

dial plan = default
Called number = 1234  <--This is the external line name/account
IVR-XML file name = aa2.xml <--your own IVR-XML file
V6.1 and IVR XML

V6.1 and IVR XML

MSS stable version is upgraded from V6.0 to V6.1.

In this new version, IVR-XML is supported and we can use XML to write IVR services. It is very easy and funny. We re-write auto-attendant service with IVR-XML, you can see it is very simple. The latest auto-attendant service file can be found in sub-directory ‘xml’ and file name is ‘aa.xml’.

The latest AA document is updated together, please refer to :

Most important, it is very easy to setup multi-levels menus in IVR services.

Please take a try and you will like it.