Call Recording
Download OpenAPI specification:Download
This API provides functionality to get events related to SIPRec sessions and fetch and delete recording files.
/{domain}/stoprecording
Stops the ongoing recording and saves the already recorded data.
Authorizations:
path Parameters
domain required | string |
Request Body schema: application/jsonrequired
method | string Describing the method called, in this case "STOPRECORDING". example: "STOPRECORDING" |
replyId | string An identifier for the specific call that needs to be copied from /recordingStarted. example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiJzeXN0ZW10ZXN0LnRlc3QuaW90Y29tbXMuaW8iLCJyZWNvcmRpbmdJZCI6IjgzYzdhMzYwLWNmOWMtMTFlZC04Nzc5LTg3NjcyMmZhMzA3MyIsImNvbW1hbmRRdWV1ZSI6Imh0dHBzOi8vc3FzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tLzI5MjQzNTMwMDc3OS9hd3Njb2Rlc3Rhci1pb3Rjb21tcy1sYW1iZGEtdGVzdC1zbnNSZXNwb25zZVF1ZXVlLTFNNFJOQlJDUVFYMFUiLCJldmVudFRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJhbGFybVRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJ0ZW1wQnVja2V0IjoicmVjb3JkaW5ncy5zaXAudGVzdC1ldS13ZXN0LTEuaW90Y29tbXMuaW8iLCJ0ZW1wS2V5IjoiMjMwMzMxLTgzYzdhMzYwLWNmOWMtMTFlZC04Nzc5LTg3NjcyMmZhMzA3My5tcDMiLCJpYXQiOjE2ODAyNTA2Nzd9.IcNtVkQ8RvTzKY1ZdpkvoCAcM9TzUA8i5-gsXa4cssk" |
recordingId | string An identifyer of the recording that needs to be included in all requests. example: "83c7a360-cf9c-11ed-8779-876722fa3073" |
Responses
Request samples
- Payload
{- "method": "string",
- "replyId": "string",
- "recordingId": "string"
}
Response samples
- 200
{- "success": true
}
/{domain}/storerecording
Stores the specified recording at the specified location. Will generate a /recordingStored implicit callback when ready. This command may contain information on croping and masking the recording.
Authorizations:
path Parameters
domain required | string |
Request Body schema: application/jsonrequired
destinationBucket | string The bucket where a recording should be permanently stored. example: "recordings.sip.test-eu-west-1.iotcomms.io" |
fileName | string Optional property to set the name for the stored recording. If no value the recording will be stored with the name <date>-<recordingId>.mp3. example: "myRecording.mp3" |
method | string Describing the method called, in this case "STORERECORDING". example: "STORERECORDING" |
replyId | string An identifier for the specific call that needs to be copied from /recordingReady. example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiJzeXN0ZW10ZXN0LnRlc3QuaW90Y29tbXMuaW8iLCJyZWNvcmRpbmdJZCI6IjgzYzdhMzYwLWNmOWMtMTFlZC04Nzc5LTg3NjcyMmZhMzA3MyIsImNvbW1hbmRRdWV1ZSI6Imh0dHBzOi8vc3FzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tLzI5MjQzNTMwMDc3OS9hd3Njb2Rlc3Rhci1pb3Rjb21tcy1sYW1iZGEtdGVzdC1zbnNSZXNwb25zZVF1ZXVlLTFNNFJOQlJDUVFYMFUiLCJldmVudFRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJhbGFybVRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJ0ZW1wQnVja2V0IjoicmVjb3JkaW5ncy5zaXAudGVzdC1ldS13ZXN0LTEuaW90Y29tbXMuaW8iLCJ0ZW1wS2V5IjoiMjMwMzMxLTgzYzdhMzYwLWNmOWMtMTFlZC04Nzc5LTg3NjcyMmZhMzA3My5tcDMiLCJpYXQiOjE2ODAyNTA2Nzd9.IcNtVkQ8RvTzKY1ZdpkvoCAcM9TzUA8i5-gsXa4cssk" |
encryptionKey | string Optional property to set an arbitrary encryption key for the stored file. |
recordingId | string An identifyer of the recording that needs to be included in all requests. example: "83c7a360-cf9c-11ed-8779-876722fa3073" |
modificationParams | object Optional object property to modify the recorded file before storage. Valid parameters are {absoluteTimes: bool, trim: {from: timestamp, to: timestamp}, mask: {from: timestamp, to: timestamp}} If absoluteTime is used, the timestamp is expressed in Unix Timestamp, otherwise in ms. example: "{"absoluteTimes":true,"trim":{"from":1680179455424,"to":1680179460221}}" |
Responses
Request samples
- Payload
{- "destinationBucket": "string",
- "fileName": "string",
- "method": "string",
- "replyId": "string",
- "encryptionKey": "string",
- "recordingId": "string",
- "modificationParams": { }
}
Response samples
- 200
{- "success": true
}
/{domain}/deleterecording
Deletes the specifiec recording from the temporary storage. Should be performed after storerecording if recording is intended to be saved. Will result in a /recordingDeleted implicit callback.
Authorizations:
path Parameters
domain required | string |
Request Body schema: application/jsonrequired
replyId | string Set this to the value of replyId receviced in the getIvrCommand request that started the command to be interrupted. example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiJzeXN0ZW10ZXN0LnRlc3QuaW90Y29tbXMuaW8iLCJyZWNvcmRpbmdJZCI6IjgzYzdhMzYwLWNmOWMtMTFlZC04Nzc5LTg3NjcyMmZhMzA3MyIsImNvbW1hbmRRdWV1ZSI6Imh0dHBzOi8vc3FzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tLzI5MjQzNTMwMDc3OS9hd3Njb2Rlc3Rhci1pb3Rjb21tcy1sYW1iZGEtdGVzdC1zbnNSZXNwb25zZVF1ZXVlLTFNNFJOQlJDUVFYMFUiLCJldmVudFRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJhbGFybVRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJ0ZW1wQnVja2V0IjoicmVjb3JkaW5ncy5zaXAudGVzdC1ldS13ZXN0LTEuaW90Y29tbXMuaW8iLCJ0ZW1wS2V5IjoiMjMwMzMxLTgzYzdhMzYwLWNmOWMtMTFlZC04Nzc5LTg3NjcyMmZhMzA3My5tcDMiLCJpYXQiOjE2ODAyNTA2Nzd9.IcNtVkQ8RvTzKY1ZdpkvoCAcM9TzUA8i5-gsXa4cssk" |
recordingId | string An identifyer of the recording that needs to be included in all requests. example: "83c7a360-cf9c-11ed-8779-876722fa3073" |
Responses
Request samples
- Payload
{- "replyId": "string",
- "recordingId": "string"
}
Response samples
- 200
{- "success": true
}
/{domain}/cancelrecording
Cancels the ongoing recording not resulting in any saved recording.
Authorizations:
path Parameters
domain required | string |
Request Body schema: application/jsonrequired
method | string Describing the method called, in this case "CANCELRECORDING". example: "CANCELRECORDING" |
replyId | string An identifier for the specific call that needs to be copied from /recordingStarted. example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiJzeXN0ZW10ZXN0LnRlc3QuaW90Y29tbXMuaW8iLCJyZWNvcmRpbmdJZCI6IjgzYzdhMzYwLWNmOWMtMTFlZC04Nzc5LTg3NjcyMmZhMzA3MyIsImNvbW1hbmRRdWV1ZSI6Imh0dHBzOi8vc3FzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tLzI5MjQzNTMwMDc3OS9hd3Njb2Rlc3Rhci1pb3Rjb21tcy1sYW1iZGEtdGVzdC1zbnNSZXNwb25zZVF1ZXVlLTFNNFJOQlJDUVFYMFUiLCJldmVudFRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJhbGFybVRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJ0ZW1wQnVja2V0IjoicmVjb3JkaW5ncy5zaXAudGVzdC1ldS13ZXN0LTEuaW90Y29tbXMuaW8iLCJ0ZW1wS2V5IjoiMjMwMzMxLTgzYzdhMzYwLWNmOWMtMTFlZC04Nzc5LTg3NjcyMmZhMzA3My5tcDMiLCJpYXQiOjE2ODAyNTA2Nzd9.IcNtVkQ8RvTzKY1ZdpkvoCAcM9TzUA8i5-gsXa4cssk" |
recordingId | string An identifyer of the recording that needs to be included in all requests. example: "83c7a360-cf9c-11ed-8779-876722fa3073" |
Responses
Request samples
- Payload
{- "method": "string",
- "replyId": "string",
- "recordingId": "string"
}
Response samples
- 200
{- "success": true
}
/newCall
Request Body schema: application/json
A request https POST request is sent to the /newCall API resource of the remote system to query if the call should be recorded or not. Call setup is paused until a response have been received or after a timeout of the API call.
recordingId | string The recordingId generated by the system to uniquely identify the recorded call. |
metaData | string The SIPRec metadata XML document from body of the call generating the SIPRec request. |
sipRecCallId | string The content of the SIP call-id header for the SIPRec request. |
Responses
Request samples
- Payload
{- "recordingId": "015b5b80-c275-11ed-a32c-fddf7fd4273c",
- "metaData": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<recording xmlns=\"urn:ietf:params:xml:ns:recording:1\">\r\n <datamode>complete</datamode>\r\n <session session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <start-time>2015-05-19T09:42:06.911Z</start-time>\r\n </session>\r\n <participant participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\">\r\n <nameID aor=\"sip:808808@9.0.0.174\">\r\n <name xml:lang=\"en\">808808</name>\r\n </nameID>\r\n </participant>\r\n <participantsessionassoc participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <associate-time>2015-05-19T09:42:06.911Z</associate-time>\r\n </participantsessionassoc>\r\n <stream stream_id=\"JaPQeP1CEeSA8KsYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <label>1</label>\r\n </stream>\r\n <participant participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\">\r\n <nameID aor=\"sip:909909@9.0.0.174\">\r\n <name xml:lang=\"en\">909909</name>\r\n </nameID>\r\n </participant>\r\n <participantsessionassoc participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <associate-time>2015-05-19T09:42:06.911Z</associate-time>\r\n </participantsessionassoc>\r\n <stream stream_id=\"JaPQeP1CEeSA86sYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <label>2</label>\r\n </stream>\r\n <participantstreamassoc participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\">\r\n <send>foo1</send>\r\n <recv>foo2</recv>\r\n <send>foo3</send>\r\n <recv>foo4</recv>\r\n </participantstreamassoc>\r\n <participantstreamassoc participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\">\r\n <send>foo1</send>\r\n <recv>foo2</recv>\r\n <send>foo3</send>\r\n <recv>foo4</recv>\r\n </participantstreamassoc>\r\n </recording>\r\n",
- "sipRecCallId": 7260041678961334000
}
Response samples
- 200
{- "recordCall": true
}
/recordingFailed
Request Body schema: application/json
Notifications sent by the SIPREC server to indicate a recording has failed. This describes the REST-based interface.
event | string Describes the event type |
recordingId | string The recordingId identifies the recording |
domain | string The domain for witch the recording is being done |
replyId | string An identifier of the implicit callback that needs to be included in any upcomming request within the recording session |
commandQueue | string An pointer to the queue where messages are being published |
commandRegion | string The region where the queue is situated |
Responses
Request samples
- Payload
{- "event": "RECORDINGFAILED",
- "recordingId": "015b5b80-c275-11ed-a32c-fddf7fd4273c",
- "domain": "sip.prod-eu-north-1.iotcomms.io",
- "replyId": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiJzeXN0ZW10ZXN0LnRlc3QuaW90Y29tbXMuaW8iLCJyZWNvcmRpbmdJZCI6ImY3MzFkODYwLWMyNzMtMTFlZC1hMzJjLWZkZGY3ZmQ0MjczYyIsImNvbnRyb2xJcCI6IjEwLjg1LjE2Ni41NCIsInJlY29yZGluZ1NlcnZlciI6IjEwLjg1LjE2Ni41NCIsInNlcnZpY2VEaXNjb3ZlcnlUYWJsZSI6ImF3c2NvZGVzdGFyLWlvdGNvbW1zLWxhbWJkYS10ZXN0LXNlcnZpY2VEYXRhLTFWU0xZWkFCOVM3WEkiLCJldmVudFRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJjb21tYW5kUXVldWUiOiJodHRwczovL3Nxcy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS8yOTI0MzUzMDA3NzkvYXdzY29kZXN0YXItaW90Y29tbXMtbGFtYmRhLXRlc3Qtc25zUmVzcG9uc2VRdWV1ZS0xTTRSTkJSQ1FRWDBVIiwiaWF0IjoxNjc4ODAzODg0fQ.fgrK1GUJpHbH0qbU_4MOgsBgFH6i-aBX2U7K-muoQUw",
- "commandRegion": "eu-west-1"
}
/recordingStarted
Request Body schema: application/json
Notifications sent by the SIPREC server to indicate a recording has started. This describes the REST-based interface.
event | string Describes the event type |
recordingId | string The recordingId identifies the recording |
domain | string The domain for witch the recording is being done |
metaData | string The metaData included in the original INVITE |
replyId | string An identifier of the implicit callback that needs to be included in any upcomming request within the recording session |
commandQueue | string An pointer to the queue where messages are being published |
commandRegion | string The region where the queue is situated |
Responses
Request samples
- Payload
{- "event": "RECORDINGSTARTED",
- "recordingId": "015b5b80-c275-11ed-a32c-fddf7fd4273c",
- "domain": "sip.prod-eu-north-1.iotcomms.io",
- "metaData": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<recording xmlns=\"urn:ietf:params:xml:ns:recording:1\">\r\n <datamode>complete</datamode>\r\n <session session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <start-time>2015-05-19T09:42:06.911Z</start-time>\r\n </session>\r\n <participant participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\">\r\n <nameID aor=\"sip:808808@9.0.0.174\">\r\n <name xml:lang=\"en\">808808</name>\r\n </nameID>\r\n </participant>\r\n <participantsessionassoc participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <associate-time>2015-05-19T09:42:06.911Z</associate-time>\r\n </participantsessionassoc>\r\n <stream stream_id=\"JaPQeP1CEeSA8KsYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <label>1</label>\r\n </stream>\r\n <participant participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\">\r\n <nameID aor=\"sip:909909@9.0.0.174\">\r\n <name xml:lang=\"en\">909909</name>\r\n </nameID>\r\n </participant>\r\n <participantsessionassoc participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <associate-time>2015-05-19T09:42:06.911Z</associate-time>\r\n </participantsessionassoc>\r\n <stream stream_id=\"JaPQeP1CEeSA86sYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <label>2</label>\r\n </stream>\r\n <participantstreamassoc participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\">\r\n <send>foo1</send>\r\n <recv>foo2</recv>\r\n <send>foo3</send>\r\n <recv>foo4</recv>\r\n </participantstreamassoc>\r\n <participantstreamassoc participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\">\r\n <send>foo1</send>\r\n <recv>foo2</recv>\r\n <send>foo3</send>\r\n <recv>foo4</recv>\r\n </participantstreamassoc>\r\n </recording>\r\n",
- "replyId": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiJzeXN0ZW10ZXN0LnRlc3QuaW90Y29tbXMuaW8iLCJyZWNvcmRpbmdJZCI6ImY3MzFkODYwLWMyNzMtMTFlZC1hMzJjLWZkZGY3ZmQ0MjczYyIsImNvbnRyb2xJcCI6IjEwLjg1LjE2Ni41NCIsInJlY29yZGluZ1NlcnZlciI6IjEwLjg1LjE2Ni41NCIsInNlcnZpY2VEaXNjb3ZlcnlUYWJsZSI6ImF3c2NvZGVzdGFyLWlvdGNvbW1zLWxhbWJkYS10ZXN0LXNlcnZpY2VEYXRhLTFWU0xZWkFCOVM3WEkiLCJldmVudFRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJjb21tYW5kUXVldWUiOiJodHRwczovL3Nxcy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS8yOTI0MzUzMDA3NzkvYXdzY29kZXN0YXItaW90Y29tbXMtbGFtYmRhLXRlc3Qtc25zUmVzcG9uc2VRdWV1ZS0xTTRSTkJSQ1FRWDBVIiwiaWF0IjoxNjc4ODAzODg0fQ.fgrK1GUJpHbH0qbU_4MOgsBgFH6i-aBX2U7K-muoQUw",
- "commandRegion": "eu-west-1"
}
/recordingCancelled
Request Body schema: application/json
Notifications sent by the SIPREC server to indicate a recording has been cancelled. This describes the REST-based interface.
event | string Describes the event type |
recordingId | string The recordingId identifies the recording |
domain | string The domain for witch the recording is being done |
metaData | string The metaData included in the original INVITE |
replyId | string An identifier of the implicit callback that needs to be included in any upcomming request within the recording session |
commandQueue | string An pointer to the queue where messages are being published |
commandRegion | string The region where the queue is situated |
Responses
Request samples
- Payload
{- "event": "RECORDINGCANCELLED",
- "recordingId": "015b5b80-c275-11ed-a32c-fddf7fd4273c",
- "domain": "sip.prod-eu-north-1.iotcomms.io",
- "metaData": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<recording xmlns=\"urn:ietf:params:xml:ns:recording:1\">\r\n <datamode>complete</datamode>\r\n <session session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <start-time>2015-05-19T09:42:06.911Z</start-time>\r\n </session>\r\n <participant participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\">\r\n <nameID aor=\"sip:808808@9.0.0.174\">\r\n <name xml:lang=\"en\">808808</name>\r\n </nameID>\r\n </participant>\r\n <participantsessionassoc participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <associate-time>2015-05-19T09:42:06.911Z</associate-time>\r\n </participantsessionassoc>\r\n <stream stream_id=\"JaPQeP1CEeSA8KsYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <label>1</label>\r\n </stream>\r\n <participant participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\">\r\n <nameID aor=\"sip:909909@9.0.0.174\">\r\n <name xml:lang=\"en\">909909</name>\r\n </nameID>\r\n </participant>\r\n <participantsessionassoc participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <associate-time>2015-05-19T09:42:06.911Z</associate-time>\r\n </participantsessionassoc>\r\n <stream stream_id=\"JaPQeP1CEeSA86sYHx7YVg==\" session_id=\"JaPQeP1CEeSA66sYHx7YVg==\">\r\n <label>2</label>\r\n </stream>\r\n <participantstreamassoc participant_id=\"JaPQeP1CEeSA76sYHx7YVg==\">\r\n <send>foo1</send>\r\n <recv>foo2</recv>\r\n <send>foo3</send>\r\n <recv>foo4</recv>\r\n </participantstreamassoc>\r\n <participantstreamassoc participant_id=\"JaPQeP1CEeSA8qsYHx7YVg==\">\r\n <send>foo1</send>\r\n <recv>foo2</recv>\r\n <send>foo3</send>\r\n <recv>foo4</recv>\r\n </participantstreamassoc>\r\n </recording>\r\n",
- "replyId": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiJzeXN0ZW10ZXN0LnRlc3QuaW90Y29tbXMuaW8iLCJyZWNvcmRpbmdJZCI6ImY3MzFkODYwLWMyNzMtMTFlZC1hMzJjLWZkZGY3ZmQ0MjczYyIsImNvbnRyb2xJcCI6IjEwLjg1LjE2Ni41NCIsInJlY29yZGluZ1NlcnZlciI6IjEwLjg1LjE2Ni41NCIsInNlcnZpY2VEaXNjb3ZlcnlUYWJsZSI6ImF3c2NvZGVzdGFyLWlvdGNvbW1zLWxhbWJkYS10ZXN0LXNlcnZpY2VEYXRhLTFWU0xZWkFCOVM3WEkiLCJldmVudFRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJjb21tYW5kUXVldWUiOiJodHRwczovL3Nxcy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS8yOTI0MzUzMDA3NzkvYXdzY29kZXN0YXItaW90Y29tbXMtbGFtYmRhLXRlc3Qtc25zUmVzcG9uc2VRdWV1ZS0xTTRSTkJSQ1FRWDBVIiwiaWF0IjoxNjc4ODAzODg0fQ.fgrK1GUJpHbH0qbU_4MOgsBgFH6i-aBX2U7K-muoQUw",
- "commandRegion": "eu-west-1"
}
/recordingReady
Request Body schema: application/json
A request https POST request is sent to the /recordingReady API resource of the remote system to inform of the recording being ready and stored in the temporary storage.
recordingId | string The recordingId generated by the system to uniquely identify the recorded call. |
meta | string The recordings metadata describing the containing streams. Sent in the format {recordingsPartsInfo: {callerStreams:[{start: timestamp, ssrc: ssrcRef}], calleeStreams: [{start: timestamp, ssrc, ssrcRef}]}} |
sipRecCallId | string The content of the SIP call-id header for the SIPRec request. |
commandQueue | string URL pointing to the SQS queue where the subsequent commands to interact with the recording should be sent. |
domain | string The domain for witch the recording is being done |
replyId | string An identifier of the implicit callback that needs to be included in any upcomming request within the recording session |
Responses
Request samples
- Payload
{- "recordingId": "015b5b80-c275-11ed-a32c-fddf7fd4273c",
- "meta": "{\nrecordingsPartsInfo: {\ncallerStreams: [\n{\nstart: 1680093356094,\nssrc: 2773030717\n}\n],\ncalleeStreams: [\n{\nstart: 1680093356094,\nssrc: 3758356851\n}\n]\n}\n}",
- "sipRecCallId": 7260041678961334000,
- "domain": "sip.prod-eu-north-1.iotcomms.io",
- "replyId": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiJzeXN0ZW10ZXN0LnRlc3QuaW90Y29tbXMuaW8iLCJyZWNvcmRpbmdJZCI6ImY3MzFkODYwLWMyNzMtMTFlZC1hMzJjLWZkZGY3ZmQ0MjczYyIsImNvbnRyb2xJcCI6IjEwLjg1LjE2Ni41NCIsInJlY29yZGluZ1NlcnZlciI6IjEwLjg1LjE2Ni41NCIsInNlcnZpY2VEaXNjb3ZlcnlUYWJsZSI6ImF3c2NvZGVzdGFyLWlvdGNvbW1zLWxhbWJkYS10ZXN0LXNlcnZpY2VEYXRhLTFWU0xZWkFCOVM3WEkiLCJldmVudFRvcGljIjoiYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjI5MjQzNTMwMDc3OTpmdW5jdGlvbnRlc3QtdGVzdC1mdW5jdGlvbnRlc3R0ZXN0dG9waWM4NzkzNjUxOS1QVHRhdWVhV0hRMGIiLCJjb21tYW5kUXVldWUiOiJodHRwczovL3Nxcy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS8yOTI0MzUzMDA3NzkvYXdzY29kZXN0YXItaW90Y29tbXMtbGFtYmRhLXRlc3Qtc25zUmVzcG9uc2VRdWV1ZS0xTTRSTkJSQ1FRWDBVIiwiaWF0IjoxNjc4ODAzODg0fQ.fgrK1GUJpHbH0qbU_4MOgsBgFH6i-aBX2U7K-muoQUw"
}
Response samples
- 200
{ }
This event is sent when a SIPRec recording has started.
Parameters
Name | Description |
---|---|
calledParty: string | The user part of the incoming SIPRec invite received (the part before @ sign). This property can be used to understand which end customer a recording belongs to when building a multi tenant service |
commandQueue: string | URL pointing to the SQS queue where the subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
domain: string | The domain of the tenant owning the recorded calls. |
metaData: string | The SIPRec metadata part from the SIPRec invite request that triggered the recording. |
recordingId: string | The recordingId of the started recording. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS routing response command is generated |
Example
{
"event": "RECORDINGSTARTED",
"calledParty": "user123",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"domain": "sip.example.com",
"metaData": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><recording xmlns=\"urn:ietf:params:xml:ns:recording:1\">...",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This event is sent when the CANCELRECORDING command is completed or if the system decided to cancel the recording.
Parameters
Name | Description |
---|---|
calledParty: string | The user part of the incoming SIPRec invite received (the part before @ sign). This property can be used to understand which end customer a recording belongs to when building a multi tenant service |
commandQueue: string | URL pointing to the SQS queue where the subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
domain: string | The domain of the tenant owning the recorded calls. |
reason: string | The reason that the event is sent. It is set to 'cancelCommand' if the recording was cancelled using CANCELRECORDING command. It is set to 'duplicate' in case recording was canceled due to recording cancelled since another node has already started the recording. |
recordingId: string | The recordingId of the cancelled recording. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS routing response command is generated. |
Example
{
"event": "RECORDINGCANCELLED",
"calledParty": "user123",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"domain": "sip.example.com",
"reason": "cancelCommand",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This event is sent when a SIPRec recording is completed and a file is ready to be copied to the final storage destination.
Parameters
Name | Description |
---|---|
calledParty: string | The user part of the incoming SIPRec invite received (the part before @ sign). This property can be used to understand which end customer a recording belongs to when building a multi tenant service |
commandQueue: string | URL pointing to the SQS queue where the subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
conferenceSegments: array | (Optional) An array of conferenceSegment objects. If detection of related recordings is enabled and the system identifies a conference call is active during the recording session, this array will be populated with information about which portion(s) of the session recorded the conference call. Each conferenceSegment object contains the following properties: startTime (when the conference started), endTime (when the conference ended), aor (the SIP user part for the conference participant), and state (can be "active" or "stopped"). The value of this property may be copied to the MERGERECORDINGS command if you need to remove duplicated audio caused by mixing streams containing the same participants. |
domain: string | The domain of the tenant owning the recorded calls. |
meta: string | Meta information for the generated recording file. The recordingsPartsInfo object provides timestamps of when RTP streams have started for the caller and callee and the corresponding SSRC IDs in the callerStreams and calleeStreams arrays. If a recording consists of multiple RTP streams, the array will contain multiple objects. |
recordingId: string | The recordingId of the completed recording. |
relatedRecordings: array | (Optional) An array of related recordings with their recordingId , startTime , state , and recordingRole . If all the related recordings are in state "stopped" , it means that it is possible to invoke the MERGERECORDINGS command. It can't be done if a related recording is still "active" . The recordingRole of type "parent" is assigned to the first recording of all the related recordings. If another recording is started later in the relation, it gets role "child" . If two recordings are started one after another, they will get role "sibling" . It is possible that a child recording terminates later than the parent recording. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS routing response command is generated |
warning: string | The existence of this attribute indicates that a recording file was produced but the recording was not terminated properly with a SIP BYE request. Therefore, only parts of the conversation may have been recorded, or a period of silence at the end until the timeout was triggered. |
Example
{
"event": "RECORDINGREADY",
"calledParty": "user123",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"domain": "sip.example.com",
"meta": "\"recordingsPartsInfo\": { \"callerStreams\": [{\"start\": 1557932777534, \"ssrc\": 2408484501}], \"calleeStreams\": [{\"start\": 1557932777523, \"ssrc\": 197496009}] }",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"conferenceSegments": [
{
"startTime": 1728890680444,
"endTime": 1728890687255
}
]
"relatedRecordings": [
{
"recordingId": "cbefcbd0-8b1c-11ef-982b-1b7455556a32",
"startTime": 1729014126886,
"state": "stopped",
"recordingRole": "sibling",
"conferenceSegments": [
{
"startTime": 1728890680444,
"endTime": 1728890687255
}
]
},
{
"recordingId": "c9fa3d60-8b1c-11ef-982b-1b7455556a32",
"startTime": 1729014123722,
"state": "stopped",
"recordingRole": "parent",
"conferenceSegments": [
{
"startTime": 1728890680444,
"endTime": 1728890687255
}
]
}
],
"replyId": "fdkmlksfm38f8nfQekefmffmf...",
"warning": "rtpTimeout"
}
This event is sent in case a recording that is started fails to produce a recording file.
Parameters
Name | Description |
---|---|
calledParty: string | The user part of the incoming SIPRec invite received (the part before @ sign). This property can be used to understand which end customer a recording belongs to when building a multi tenant service |
commandQueue: string | URL pointing to the SQS queue where subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
domain: string | The domain of the tenant owning the recorded calls. |
reason: string | String with error description of the reason of failure |
recordingId: string | The recordingId of the recording that failed. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS response command is generated |
Example
{
"event": "RECORDINGFAILED",
"calledParty": "user123",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"domain": "sip.example.com",
"reason": "Detailed error message explaining the failure",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This event is sent when the recording file is successfully copied to the final storage destination.
Parameters
Name | Description |
---|---|
commandQueue: string | URL pointing to the SQS queue where the subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
destinationBucket: string | Destination bucket for the stored recording. |
fileName: string | Filename for the stored recording. |
recordingId: string | The recordingId of the started recording. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS routing response command is generated |
Example
{
"event": "RECORDINGSTORED",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"destinationBucket": "recordingbucket.company.com",
"fileName": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e.mp3",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This event is sent when the STORERECORDING
command fails.
Parameters
Name | Description |
---|---|
commandQueue: string | URL pointing to the SQS queue where subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
domain: string | The domain of the tenant owning the recorded calls. |
reason: string | Description of the error that caused the STORERECORDING command to fail. |
recordingId: string | The recordingId of the recording for which the store operation failed. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS response command is generated |
Example
{
"event": "STORERECORDINGFAILED",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"domain": "sip.example.com",
"reason": "Detailed error message explaining the failure",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This event is sent when the recording files have been successfully merged and the merged recording file is stored to the final storage destination.
Parameters
Name | Description |
---|---|
commandQueue: string | URL pointing to the SQS queue where the subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
destinationBucket: string | Destination bucket for the stored merged recording. |
domain: string | The domain of the tenant owning the recorded calls. |
fileName: string | Filename for the stored merged recording. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS routing response command is generated |
Example
{
"event": "RECORDINGSMERGED",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"destinationBucket": "recordingbucket.company.com",
"domain": "sip.example.com",
"fileName": "mergedrecording.mp3",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This event is sent when the MERGERECORDINGS
command fails.
Parameters
Name | Description |
---|---|
commandQueue: string | URL pointing to the SQS queue where subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
domain: string | The domain of the tenant owning the recorded calls. |
reason: string | Description of the error that caused the MERGERECORDINGS command to fail. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS response command is generated |
Example
{
"event": "MERGERECORDINGSFAILED",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"domain": "sip.example.com",
"reason": "Detailed error message explaining the failure",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This event is sent when the recording file is successfully deleted from the temporary storage location.
Parameters
Name | Description |
---|---|
commandQueue: string | URL pointing to the SQS queue where the subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
recordingId: string | The recordingId of the started recording. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS routing response command is generated |
Example
{
"event": "RECORDINGDELETED",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This event is sent when the DELETERECORDING
command fails.
Parameters
Name | Description |
---|---|
commandQueue: string | URL pointing to the SQS queue where subsequent commands to interact with the recording should be sent. |
commandRegion: string | The AWS region the commandQueue is hosted in. |
domain: string | The domain of the tenant owning the recorded calls. |
reason: string | Description of the error that caused the DELETERECORDING command to fail. |
recordingId: string | The recordingId of the recording for which the delete operation failed. |
replyId: string | This string is used by the service to correlate SQS response commands with SNS notifications. It must be copied when an SQS response command is generated |
Example
{
"event": "DELETERECORDINGFAILED",
"commandQueue": "https://sqs.eu-west-1.amazonaws.com/292435300779/...",
"commandRegion": "eu-west-1",
"domain": "sip.example.com",
"reason": "Detailed error message explaining the failure",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
Queue ARN: SQS URL provided in notification event parameter commandQueue
This is a queue that listens for response commands related to SNS events. The URL for the queue is passed in the commandQueue parameter of the event.
This command is sent to the SQS response queue indicated in the RECORDINGSTARTED event to stop the ongoing recording. A recording file with the recorded content up until the command has been received will be generated and once this is complete a RECORDINGREADY event will be sent.
Parameters
Name | Description |
---|---|
recordingId: string | The recordingId of the recording to be stopped. |
replyId: string | This parameter must be set to the value received in the SNS RECORDINGSTARTED event to allow the service to associate the response command with initial event. |
Example
{
"method": "STOPRECORDING",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This command is sent to the SQS response queue indicated in the RECORDINGSTARTED event to cancel the ongoing recording. Any produced temporary recording files will be permanently deleted. When the files have been deleted a RECORDINGCANCELLED event will be sent.
Parameters
Name | Description |
---|---|
recordingId: string | The recordingId of the recording to be cancelled. |
replyId: string | This parameter must be set to the value received in the SNS RECORDINGSTARTED event to allow the service to associate the response command with initial event. |
Example
{
"method": "CANCELRECORDING",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This command is sent to the SQS response queue indicated in the RECORDINGREADY
event to merge multiple recordings into a single audio file and store it in permanent storage.
Parameters
Name | Description |
---|---|
destinationBucket: string | The name of the S3 bucket where the merged recording should be stored. |
destinationRegion: string | Optional region identifier if destinationBucket is in a different AWS region than where the recording service is running. |
encryptionKey: string | Optional ARN pointing to a key to be used for server-side encryption of the stored recording. |
fileName: string | Optional filename for the merged recording. If this parameter is missing, a default name will be used. |
replyId: string | This parameter must be set to the value received in the SNS RECORDINGREADY event to allow the service to associate the response command with the initial event. |
toMerge: array | An array of objects, each containing a recordingId and startTime of the recordings to be merged. This array is constructed from the recordingId and startTime from the RECORDINGREADY event and the values in the relatedRecordings property in the event. The array does not need to be sorted; the command will merge based on startTime , which is used to set the correct offset when merging the audio files into a single file. If duplicate conference audio should be removed, the conferenceSegments values should also be copied from the main recording and the related recording objects. If these are provided, only the audio from the audio file that started first will be used in the merged file during periods when a conference is active. |
Example 1: MERGERECORDINGS
{
"method": "MERGERECORDINGS",
"destinationBucket": "recordingstorage.company.com",
"destinationRegion": "us-west-2",
"toMerge": [
{
"recordingId": "5e32bf50-89fd-11ef-966f-03e88116d7e5",
"startTime": 1728890677283,
"conferenceSegments": [
{
"startTime": 1728890680444,
"endTime": 1728890687255
}
]
},
{
"recordingId": "601fe950-89fd-11ef-966f-03e88116d7e5",
"startTime": 1728890680444,
"conferenceSegments": [
{
"startTime": 1728890680444,
"endTime": 1728890687255
}
]
},
{
"recordingId": "642ebad0-89fd-11ef-966f-03e88116d7e5",
"startTime": 1728890687255,
"conferenceSegments": [
{
"startTime": 1728890680444,
"endTime": 1728890687255
}
]
}
],
"fileName": "mergedrecording.mp3",
"encryptionKey": "arn:aws:kms:region:account-id:key/key-id",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This command is sent to the SQS response queue indicated in the RECORDINGREADY event to copy the recording from temporary to permanent storage.
Parameters
Name | Description |
---|---|
destinationBucket: string | The name of the S3 bucket that the file should be copied to. |
destinationRegion: string | Optional region identifier if destinationBucket is in a different AWS region than where the recording service is running. |
encryptionKey: string | Optional ARN pointing to a key to be used for server-side encryption of the stored recording. |
fileName: string | Optional filename for the permanently stored file. If this parameter is missing, .mp3 will be used as the file name. |
modificationParams: object | Optional object providing information on how to modify the recording before it is stored. The structure of modificationParams can be seen in Example 1 below. |
recordingId: string | The recordingId of the recording to be copied. |
replyId: string | This parameter must be set to the value received in the SNS RECORDINGREADY event to allow the service to associate the response command with the initial event. |
Example 1: modificationParams
{
"absoluteTimes": boolean,
"mask": {
"caller": [{"from": number, "to": number}],
"callee": [{"from": number, "to": number}]
},
"trim": {"from": number, "to": number}
}
Where:
absoluteTimes
indicates if the times are relative to the recording start in seconds or absolute timestamps in milliseconds since Jan 1st, 1970.mask
object is optional to specify if sections of the audio channel related to the caller or callee should be masked. An array with timestamps defining intervals to be masked is provided. The audio for these intervals will be replaced by a beep tone.trim
object is optional to specify a subset of the original recording as an interval to be saved.
Example 2: Full Command
{
"method": "STORERECORDING",
"destinationBucket": "recordingstorage.company.com",
"destinationRegion": "us-west-2",
"encryptionKey": "arnstring",
"fileName": "myrecording.mp3",
"modificationParams": {
"absoluteTimes": true,
"mask": {
"caller": [
{
"from": 1561988732565,
"to": 1561988733565
},
{
"from": 1561988735565,
"to": 1561988735965
},
{
"from": 1561988737565,
"to": 1561988738565
}
],
"callee": [
{
"from": 1561988733565,
"to": 1561988734565
}
]
},
"trim": {
"from": 1561988732565,
"to": 1561988738565
}
},
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This command is sent to the SQS response queue indicated in the RECORDINGREADY or RECORDINGSTORED event to copy the recording from temporary to permanent storage.
Parameters
Name | Description |
---|---|
recordingId: string | The recordingId of the recording to be copied. |
replyId: string | This parameter must be set to the value received in the SNS RECORDINGREADY or RECORDINGSTORED event to allow the service to associate the response command with the initial event. |
Example
{
"method": "DELETERECORDING",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"replyId": "fdkmlksfm38f8nfQekefmffmf..."
}
This alarm is generated if the STORERECORDING command fails.
Parameters
Name | Description |
---|---|
type: string | The type of alarm. |
event: string | The original SQS event that triggered the failed command. |
error: string | Error description |
Example
{
"type": "storeRecordingError",
"error": "recordingId does not match eventId"
}
This alarm is generated if the DELETERECORDING command fails.
Parameters
Name | Description |
---|---|
type: string | The type of alarm. |
event: string | The original SQS event that triggered the failed command. |
error: string | Error description |
Example
{
"type": "deleteRecordingError",
"error": "recordingId does not match eventId"
}
This alarm is generated if a recording failed with an error.
Parameters
Name | Description |
---|---|
type: string | The recording failed due to reason described in error. |
recordingId: string | The recordingId of the failed recording. |
domain: string | The domain of the tenant. |
error: string | Error description |
Example
{
"event": "recordingFailed",
"type": "recordingFailed",
"recordingId": "aa2763a0-f00d-11e9-b265-41d830bfc3ea",
"domain": "sip.example.com",
"error": "Recording completed with error\": { \"reason\":\"Error No RTP media received\", \"type\":\"stoppedWithoutMedia\"}"
}
Failure to store the recording in the temporary storage
Parameters
Name | Description |
---|---|
type: string | The type of alarm. |
recordingId: string | The recordingId of the failed recording. |
domain: string | The domain of the tenant. |
error: string | Error description |
errorDetails: string | Details for the error |
Example
{
"event": "tempStorageError",
"type": "tempStorageError",
"recordingId": "aa2763a0-f00d-11e9-b265-41d830bfc3ea",
"domain": "sip.example.com"
}
This alarm is generated if the STOPRECORDING command fails.
Parameters
Name | Description |
---|---|
type: string | The type of alarm. |
event: string | The original SQS event that triggered the failed command. |
error: string | Error description |
Example
{
"type": "stopRecordingError",
"error": "recordingId does not match eventId"
}
This alarm is generated if the CANCELRECORDING command fails.
Parameters
Name | Description |
---|---|
type: string | The type of alarm. |
event: string | The original SQS event that triggered the failed command. |
error: string | Error description |
Example
{
"type": "cancelRecordingError",
"error": "recordingId does not match eventId"
}
This alarm is generated if a publishing a notification fails.
Parameters
Name | Description |
---|---|
type: string | The type of alarm. |
event: string | The original SQS event that triggered the failure. |
error | string |
Example
{
"type": "eventNotificationError",
"error": "recordingId does not match eventId"
}
This alarm is generated when a recording file is deleted from the temporary storage due to expiration. This means that it is automatically deleted and the DELETERECORDING command has not been sent in time.
Parameters
Name | Description |
---|---|
type: string | The type of alarm. |
recordingId: string | The recordingId of the recording being deleted. |
domain: string | The domain of the tenant. |
service: string | The affected service. |
modifiedDate: string | The timestamp of when the recording was last modified or created. |
error: string | Error description. |
Example
{
"event": "tempRecordingDeleted",
"type": "tempRecordingDeleted",
"recordingId": "aa2763a0-f00d-11e9-b265-41d830bfc3ea",
"domain": "sip.example.com",
"service": "siprec",
"error": "Recording id 9b1ace70-d0a4-11e9-841f-d3ec0b98f0e9 expired."
}
This alarm is generated if the system fails to call the newCall API endpoint.
Parameters
Name | Description |
---|---|
type: string | The type of alarm. |
domain: string | The domain of the tenant. |
recordingId: string | recordingId of the call that triggered the request. |
error: string | Error description |
method: string | HTTP request method of the failed request |
requestUri: string | HTTP request URI of the failed request |
statusCode: number | HTTP status code for the response to the failed request |
statusMessage: string | HTTP status message for the response to the failed request |
Example
{
"event": "apiRequestError",
"type": "apiRequestError",
"domain": "company.com",
"recordingId": "0de2bc60-14da-11e9-a3d8-2f24dd9af78e",
"error": "Error calling newCall API",
"method": "POST",
"requestUri": "https://example.com/newCall",
"statusCode": 500,
"statusMessage": "Internal Server Error"
}