के माध्यम से तत्काल संदेश कैसे भेजें मेरे पास मेरे मोबाइल नेटवर्क प्रदाता द्वारा बनाई गई एक विंडोज़ डेस्कटॉप एप्लिकेशन है, जो एसआईपी के साथ सभी प्रकार की चीजें करता है: कॉल, संदेश भेजें, आदि। इस ऐप को सफलतापूर्वक MESSAGE
कैसे भेजता है स्क्रीनशॉट (पिछले 4 लाइनों): एसआईपी
MESSAGE
अनुरोध, डेस्कटॉप एप्लिकेशन से, (पीछे से 4 लाइन) के रूप में भेजा जाता है:
MESSAGE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP LOCALIP:2112;branch=z9hG4bK-d8754z-905183245f478c76-1---d8754z-;rport
Max-Forwards: 70
To: "TO"<sip:TO[email protected]>
From: "FROM"<sip:[email protected]>;tag=63088d09
Call-ID: NGVhMDJhYzQwNmExOTQyNThmNjc5OGNmOTViNDUyYWM.
CSeq: 2 MESSAGE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: text/plain
Content-Length: 4
test
और उस के लिए सफल प्रतिक्रिया है:
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP LOCALIP:2112;received=EXTERNALIP;branch=z9hG4bK-d8754z-905183245f478c76-1---d8754z-;rport=2112
To: "TO"<sip:[email protected]>;tag=c005f0e30133ec730add76fc91f4bea
From: "FROM"<sip:[email protected]>;tag=63088d09
Call-ID: NGVhMDJhYzQwNmExOTQyNThmNjc5OGNmOTViNDUyYWM.
CSeq: 2 MESSAGE
Content-Length: 0
Proxy-Authenticate: Digest nonce="3F178051B97E1F5200A3C53D4B",realm="DOMAIN",algorithm=MD5,qop="auth"
तो मैं PHP से समान भेजने के लिए (और एन-रूपों) अनुरोध के लिए प्रयास है, लेकिन मैं हमेशा SIP/2.0 407 Proxy Authentication Required
के बजाय SIP/2.0 403 Forbidden
प्राप्त करते हैं:
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP LOCALIP;received=EXTERNALIP
To: "TO"<sip:[email protected]>;tag=aprqngfrt-f7ccjj0000020
From: "FROM"<sip:[email protected]>;tag=8f7be81d
Call-ID: [email protected]
CSeq: 1 MESSAGE
Reason: Q.850;cause=55;text="Call Terminated"
Content-Length: 0
अजीब हिस्सा है, अगर मैं REGISTER
अनुरोध भेजने के यह काम करता है कि, और मैं सफलतापूर्वक SIP/2.0 401 Unauthorized
शीर्षलेख WWW-Authenticate
के साथ प्राप्त करता हूं। मैं प्राधिकरण का पुनर्मूल्यांकन करता हूं, और इसे पुनः भेजता हूं। तब मुझे SIP/2.0 200 OK
प्राप्त होता है। MESSAGE
के साथ यह कैसे काम करना चाहिए।
क्या गलत हो सकता है? मुझसे क्या छूट गया? क्या MESSAGE
अनुरोध से पहले किसी अन्य अनुरोध की आवश्यकता है (मैंने पहले ही REGISTER
पहले से कोशिश की है)?
मैंने RFC 3428 को ऊपर और नीचे पढ़ा है, सभी उदाहरणों को संभवतः प्रयास किया है, लेकिन सफलता के बिना।
मैं कोई 'एसआईपी' विशेषज्ञ नहीं हूं और ऐसा लगता है कि आप जानते हैं कि आप क्या कर रहे हैं। मैं बस इतना कह सकता हूं कि अगर आपको लगता है कि आप किसी अन्य लॉक के बिना अन्य सॉफ़्टवेयर (जो काम करता है) की तरह कर रहे हैं, तो मैं कहूंगा कि आप उन चीज़ों के लिए जा सकते हैं जो आप अलग-अलग कर सकते हैं। शायद चरित्रों का मिलान मिस्चैच एक अच्छी शुरुआत हो सकता है, जैसे '\ n' बनाम \ n \ r'। – Mehran
@Mehran: मुझे नहीं लगता कि विभिन्न प्रकार की "नई लाइनें" कोई फर्क नहीं पड़ेगी, क्योंकि 'रजिस्ट्रार' विधि काम कर रही है। यदि मैं, उदाहरण के लिए, अनुरोध से 'सीएसईक्यू' हेडर को हटा दें, एसआईपी सर्वर 'एसआईपी/2.0 400 गुम सीएसईक हेडर' लौटाता है ... यह मुझे बताता है कि संचार ठीक है। मुझे लगता है कि 'संदेश' विधि सही भेजी गई है, यह कुछ और होना चाहिए; ( –