from flask import Flask, request, jsonify
import pjsua as pj
import threading

app = Flask(__name__)

# CONFIG ZADARMA
SIP_DOMAIN = "sip.zadarma.com"
SIP_USER = "549318-100"
SIP_PASS = "TON_PASSWORD"

lib = pj.Lib()
current_call = None

def init_sip():
    global lib, acc

    lib.init(log_cfg=pj.LogConfig(level=3))
    transport = lib.create_transport(pj.TransportType.UDP)
    lib.start()

    acc_cfg = pj.AccountConfig(SIP_DOMAIN, SIP_USER, SIP_PASS)
    acc = lib.create_account(acc_cfg)

threading.Thread(target=init_sip).start()


# 📞 APPEL SORTANT
@app.route("/call", methods=["POST"])
def call():
    global current_call
    number = request.json.get("number")

    uri = f"sip:{number}@{SIP_DOMAIN}"

    current_call = acc.make_call(uri)

    return jsonify({"status": "calling", "number": number})


# ❌ RACCROCHER
@app.route("/hangup", methods=["POST"])
def hangup():
    global current_call

    if current_call:
        current_call.hangup()
        current_call = None

    return jsonify({"status": "hangup"})


# 📥 STATUS
@app.route("/status")
def status():
    if current_call:
        return jsonify({"status": "in_call"})
    return jsonify({"status": "idle"})


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)