The Amazon Chime SDK action CallAndBridge
routes the incoming call to a user.
The CallAndBridge
action is returned from the SMA Lambda.
Is there a way to send the action
of type CallAndBridge
not from the SMA Lambda
function, either some REST API or something else?
I have different flow where I need to perform some action on the incoming call and once the action that I perform is successful based on some external events, I need to call the CallAndBridge
action to the Amazon Chime SDK.
From the documentation I don't see any way of doing this.
https://docs.aws.amazon.com/chime-sdk/latest/dg/call-and-bridge.html
Is there a way to send the action of type CallAndBridge not from the SMA Lambda function, either some REST API or something else?
You can achieve this by using UpdateSipMediaApplicationCall
(see the doc)
Basically, what you need to do is;
UpdateSipMediaApplicationCall
with your custom payload. (You can expose this code as a REST API if you want, and call it from SMA)CallUpdateRequested
)CallAndBridge
your-external-worker.js
// This is the general idea, it might not be syntactically correct
import { ChimeSDKVoice, Endpoint } from "aws-sdk"
const endpoint = new Endpoint("https://voice-chime.YOUR-REGION.amazonaws.com")
const chimeSDK = new ChimeSDKVoice(endpoint: endpoint)
if (myConditionSatisfied) {
const params: UpdateSipMediaApplicationCallRequest = {
SipMediaApplicationId: 'your-sma-id',
TransactionId: 'your-transaction-id'
Arguments: {
myCustomParam: 'letsTriggerCallAndBridge'
}
}
await chimeSDK.updateSipMediaApplicationCall(params).promise()
}
your-sma.js
if (event.invocationType === 'CallUpdateRequested') {
if (event.actionData.Parameters.Arguments['myCustomParam'] === 'letsTriggerCallAndBridge') {
return actions.callAndBridge()
}
}
Hope that helps, let me know if you need further explanation