Django

⌘K
  1. Home
  2. Django
  3. Websoket+Celery Project C...
  4. 2.3 AndroidSipAssoc API

2.3 AndroidSipAssoc API

AndroidSipAssoc মডেল ব্যবহার করে:

  • ✅ Android ডিভাইস ↔ SIP আইডি মেপিং সংরক্ষণ
  • ✅ GET /device-status/<sip_id>/ দিয়ে ডিভাইস স্ট্যাটাস দেখা

✅ Step 1: models.py

class AndroidSipAssoc(models.Model):
    android_id = models.CharField(max_length=50)
    sip_id = models.CharField(max_length=50)
    association_time = models.DateTimeField(default=timezone.now)

✅ Step 2: serializers.py

from .models import AndroidSipAssoc

class AndroidSipAssocSerializer(serializers.ModelSerializer):
    class Meta:
        model = AndroidSipAssoc
        fields = '__all__'

✅ Step 3: views.py

from .models import AndroidSipAssoc, User
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

# ✅ GET /device-status/<sip_id>/
class DeviceStatusView(APIView):
    def get(self, request, sip_id):
        assoc = AndroidSipAssoc.objects.filter(sip_id=sip_id).first()
        if not assoc:
            return Response({'message': 'Device not found for this SIP ID'}, status=status.HTTP_404_NOT_FOUND)

        user = User.objects.filter(deviceId=assoc.android_id).first()
        status_text = user.status if user else 'unknown'
        return Response({
            'deviceId': assoc.android_id,
            'status': status_text
        })

✅ Step 4: urls.py

from .views import DeviceStatusView

urlpatterns += [
    path('device-status/<str:sip_id>/', DeviceStatusView.as_view()),
]

🧪 উদাহরণ SIP ডেটা:

  • Android ID: android001
  • SIP ID: sip001

📤 Response:

{
  "deviceId": "android001",
  "status": "active"
}

✅ সারসংক্ষেপ:

EndpointMethodকাজ
/device-status/<sip_id>/GETডিভাইসের স্ট্যাটাস বের করে

How can we help?