In telephony services, providing voice announcements to call parties is standard practice. This feature is essential for mobile operators to ensure that subscribers receive information about incomplete calls or dialing restrictions. It enables customers to understand the reason behind any issues they encounter and facilitates follow-up with customer service for further assistance.
In IMS networks, this task is typically handled by the Media Resource Function (MRF), which plays network announcements in appropriate situations.
There are various options available for implementing an MRF. I’d like to focus on one specifically designed for cloud-native IMS core solutions like ours. Our preference lies in solutions that require minimal server infrastructure and maintenance, streamlining integration without adding additional overhead.
For those who may have missed my previous posts, I’m excited to share that my team successfully implemented an IMS core on AWS, primarily utilizing Lambda functions! If you’re curious about how we achieved this feat, feel free to reach out. I’d be happy to discuss further details ;)
Before, I embarked on an intriguing journey using AWS Chime to implement the IMS call conference or Ad-hoc multi-party conference feature for our service. After overcoming various challenges, we successfully launched this feature, entirely leveraging Chime’s capabilities. The best part? No additional servers or containers were required, saving us from ongoing maintenance headaches. You can read more about our experience and the implementation process in detail on my blog here.
I’m contemplating replicating the same strategy for network announcements with AWS services, aiming to leverage existing solutions rather than reinventing the wheel. In the past, I implemented an IVR for incoming calls on AWS Voice Connector trunk using the SIP Media Application, which was both effective and efficient. I’m confident that this approach can be seamlessly adapted for network announcements as well.
You’ve probably grasped the concept: setting up a trunk to the Voice Connector and defining a specific SIP rule to direct calls over that trunk to your SIP Media Application, triggering a Lambda function in the process. The flow would be like this:
For more please check this link:
https://docs.aws.amazon.com/chime-sdk/latest/ag/understand-sip-data-models.html
For example, you could implement a Lambda function like this, utilizing Amazon Polly to perform text-to-speech (TTS) and play the configured announcement for incoming calls.
This solution, in addition to maintenance and cost, is very dynamic and you can support different language announcements without handling pre-recorded voice prompts. You can update the content and language of announcements on the fly.
Read more: https://docs.aws.amazon.com/chime-sdk/latest/dg/writing-lambdas.html
Hint: You can add additional SIP headers to your INVITE starting with ‘x-{}’, and carry necessary information for using in Lambda logic. Read more here:
https://docs.aws.amazon.com/chime-sdk/latest/dg/sip-headers.html