call: redirect
Namespace: microsoft.graph
Important
APIs under the /beta
version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported. To determine whether an API is available in v1.0, use the Version selector.
Redirect an incoming call that hasn't been answered or rejected yet. The terms "redirecting" and "forwarding" a call are used interchangeably.
The bot is expected to redirect the call before the call times out. The current timeout value is 15 seconds.
Permissions
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.
Permission type | Permissions (from least to most privileged) |
---|---|
Delegated (work or school account) | Not Supported |
Delegated (personal Microsoft account) | Not Supported |
Application | Calls.Initiate.All |
HTTP request
POST /app/calls/{id}/redirect
POST /communications/calls/{id}/redirect
Note: The
/app
path is deprecated. Going forward, use the/communications
path.
Request headers
Name | Description |
---|---|
Authorization | Bearer {token}. Required. |
Request body
In the request body, provide a JSON object with the following parameters.
Parameter | Type | Description |
---|---|---|
targets | invitationParticipantInfo collection | The target participants of the redirect operation. If more than one target is specified, it's a simulring call. This means that all of the targets will be rang at the same time and only the first target that picks up will be connected. We support up to 25 targets for simulring. |
targetDisposition | String | (Deprecated) The possible values are: default , simultaneousRing , forward . This parameter is deprecated, we will automatically identify whether it's a forward call or simulring call from the number of targets provided. |
timeout | Int32 | The timeout (in seconds) for the redirect operation. The range of the timeout value is between 15 and 90 seconds inclusive. The default timeout value is 55 seconds for one target and 60 seconds for multiple targets (subject to change). |
maskCallee | Boolean | Indicates whether the callee is to be hidden from the caller. If true, then the callee identity is the bot identity. Default: false. |
maskCaller | Boolean | Indicates whether the caller is to be hidden from the callee. If true, then the caller identity is the bot identity. Default: false. |
callbackUri | String | This allows bots to provide a specific callback URI for the current call to receive later notifications. If this property has not been set, the bot's global callback URI will be used instead. This must be https . |
Response
If successful, this method returns a 202 Accepted
response code.
Examples
These examples will cover a workflow of an incoming call notification and how that call will be redirected.
Note: The response objects shown here might be shortened for readability. All the properties will be returned from an actual call.
Example 1: Forward a call to a target
Notification - incoming
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "created",
"resourceUrl": "/communications/calls/491f0b00-ffff-4bc9-a43e-b226498ec22a",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "incoming",
"direction": "incoming",
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "8d1e6ab6-26c5-4e22-a1bc-06ea7343958e",
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f"
}
},
"region": "amer",
},
"targets": [
{
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "test bot",
"id": "24701998-1a73-4d42-8085-bf46ed0ae039"
}
}
}
],
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f",
"myParticipantId": "c339cede-4bd6-4f20-ab9f-3a13e65f6d00",
"id": "491f0b00-ffff-4bc9-a43e-b226498ec22a"
}
}
]
}
Request
POST https://graph.microsoft.com/beta/communications/calls/491f0b00-ffff-4bc9-a43e-b226498ec22a/redirect
Content-Type: application/json
{
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "test bot 2",
"id": "22bfd41f-550e-477d-8789-f6f7bd2a5e8b"
}
}
}
],
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039"
}
Response
HTTP/1.1 202 Accepted
Notification - terminated
POST https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resourceUrl": "/communications/calls/491f0b00-ffff-4bc9-a43e-b226498ec22a",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "terminated",
"direction": "incoming",
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "8d1e6ab6-26c5-4e22-a1bc-06ea7343958e",
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f"
}
},
"region": "amer",
},
"targets": [
{
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "test bot",
"id": "24701998-1a73-4d42-8085-bf46ed0ae039"
}
}
}
],
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f",
"myParticipantId": "c339cede-4bd6-4f20-ab9f-3a13e65f6d00",
"id": "491f0b00-ffff-4bc9-a43e-b226498ec22a"
}
}
]
}
Example 2: Forward a call to multiple targets with simultaneous ring
Notification - incoming
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "created",
"resourceUrl": "/communications/calls/481f0b00-ffff-4ca1-8c67-a5f1e31e8e82",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "incoming",
"direction": "incoming",
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "ec040873-8235-45fd-a403-c7259a5a548e",
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f"
}
},
"region": "amer"
},
"targets": [
{
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "test bot",
"id": "24701998-1a73-4d42-8085-bf46ed0ae039"
}
}
}
],
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f",
"myParticipantId": "f540f1b6-994b-4866-be95-8aad34c4f4dc",
"id": "481f0b00-ffff-4ca1-8c67-a5f1e31e8e82"
}
}
]
}
Request
POST https://graph.microsoft.com/beta/communications/calls/481f0b00-ffff-4ca1-8c67-a5f1e31e8e82/redirect
Content-Type: application/json
{
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "test user",
"id": "98da8a1a-1b87-452c-a713-65d3f10b1253"
}
}
},
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "test user 2",
"id": "bf5aae9a-d11d-47a8-93b1-782504c9c3f3"
}
}
}
],
"routingPolicies": [
"disableForwarding"
],
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039"
}
Response
HTTP/1.1 202 Accepted
Notification - terminated
POST https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resourceUrl": "/communications/calls/491f0b00-ffff-4bc9-a43e-b226498ec22a",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "terminated",
"direction": "incoming",
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "ec040873-8235-45fd-a403-c7259a5a548e",
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f"
}
},
"region": "amer"
},
"targets": [
{
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"application": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "test bot",
"id": "24701998-1a73-4d42-8085-bf46ed0ae039"
}
}
}
],
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f",
"myParticipantId": "f540f1b6-994b-4866-be95-8aad34c4f4dc",
"id": "481f0b00-ffff-4ca1-8c67-a5f1e31e8e82"
}
}
]
}
Example 3: Forward a call to a PSTN number
This call requires an application instance with a PSTN number assigned. For details, see Assign a phone number to your bot.
Note: Phone ID is the phone number in E.164 format.
Notification - incoming
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "created",
"resourceUrl": "/communications/calls/491f0b00-ffff-4bc9-a43e-b226498ec22a",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "incoming",
"direction": "incoming",
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "8d1e6ab6-26c5-4e22-a1bc-06ea7343958e",
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f"
}
},
"region": "amer",
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"applicationInstance": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "PstnAppInstance",
"id": "7629bdce-046c-4903-86b4-a8f718277e1a",
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f"
}
},
"endpointType": "default",
"id": "c339cede-4bd6-4f20-ab9f-3a13e65f6d00",
"region": "amer",
"languageId": null
}
],
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f",
"myParticipantId": "c339cede-4bd6-4f20-ab9f-3a13e65f6d00",
"id": "491f0b00-ffff-4bc9-a43e-b226498ec22a"
}
}
]
}
Request
POST https://graph.microsoft.com/beta/communications/calls/491f0b00-ffff-4bc9-a43e-b226498ec22a/redirect
Content-Type: application/json
{
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"phone": {
"@odata.type": "#microsoft.graph.identity",
"id": "+12345678901"
}
}
}
],
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039"
}
Response
HTTP/1.1 202 Accepted
Notification - terminated
POST https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resourceUrl": "/communications/calls/491f0b00-ffff-4bc9-a43e-b226498ec22a",
"resourceData": {
"@odata.type": "#microsoft.graph.call",
"state": "terminated",
"direction": "incoming",
"callbackUri": "https://bot.contoso.com/api/calls/24701998-1a73-4d42-8085-bf46ed0ae039",
"source": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"user": {
"@odata.type": "#microsoft.graph.identity",
"id": "8d1e6ab6-26c5-4e22-a1bc-06ea7343958e",
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f"
}
},
"region": "amer",
},
"targets": [
{
"@odata.type": "#microsoft.graph.invitationParticipantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"applicationInstance": {
"@odata.type": "#microsoft.graph.identity",
"displayName": "PstnAppInstance",
"id": "7629bdce-046c-4903-86b4-a8f718277e1a",
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f"
}
},
"endpointType": "default",
"id": "c339cede-4bd6-4f20-ab9f-3a13e65f6d00",
"region": "amer",
"languageId": null
}
],
"answeredBy": {
"@odata.type": "#microsoft.graph.participantInfo",
"identity": {
"@odata.type": "#microsoft.graph.identitySet",
"encrypted": {
"@odata.type": "#microsoft.graph.identity",
"id": "1xt4uextl99sdzwdxuvdxrvgrv8gehcq7jdgf9yhzeto"
}
},
"endpointType": "default"
},
"tenantId": "632899f8-2ea1-4604-8413-27bd2892079f",
"myParticipantId": "c339cede-4bd6-4f20-ab9f-3a13e65f6d00",
"id": "491f0b00-ffff-4bc9-a43e-b226498ec22a"
}
}
]
}
Feedback
Submit and view feedback for