2012-10-23 16 views
5

का उपयोग कर मैं वर्तमान में अपने अंतिम वर्ष की परियोजना योजना बना रहा हूँ मैं एक आवेदन जो आईपी और पाठ आधारित चैट (हालांकि नहीं "अगले स्काइप") से अधिक आवाज का समर्थन करता है बनाना चाहते थे। मैं वास्तव में वीओआईपी भाग प्राप्त करने के लिए हल्के तरीके से उपयोग करना आसान चाहता हूं और इसे कम से कम शुरू करने के लिए सुविधाओं की विस्तृत मात्रा की आवश्यकता नहीं है।सी ++ और वीओआईपी पी 2 पी

सुविधाओं मैं चाहता था की है कि यह एक सर्वर से जाना नहीं है, लेकिन यह है, क्योंकि मैं आवेदन के रिलीज के बाद एक सर्वर बनाए रखने के लिए नहीं करना चाहती। इसलिए यदि किसी को अपना आईपी देना संभव है और वे इसका उपयोग करने में शामिल हो जाएंगे तो बेहतर होगा।

मैं, जीयूआई के लिए क्यूटी ढांचे का उपयोग करने के लिए हालांकि यह बदला जा सकता है की योजना बना रहा हूँ और इसलिए भाषा (C++), इसलिए कुछ भी पत्थर में लिखा है सकते हैं। सॉफ्टवेयर विंडोज़ पर चलाएगा।

मैं एच .323, घूंट और कुछ अन्य खुला स्रोत पर ध्यान दिया है, लेकिन यह सिर्फ इतना में प्राप्त करने के लिए कठिन लगता है और मुझे लगता है कि क्या वे मैं उन्हें क्या करने की जरूरत क्या कर को समझ नहीं सकता।

किसी भी खुले स्रोत संग्रहालय मुझे लगता है कि इस पर गौर करना चाहिए आंशिक रूप से बात मैं चाहता है? कोई स्रोत जो मैंने याद किया है? मैं वीओआईपी दुनिया के लिए पूरी तरह से नया हूं और सही दिशा में धक्का का उपयोग कर सकता हूं। दोबारा यदि कोई ऐसी भाषा है जो इसे एक साधारण फैशन में करता है तो मैं बस स्विच कर सकता हूं क्योंकि मैं वर्तमान में एक नियोजन चरण में हूं। मुझे प्राप्त होने वाली किसी भी मदद के लिए धन्यवाद।

+0

[यह प्रश्न] (http://stackoverflow.com/questions/270524/does-anyone-now-of-a-good-simple-c-based-sip-stack-that-i-could-use) एसआईपी के साथ सौदा करता है, जिसे मैं वीओआईपी के लिए सबसे प्रचलित प्रोटोकॉल मानता हूं। मुझे पी 2 पी बनाम सर्वर के साथ चिंता नहीं है। पी 2 पी क्लाइंट/सर्वर का सिर्फ एक विशेष मामला है। – paddy

+0

आप किस गुणवत्ता स्तर चाहते हैं? (सभ्य वीओआईपी बहुत जरूरत है [क्यूओएस टैगिंग] (http://www.cse.wustl.edu/~jain/refs/ipqs_ref.htm))। क्या आप एनएटी उपकरणों में मशीनों का समर्थन करना चाहते हैं? (यदि ऐसा है, तो आप [टर्न] (http://tools.ietf.org/html/rfc5766) और [STUN] (http://tools.ietf.org/html/rfc5389) में देखना चाहते हैं, के लिए शुरुआत)। आप शायद [एक्सएमपीपी] (http://xmpp.org/) को भी देखना चाहते हैं।ओह, लगभग भूल गया: टर्न/स्टन का समर्थन करने के लिए एनएटी राउटर को कॉन्फ़िगर करने के लिए, आप आमतौर पर [यूपीएनपी] (http://upnp.org/specs/gw/igd1/) का उपयोग करते हैं। –

+0

मुझे सर्वोत्तम से सर्वश्रेष्ठ की आवश्यकता नहीं है, जब तक गुणवत्ता सुनने के लिए पर्याप्त सभ्य है कि लोग क्या कह रहे हैं। असल में सिर्फ नौकरी करता है। मैंने एनएटी टीबीवी भी नहीं माना है ... मुझे इसे पढ़ने की आवश्यकता है और कुछ मुझे लगता है :) –

उत्तर

1

सबसे पहले मैंने कुछ महीने पहले अपनी कंपनी के लिए कुछ ऐसा ही लागू किया था।

सबक सीखा:

1. you can't just pass IPs around and expect the users to like that over skype. 
    Solution: 
     a. You will need your own server with the necessary ports forwarded. You will have to use some sort of firewall hole punching algorithm(take a look at UDP hole punching). 

2. Using existing VoIP library is always better. Downside? You can't write proprietary code using opensource library. Hence you will need to learn H.323 and RTCP/RTP protocol. 

3. You will need to write echo reduction algorithms for voice. 

4. COMPRESS your audio data before sending it to another computer. PCM data can and will clog your network, delaying sound and fuzzing up everything in the process. 
Use aLaw and uLaw compression schemes. 

5. Make sure you take care of all the error conditions. Multimedia over network can be tricky if not really hard to implement. 

6. DONT USE QT. Use a platform specific framework like .NET and libraries that deal with sound (NAudio). 

मुझे लगता है कि इस समस्या है जब आप पहली बार हल करने के लिए, वीओआईपी प्रोग्रामिंग की कला में जाने पर पहले की आवश्यकता होगी योग होगा।

आपके प्रश्न के लिए, आपकी समस्या बहुत छोटी है।

1. You don't need echo reduction algorithms IF you use headsets. 
2. You don't need to write hole punching algorithms if you're OK with passing IPs around. Take a look at NAT traversal(UPnP?) if the data is suppose to go on a network and to a computer that isn't on your LAN. 

FLOW: 
COMPUTER1->DATABUFFER->COMPRESSuLaw/aLaw->NETWORK->DECOMPRESSuLaw/aLaw->OTHERCOMPUTER 
and vice versa. 

गुड लक :)

+0

कृपया एक लॉ/यूएलओ का उपयोग न करें। ओपस का प्रयोग करें! http://www.opus-codec.org/downloads/ –

2

मैं PJSIP की सिफारिश करेंगे। http://www.pjsip.org/

PJSIP एसआईपी और आप के लिए ऑडियो संभाल लेंगे। (यह भी STUN है!)

मुझे दूसरे उत्तर, DO क्यूटी का उपयोग करने से असहमत होना होगा। यहां "मूल" जाने का कोई कारण नहीं है। न केवल पीजेएसआईपी आपके लिए ऑडियो संभाल सकता है, लेकिन कई अन्य क्रॉस-प्लेटफॉर्म ऑडियो लाइब्रेरी भी हैं।

आईपी के आसपास गुजरने के संबंध में ... यदि आप लैन पर इसका उपयोग करना चाहते हैं तो मैं अन्य उपयोगकर्ताओं को खोजने के लिए यूडीपी प्रसारण का उपयोग करने की सलाह दूंगा (और यूआई में अपना उपयोगकर्ता नाम परिभाषित करने के लिए एक जगह है ताकि उपयोगकर्ता पहचान सकें एक दूसरे)। क्यूटी में पूरा करना बहुत आसान है।

संबंधित मुद्दे