SIP -protokolla
Löytyykö jostain mahdollisimman selkeää esitystä aiheesta, josta selviäisi, mitä kaikkea omatekoisessa ohjelmassa pitää tehdä, jotta tuloksena olisi toimiva SIP -protokollaa käyttävä nettipuheluohjelma?
Löytyykö jostain mahdollisimman selkeää esitystä aiheesta, josta selviäisi, mitä kaikkea omatekoisessa ohjelmassa pitää tehdä, jotta tuloksena olisi toimiva SIP -protokollaa käyttävä nettipuheluohjelma?
Vastaukset 2
Vanhimmat
... lukemalla. Mm... RTP, MIME, SIP ja paljon muuta. ( http://www.packetizer.com/ipmc/sip/standards.html ) Ja kokeilemalla. Ja katsomalla vaikka miten avoimen lähdekoodin Asteriskissa ja Ekiga softphonessa on asiat hoidettu. Ja maksamalla mahdolliset patenttilisenssit käytetyistä puhekoodekeista. Jos mm. ADPCM tai PCM kelpaa, sitten ei tarvitse... edellyttäen, että toinen osapuoli ei vaadi jotain patentoitua koodekkia.
Jos teet oman alusta, saat ehkä vuodessa-parissa jotain toimivaa aikaseksi.
UDP / RTP / GSM 6.10
Kokeilin tutkia WireSharkilla SL Nettipuhelin -ohjelman yhteyttä.
UDP -paketit sisältävät 45 tavua dataa / paketti.
45 ???
GSM 6.10 koodekin paketit pitäisi olla 32.5 tavua pitkiä.
Koska tietokoneet yleensä käsittelevät kokonaisia tavuja, niin tuosta 32.5:stä on sitten olemassa 2 eri sovellusta:
GSM -verkossa äänipuheluissa käytettävä systeemi, jossa 1 paketti = 33 tavua (josta siis 4 bittiä ovat aina nollia), ja näitä paketteja tulee 50 kpl/sekunti/suunta.
Toisena tapana on sitten ns. MS-GSM, jossa aina 2 tuollaista 32.5 tavun pakettia on yhdistetty 65 tavun paketeiksi, joita siis liikkuu 25 kpl/sekunti/suunta.
Mutta eihän 45 ole jaollinen 32.5:llä Itai edes 33:lla) ?
Vai olisiko tuossa 33 12=45 tavua, eli 33 tavua audiodataa GSM 6.10 koodekilla koodattuna ja 12 tavua joitain otsikoita, joiden avulla ehkä varmistetaan, että ko. paketit kuuluvat samaan streamiin ja ehkä sisältävät niiden järjestysnumeron ?
Ai että koodaanko "alusta saakka"... Noh, onhan noita SIP -protokollakomponentteja, mutta eräskin kertoo lyhyessä ja epäselvässä ohjeessaan seuraavaa:
"Read the class comment on TIdSipStackConfigurator. Decide on what
configuration you want, put that configuration in a TStrings, and
invoke TIdSipStackInterface.Create with that TStrings."
Siis? Mikä ihmeen konfiguraatio?
Saunalahden nettipuhelimen ohjeet taas kertovat seuraavaa muiden kuin Saunalahden oman nettipuhelinohjelman käytöstä:
lainaus:
http://saunalahti.fi/tuki/voip/
Käyttö VoIP-puhelimella
Yleiset asetukset VoIP-puhelimiin ja ATA-sovittimiin:
Käytettävä protokolla: SIP
Domain: voip.saunalahti.fi
Proxy: voip.saunalahti.fi
STUN: ei käytössä (emme suosittele STUNin käyttöä, koska NAT ohitetaan palvelintekniikalla)
Username: puhelinnumero (091234.. -muodossa)
Auth username (joissakin sovelluksissa): ei tarvita tai sama kuin username
Password: salasanasi (VoIP-liittymän tilauksen yhteydessä antamasi salasana)
WireShark -ohjelman dumpeista voi yrittää lukea hieman, minkä näköistä dataa verkossa liikkuu, mutta se ei suoraan vastaa tuohon konfiguraatioasiaan, että mitä tuohon TStrings -komponenttiin pitäisi laittaa.
Omatekoisessa ohjelmassahan tuo on yleensä TStringList, joka toki on TStrings -luokasta periytetty (näin siis Delphi sekä C Builder).