Claude agentlarining xotira arxitekturasi: tushunish, orzu va amaliy sinovlar
Claude AI agentlarining xotira komponentlari, orzu jarayoni, uzluksiz o‘rganish sinovlari va amaliy natijalarini tahlil qiluvchi chuqur maqola.

OpenAI yaqinda GPT-Live platformasiga yangi imkoniyat qo'shdi: SIP trunk orqali chiqish (outbound) telefon qo'ngiroqlarini amalga oshirish. Bu yangilik nafaqat korporativ mijozlar, balki kichik startaplar ham o'z ovozli xizmatlarini AI bilan birlashtirishga imkon beradi.
SIP (Session Initiation Protocol) - internet orqali ovozli va video aloqalarni boshqarish uchun keng qo'llaniladigan protokol. OpenAI bu protokolni TLS (Transport Layer Security) bilan himoyalangan signalizatsiya va SRTP (Secure Real-time Transport Protocol) bilan shifrlangan audio oqimi uchun qo'llaydi. Natijada, foydalanuvchi ma'lumotlari va ovozli kontent xavfsiz uzatiladi.
123456789101112131415{
"object": "event",
"id": "evt_abc123",
"type": "live.transport.incoming",
"created_at": 1750287018,
"data": {
"type": "sip",
"session_id": "live_123",
"sip_headers": [
{ "name": "From", "value": "sip:+14155550123@sip.example.com" },
{ "name": "To", "value": "sip:+18005550100@sip.example.com" },
{ "name": "Call-ID", "value": "call-123@example.com" }
]
}
}
Platforma ikki turdagi qo'ngiroqlarni qo'llab-quvvatlaydi: kiruvchi (incoming) va chiqish (outbound). Kiruvchi qo'ngiroq kelganda, OpenAI webhook orqali live.transport.incoming hodisasini yuboradi. Backend bu webhookni tasdiqlaydi, imzo tekshiradi va qo'ngiroqni qabul yoki rad etish qarorini beradi.
123456789{
"session": {
"type": "live",
"model": "gpt-live-1",
"instructions": "You are answering an inbound support call.",
"audio": { "output": { "voice": "marin" } },
"delegation": { "type": "client" }
}
}
Chiqish qo'ngirogida esa, backend /v1/live/sessions endpointiga POST so'rovi yuboradi, telefon raqamini E.164 formatida ko'rsatadi va SIP trunk ma'lumotlarini birga uzatadi. Bu jarayonda kiruvchi webhook yoki qabul so'rovi talab qilinmaydi.
123456789101112131415161718192021222324252627jq -n \
--arg username "$SIP_USERNAME" \
--arg password "$SIP_PASSWORD" \
'{
"session": {
"model": "gpt-live-1",
"instructions": "Help the user schedule an appointment.",
"audio": { "output": { "voice": "marin" } },
"delegation": { "type": "client" }
},
"transport": {
"type": "sip",
"destination": "+14155550123",
"trunk": {
"provider_url": "sips:sip.example.com:5061",
"auth": {
"type": "digest",
"username": $username,
"password": $password
},
"caller_number": "+14155550100"
}
}
}' | curl https://api.openai.com/v1/live/sessions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @-
sip:PROJECT_ID@sip.api.openai.com;transport=tls shaklida kiritish kerak.live.transport.incoming hodisasiga obuna bo'ladigan endpointni belgilash./v1/live/sessions/{session_id}/accept so'rovi bilan sessiyani tasdiqlash, ovoz modelini (gpt-live-1) va ovoz variantini (masalan, marin) belgilash.wss://api.openai.com/v1/live/sessions/{session_id}/attach manziliga ulanib, transkript, delegatsiya, vositalar va qo'shimcha buyruqlarni uzatish./reject endpointi orqali SIP status kodini (masalan, 486 – busy) yuborish.SIP audio oqimini tashiydi, lekin transkript, vosita chaqiruvlari va boshqa interaktiv elementlar sideband WebSocket orqali amalga oshiriladi. Bu ikki qatlamli arxitektura bir vaqtning o'zida real vaqtli ovozli suhbat va AI yordamchi funksiyalarini qo'llab-quvvatlaydi.
1234{
"session": { "id": "live_123" },
"transport": { "type": "sip" }
}
Avvalgi AI ovozli platformalar, masalan, Google Dialogflow yoki Amazon Connect, o'zlarining maxsus SIP gateway yoki telekom provayderi integratsiyasini talab qilgan. OpenAI ning yondashuvi standart SIP trunk va TLS/SRTP protokollariga asoslanadi, bu esa ko'proq provayderlar bilan mos keladi va qo'shimcha konfiguratsiya xarajatlarini kamaytiradi.
POST https://my_website.com/webhook_endpoint
user-agent: OpenAI/1.0 (+https://platform.openai.com/docs/webhooks)
content-type: application/json
webhook-id: wh_685342e6c53c8190a1be43f081506c52 # unique id for idempotency
webhook-timestamp: 1750287078 # timestamp of delivery attempt
webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= # signature to verify authenticity from OpenAI
{
"object": "event",
"id": "evt_685343a1381c819085d44c354e1b330e",
"type": "realtime.call.incoming",
"created_at": 1750287018, // Unix timestamp
"data": {
"call_id": "some_unique_id",
"sip_headers": [
{ "name": "From", "value": "sip:+142555512112@sip.example.com" },
{ "name": "To", "value": "sip:+18005551212@sip.example.com" },
{ "name": "Call-ID", "value": "03782086-4ce9-44bf-8b0d-4e303d2cc590"}
]
}
}
live.call.incoming kabi eskirgan hodisalar hali ham ba'zi integratsiyalarda ko'rinishi mumkin; migratsiya strategiyasi ishlab chiqilishi zarur.Bu funksional imkoniyat quyidagi foydalanuvchilarga mo'ljallangan:
1
2
3
4
5
6
7
8curl -X POST "https://api.openai.com/v1/realtime/calls/$CALL_ID/accept" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "realtime",
"model": "gpt-realtime-2.1",
"instructions": "You are Alex, a friendly concierge for Example Corp."
}'
OpenAI kelajakda SIP trunk orqali video qo'ngiroqlarni ham qo'llab-quvvatlashni rejalashtirishi mumkin, bu esa multimediya asosidagi mijoz tajribasini yanada boyitadi. Shuningdek, SRTP o'rniga ZRTP yoki DTLS‑SRTP kabi yanada kuchli shifrlash protokollarini joriy etish xavfsizlik darajasini oshiradi.
1
2
3
4curl -X POST "https://api.openai.com/v1/realtime/calls/$CALL_ID/reject" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"status_code": 486}'
OpenAI ning SIP trunk orqali chiqish qo'ngiroqlari funksiyasi AI ovozli xizmatlarni kengaytirish uchun muhim qadam hisoblanadi. Standart protokollar, xavfsiz TLS/SRTP aloqasi va sideband WebSocket integratsiyasi birgalikda kuchli, moslashuvchan va xavfsiz platformani yaratadi. Dasturchilar va biznes egalari bu imkoniyatni o'z tizimlariga qo'shish orqali mijozlarga yanada samarali va interaktiv ovozli tajriba taqdim etishlari mumkin.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16import WebSocket from "ws";
const callId = "rtc_u1_9c6574da8b8a41a18da9308f4ad974ce";
const ws = new WebSocket(`wss://api.openai.com/v1/realtime?call_id=${callId}`, {
headers: {
Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
},
});
ws.on("open", () => {
ws.send(
JSON.stringify({
type: "response.create",
})
);
});
Asl manba: developers.openai.com