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"
}
✅ সারসংক্ষেপ:
| Endpoint | Method | কাজ |
|---|---|---|
/device-status/<sip_id>/ | GET | ডিভাইসের স্ট্যাটাস বের করে |