mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 12:36:58 +00:00
core/ari/pjsip: Add refer mechanism
This change adds support for refers that are not session based. It
includes a refer implementation for the PJSIP technology which results
in out-of-dialog REFERs being sent to a PJSIP endpoint. These can be
triggered using the new ARI endpoint `/endpoints/refer`.
Resolves: #71
UserNote: There is a new ARI endpoint `/endpoints/refer` for referring
an endpoint to some URI or endpoint.
(cherry picked from commit 57f77e8218
)
This commit is contained in:
committed by
Asterisk Development Team
parent
de8890e0e4
commit
fd4ebb4482
@@ -75,6 +75,71 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/endpoints/refer",
|
||||
"description": "Refer an endpoint or technology URI to some technology URI or endpoint.",
|
||||
"operations": [
|
||||
{
|
||||
"httpMethod": "POST",
|
||||
"summary": "Refer an endpoint or technology URI to some technology URI or endpoint.",
|
||||
"nickname": "refer",
|
||||
"responseClass": "void",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "to",
|
||||
"description": "The endpoint resource or technology specific URI that should be referred to somewhere. Valid resource is pjsip.",
|
||||
"paramType": "query",
|
||||
"required": true,
|
||||
"allowMultiple": false,
|
||||
"dataType": "string"
|
||||
},
|
||||
{
|
||||
"name": "from",
|
||||
"description": "The endpoint resource or technology specific identity to refer from.",
|
||||
"paramType": "query",
|
||||
"required": true,
|
||||
"allowMultiple": false,
|
||||
"dataType": "string"
|
||||
},
|
||||
{
|
||||
"name": "refer_to",
|
||||
"description": "The endpoint resource or technology specific URI to refer to.",
|
||||
"paramType": "query",
|
||||
"required": true,
|
||||
"allowMultiple": false,
|
||||
"dataType": "string"
|
||||
},
|
||||
{
|
||||
"name": "to_self",
|
||||
"description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.",
|
||||
"paramType": "query",
|
||||
"required": false,
|
||||
"allowMultiple": false,
|
||||
"dataType": "boolean",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "variables",
|
||||
"description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers. The \"display_name\" key is used by the PJSIP technology. Its value will be prepended as a display name to the Refer-To URI.",
|
||||
"paramType": "body",
|
||||
"required": false,
|
||||
"dataType": "containers",
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"errorResponses": [
|
||||
{
|
||||
"code": 400,
|
||||
"reason": "Invalid parameters for referring."
|
||||
},
|
||||
{
|
||||
"code": 404,
|
||||
"reason": "Endpoint not found"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/endpoints/{tech}",
|
||||
"description": "Asterisk endpoints",
|
||||
@@ -196,6 +261,75 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/endpoints/{tech}/{resource}/refer",
|
||||
"description": "Refer an endpoint in a technology to some technology URI or endpoint..",
|
||||
"operations": [
|
||||
{
|
||||
"httpMethod": "POST",
|
||||
"summary": "Refer an endpoint or technology URI to some technology URI or endpoint.",
|
||||
"nickname": "referToEndpoint",
|
||||
"responseClass": "void",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "tech",
|
||||
"description": "Technology of the endpoint",
|
||||
"paramType": "path",
|
||||
"dataType": "string"
|
||||
},
|
||||
{
|
||||
"name": "resource",
|
||||
"description": "ID of the endpoint",
|
||||
"paramType": "path",
|
||||
"dataType": "string"
|
||||
},
|
||||
{
|
||||
"name": "from",
|
||||
"description": "The endpoint resource or technology specific identity to refer from.",
|
||||
"paramType": "query",
|
||||
"required": true,
|
||||
"allowMultiple": false,
|
||||
"dataType": "string"
|
||||
},
|
||||
{
|
||||
"name": "refer_to",
|
||||
"description": "The endpoint resource or technology specific URI to refer to.",
|
||||
"paramType": "query",
|
||||
"required": true,
|
||||
"allowMultiple": false,
|
||||
"dataType": "string"
|
||||
},
|
||||
{
|
||||
"name": "to_self",
|
||||
"description": "If true and \"refer_to\" refers to an Asterisk endpoint, the \"refer_to\" value is set to point to this Asterisk endpoint - so the referee is referred to Asterisk. Otherwise, use the contact URI associated with the endpoint.",
|
||||
"paramType": "query",
|
||||
"required": false,
|
||||
"allowMultiple": false,
|
||||
"dataType": "boolean",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "variables",
|
||||
"description": "The \"variables\" key in the body object holds technology specific key/value pairs to append to the message. These can be interpreted and used by the various resource types; for example, the pjsip resource type will add the key/value pairs as SIP headers,",
|
||||
"paramType": "body",
|
||||
"required": false,
|
||||
"dataType": "containers",
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"errorResponses": [
|
||||
{
|
||||
"code": 400,
|
||||
"reason": "Invalid parameters for referring."
|
||||
},
|
||||
{
|
||||
"code": 404,
|
||||
"reason": "Endpoint not found"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
|
Reference in New Issue
Block a user