|
@@ -1,10 +1,12 @@
|
|
|
#!/usr/bin/env python3
|
|
|
# encoding:utf-8
|
|
|
|
|
|
+import traceback
|
|
|
from .config import BaseConfig
|
|
|
from flask import Flask, request, render_template_string
|
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
|
from flask_cors import CORS
|
|
|
+from .constant import error_response
|
|
|
db = SQLAlchemy()
|
|
|
|
|
|
|
|
@@ -18,7 +20,55 @@ def create_app():
|
|
|
# with app.app_context():
|
|
|
# from . import views # Import routes
|
|
|
|
|
|
- return _app
|
|
|
+ from src.core.voip.bot import BotAgent
|
|
|
+ from .call import CallService
|
|
|
+ from .agent import AgentService, AgentOperService
|
|
|
+ from .esl.client import InboundClient, OutboundClient
|
|
|
|
|
|
+ agent = BotAgent(_app.logger)
|
|
|
+ # agent, _outbound_client = None, None
|
|
|
+ _inbound_client = InboundClient(agent, _app.logger)
|
|
|
+ _outbound_client = OutboundClient(agent, _app.logger)
|
|
|
+ _call_service = CallService(_inbound_client, _app.logger)
|
|
|
+ _agent_service = AgentService(_inbound_client, _app.logger)
|
|
|
+ _agent_oper_service = AgentOperService(_inbound_client, _app.logger)
|
|
|
+ return _app, _inbound_client, _outbound_client, _call_service , _agent_service, _agent_oper_service
|
|
|
|
|
|
-app = create_app()
|
|
|
+
|
|
|
+app, inbound_client, outbound_client, call_service , agent_service, agent_oper_service = create_app()
|
|
|
+
|
|
|
+
|
|
|
+class BizException(Exception):
|
|
|
+ def __init__(self, message, status_code=400):
|
|
|
+ super().__init__(message)
|
|
|
+ self.message = message
|
|
|
+ self.status_code = status_code
|
|
|
+
|
|
|
+
|
|
|
+class SipUriSyntaxException(Exception):
|
|
|
+ def __init__(self, message, status_code=400):
|
|
|
+ super().__init__(message)
|
|
|
+ self.message = message
|
|
|
+ self.status_code = status_code
|
|
|
+
|
|
|
+
|
|
|
+@app.errorhandler(BizException)
|
|
|
+def handle_biz_exception(error):
|
|
|
+ traceback.print_exc()
|
|
|
+ return error_response(msg=str(error), http_code=200)
|
|
|
+
|
|
|
+# Generic error handler for uncaught exceptions
|
|
|
+@app.errorhandler(Exception)
|
|
|
+def handle_generic_exception(error):
|
|
|
+ traceback.print_exc()
|
|
|
+ return error_response(msg=str(error), http_code=500)
|
|
|
+
|
|
|
+# Specific error handler for 404 Not Found errors
|
|
|
+@app.errorhandler(404)
|
|
|
+def handle_404_error(error):
|
|
|
+ return error_response(msg="Resource not found", http_code=404)
|
|
|
+
|
|
|
+# Specific error handler for 400 Bad Request errors
|
|
|
+@app.errorhandler(400)
|
|
|
+def handle_400_error(error):
|
|
|
+ return error_response(msg="Bad Request", http_code=400)
|