|
@@ -1095,6 +1095,30 @@ class Originate(Resource):
|
|
|
# else:
|
|
# else:
|
|
|
# return errorReply(reply.message)
|
|
# return errorReply(reply.message)
|
|
|
|
|
|
|
|
|
|
+@app.route('/autocall1/<numberA>/<numberB>')
|
|
|
|
|
+class Autocall1(Resource):
|
|
|
|
|
+ @authRequired
|
|
|
|
|
+ @app.param('numberA', 'User calling first', 'path')
|
|
|
|
|
+ @app.param('numberB', 'user calling after numberA enter DTMF 2', 'path')
|
|
|
|
|
+ @app.response(HTTPStatus.OK, 'Json reply')
|
|
|
|
|
+ @app.response(HTTPStatus.UNAUTHORIZED, 'Authorization required')
|
|
|
|
|
+ async def get(self, numberA, numberB):
|
|
|
|
|
+ '''Originate autocall
|
|
|
|
|
+ '''
|
|
|
|
|
+ if (not request.admin):
|
|
|
|
|
+ abort(401)
|
|
|
|
|
+
|
|
|
|
|
+ _act = { 'Action':'Originate',
|
|
|
|
|
+ 'Channel':'Local/{}@autocall1-legA'.format(numberA),
|
|
|
|
|
+ 'Context':'autocall1-legB',
|
|
|
|
|
+ 'Exten':numberB,
|
|
|
|
|
+ 'Priority': '1',
|
|
|
|
|
+ 'Async':'true',
|
|
|
|
|
+ 'Callerid': '{} <{}>'.format(2898, 2898)}
|
|
|
|
|
+ app.logger.warning(_act)
|
|
|
|
|
+ await manager.send_action(_act)
|
|
|
|
|
+ return successfullyOriginated(numberA, numberB)
|
|
|
|
|
+
|
|
|
@app.route('/hangup/<user>')
|
|
@app.route('/hangup/<user>')
|
|
|
class Hangup(Resource):
|
|
class Hangup(Resource):
|
|
|
@authRequired
|
|
@authRequired
|