पोस्ट में टिप्पणियों में बात करने के
बाद , मुझे एहसास हुआ कि हर कोई ब्राउज़र में एसआईपी के सिद्धांत को पूरी तरह से नहीं समझता है। इसलिए, मैंने इस विषय को प्रकट करने के लिए एक छोटा लेख लिखने का निर्णय लिया, जहां सामान्य शब्दों में लिखा जाए।
अभिनेता:
HTTP सर्वर
उसके लिए कुछ विशेष आवश्यक नहीं है, केवल HTTP प्रोटोकॉल के लिए समर्थन है।
एसआईपी सर्वर
सामान्य एसआईपी प्रोटोकॉल के अलावा - यूडीपी, टीसीपी, टीएलएस,
वेबसोकेट समर्थन की आवश्यकता है। WebSocket एक बहुत ही सरल प्रोटोकॉल है, यह निम्नानुसार काम करता है:
- क्लाइंट टीसीपी या टीएलएस के माध्यम से सर्वर से जुड़ता है
- एक HTTP अनुरोध भेजता है जिसमें एक संकेत होता है कि ग्राहक WebSocket पर स्विच करना चाहता है
- सर्वर 101 प्रोटोकॉल स्विचिंग के साथ प्रतिक्रिया करता है
- WebSocket कनेक्शन डुप्लेक्स मोड में डेटा ट्रांसफर के लिए तैयार है, यह व्यावहारिक रूप से टीसीपी है जो ट्रांसमिट डेटा के प्रत्येक ब्लॉक के लिए एक छोटे हेडर के साथ है
कुछ SIP संदेश हेडर में ट्रांसपोर्ट लेयर प्रोटोकॉल जानकारी होती है, उदाहरण के लिए:
Via: SIP/2.0/UDP 192.168.1.1;branch=z9hG4bKyQz1234567
और चूंकि
SIP पर मुख्य दस्तावेज़ में WebSocket का वर्णन नहीं किया गया है, एक
एक्सटेंशन की आवश्यकता थी, यह अभी तक एक मानक नहीं है, लेकिन इसका उपयोग पहले से ही किया जा सकता है। इस दस्तावेज़ में rfc3261 के लिए कोई मूलभूत परिवर्तन नहीं हैं, अधिकांश भाग के लिए यह केवल स्पष्ट चीजों को हल करता है, उदाहरण के लिए, इस तरह के एक शीर्ष लेख:
Via: SIP/2.0/ WS df7jal23ls0d.invalid ;branch=z9hG4bKyQz1234567
ब्राउज़र
यहां सब कुछ अधिक जटिल है, प्रौद्योगिकियों का एक पूरा गुच्छा आवश्यक है: एक SIP सर्वर से कनेक्ट करने के लिए WebSocket; एसआईपी स्टैक जिसे जावास्क्रिप्ट में लागू किया जा सकता है; ऑडियो और वीडियो प्रसारण के लिए WebRTC।
यह कैसे काम करता है
यह पहले से ही शायद स्पष्ट है, पूरी योजना का आकर्षण यह है कि इसके लिए किसी प्रोटोकॉल समन्वयक एजेंटों की आवश्यकता नहीं है। ब्राउज़र में क्लाइंट एक पूर्ण भागीदार है और किसी भी एसआईपी सर्वर के साथ सीधे संपर्क करता है, और किसी भी क्लाइंट, उदाहरण के लिए, एक हार्ड आईपी फोन के साथ। एकमात्र आवश्यकता WebRTC कोडेक्स के लिए समर्थन है।
परीक्षा कैसे दें
मुझे इस बारे में जानकारी नहीं मिल सकी कि क्या तारांकन वेबस्केट के माध्यम से संवाद कर सकता है। लेकिन WebSocket समर्थन के साथ अन्य SIP सर्वर हैं, बेशक वे कार्यक्षमता में हीन हैं, लेकिन यह परीक्षण के लिए पर्याप्त है। उदाहरण के लिए, Windows के लिए एक
सर्वर , जो 3.2 संस्करण के साथ शुरू होता है, WebSocket का समर्थन करता है और यहां तक कि इसमें अंतर्निहित HTTP सर्वर भी है।