View Full Version : [SIP] impostazione messaggio REGISTER
Ciao a tutti, sto cercando di fare un client Sip in modo da inviare delle chiamate. per adesso sono ancora all'inizio e ho creato un pezzo di codice java dove tramite socket spedisco il messaggio di registrazione presso un server Voip ( in questo caso asterisk).
Il tutto è così organizzato:
---pc portatile dove c'è il codice java tramite il quale invio la richiesta di REGISTER
---pc fisso dove è installato asterisk (su winXp) che serve per ricevere la richiesta di registrazione.
ovviamente entrambi i pc sono nella stessa sottorete.
Inoltre posto qua sotto come ho impostato la richiesta di REGISTER:
"REGISTER sip:192.168.1.107 SIP/2.0\r\n" +
"CSeq: 10 REGISTER\r\n" +
"Via: SIP/2.0/UDP 192.168.1.102:5060;branch=z9hG4bKcdb10d3435e84f30b9db93d3c586600a;rport\r\n" +
"User-Agent: Ekiga/3.2.6\r\n"+
"From: <sip:
[email protected]>;tag=50e55856-7fe2-df11-84da-00166f29b76e\r\n" +
"Call-ID: 2537450899@"+name_host+"\r\n"+
//"auth=test:
[email protected]\r\n"+
"To: <sip:
[email protected]>\r\n" +
"Contact: <sip:
[email protected]>;q=1\r\n"+
"Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,INFO\r\n"+
"Expires: 3600\r\n"+
"Content-Length: 0\r\n"+
"Max-Forwards: 70\r\n"+
"\r\n";
Infine ho modificato il file di asterisk ( sip.conf ) aggiungendo al fondo un utente:
[test]
type=friend
username=test
secret=test
host=dynamic
Con questa configurazione riesco a mandare il pacchetto però non mi viene autorizzata la registrazione.
ho inoltre usando ekiga sul pc portatile in modo da effettuare la registrazione tramite ekiga sempre su asterisk riesco ad ottenere la registrazione, quindi ciò significa che asterisk è settato in modo corretto penso!
Inoltre ho sniffato i pacchetti tramite wireshark in modo da vedere come era impostata la REGISTER inviata da ekiga e ricopiarla nel mio codice java....ma questo a quanto pare non è servito a molto in quanto non mi viene ancora autorizzata la registrazione!
qualcuno ha qualche idea o sa suggerirmi qualcosa??
grazie ragazzi
dawid999
31-10-2010, 10:30
Ciao,
quando sei in console asterisk (asterisk -r) puoi lanciare:
sip debug ip IP_MACCHINA_CLIENT
in questo modo puoi tracciare lo scambio dei pacchetti direttamente sulla console che secondo me è piu comodo.
Nelle prime prove puoi rimuovere "secret" dalla conf dell'utente cosi rendi le cose piu semplici (sip reload per ricaricare la nuova configurazione).
Facendo questo riesci a postare prima lo scambio dei pacchetti completo tra ekiga e asterisk e poi quello tra il tuo client ed asterisk?
ciao grazie mille per la risposta...ho dato i comandi che dicevi tu su asterisk e inoltre ho dato anche "set verbose 10" e "set debug 10" in modo da vedere meglio ciò che non andava. Inoltre ho provato a togliere la password al file di configurazione di asterisk e ho notato che la registrazione va a buon fine!!
Ho notato però che quando eseguo il client java da linux ubuntu, con wireshark ricevo solo i 3 pacchetti SIP, mentre quando avvio il client sip java su windows ricevo anche altri 2 pacchetti ICMP ( destination unreachable ) e inoltre non capisco perchè ma il mio client java non riceve più niente nonostante i pacchetti girano nella rete! comunque ti mando i file in allegato zip.
ciao e grazie ancora
dawid999
31-10-2010, 19:37
trovato il problema.
controlla bene il trace sip di ekiga:
1)ekiga manda la richiesta di registrazione
2)asterisk risponde 100 (sto verificando)
3)asterisk risponde 401 che indica uno stato di non autorizzato in quanto nel punto 1 la richiesta di registrazione non conteneva i dati di autentificazione
4)a questo punto ekiga rimanda la stessa registrazione del punto 1 ma con un header leggermente differente, infatti puoi notare il seguente campo:
Authorization: Digest username="test", realm="asterisk", nonce="41ab5f99", uri="sip:192.168.1.107", algorithm=MD5, response="6a0abae62541274e3476ddacc5d9efdb"
il trace sip del tuo client è quasi identico fino al punto 3 ma quando asterisk ti nega la registrazione è perchè nel tuo register non c'era l'authorization ma un campo non riconosciuto:
auth:test:
[email protected]
Expert Info (Note/Undecoded): Unrecognised SIP header (auth)
A livello di client dovresti gestire l'eccezione di una risposta 401 in modo da rimandare la richiesta di registrazione fornendo il pacchetto con l'header corretto.
ps: da rfc3261:
20.7 Authorization
The Authorization header field contains authentication credentials of
a UA. Section 22.2 overviews the use of the Authorization header
field, and Section 22.4 describes the syntax and semantics when used
with HTTP authentication.
Once credentials have been located, any UA that wishes to
authenticate itself with a UAS or registrar -- usually, but not
necessarily, after receiving a 401 (Unauthorized) response -- MAY do
so by including an Authorization header field with the request. The
Authorization field value consists of credentials containing the
authentication information of the UA for the realm of the resource
being requested as well as parameters required in support of
authentication and replay protection.
An example of the Authorization header field is:
Authorization: Digest username="bob",
realm="biloxi.com",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
uri="sip:
[email protected]",
qop=auth,
nc=00000001,
cnonce="0a4f113b",
response="6629fae49393a05397450978507c4ef1",
opaque="5ccc069c403ebaf9f0171e9517f40e41"
When a UAC resubmits a request with its credentials after receiving a
401 (Unauthorized) or 407 (Proxy Authentication Required) response,
it MUST increment the CSeq header field value as it would normally
when sending an updated request.
Grazie della risposta....lo stavo notando anche io questo particolare, però mi è stato detto che teoricamente dovrebbe accettare la registrazione anche senza autenticazione cifrata(MD5), infatti a questo punto mi conviene non mettere la password così non ho questo problema; altrimenti devo gestire il primo pacchetto 401 (non autorizzato), e a quanto ho capito devo ricostruire una Register però con un campo nuovo: Authorization composto dallo stesso valore di nonce che c'è nel pacchetto precedente con risposta 401; inoltre c'è anche un altro parametro "response" composto da una sequenza che sembra una stringa MD5 che però non so come ottenere!
Stavo però provando almeno a riuscire a prendere il valore di nonce del pacchetto 401 e stavo pensando in java come potrei fare a leggere da una stringa, tipo una specie di "sscanf() di C!
provo comunque a postare nel forum d java questo problema.
Grazie ancora dell'interessamento e delle risposte
dawid999
31-10-2010, 23:20
la response viene costruita nel seguente modo (prendo come esempio l'authorization del tuo dump citato sopra):
1) md5sum di utente:realm:password
2) md5sum di tipo_di_richiesta:uri
3 md5sum di primo_md5sum:nonce:secondo_md5sum
l'output che ottieni è il campo response che stavi cercando :)
se vuoi provare con la shell linux puoi fare cosi:
echo -n test:asterisk:test|md5sum
412325717cf44c1b4a628b2742d096a9 -
echo -n REGISTER:sip:192.168.1.107|md5sum
6d949cc6a4174c6fe87c21634c98eb0a -
echo -n 412325717cf44c1b4a628b2742d096a9:41ab5f99:6d949cc6a4174c6fe87c21634c98eb0a|md5sum
6a0abae62541274e3476ddacc5d9efdb -
se provi a controllare l'hash finale (6a0abae62541274e3476ddacc5d9efdb) è identico a quello presente nel campo response del pacchetto di ekiga :)
quando generi hash in questo modo non scordarti il parametro -n al comando echo che evita la newline altrimenti sarà tutto sballato.
ps: relativamente alla copia del valore di nonce non saprei darti una risposta (non so nulla di java :) )ma non dovrebbe essere particolarmente impegnativo,con un opportuna espressione regolare dovresti poterla matchare
wow....grazie mille per questa informazione...per quanto riguarda il problema di java sono riuscito a risalire al nonce anche se in maniera abbastanza grezza e ho impostato la nuova REGISTER però ovviamente senza il campo response perchè non sapevo come ottenerlo, infatti la risposta da parte di asterisk è:
SIP/2.0 403 Forbidden (Bad auth)
From: <sip:
[email protected]>
To: <sip:
[email protected]>;tag=as1a02a93a
Call-ID: 2537450899
CSeq: 2 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Content-Length: 0
che a quanto pare sia per un errato login...infatti asterisk mi dice proprio wrong password!!
proverò a predere il valore realm e a generare il response e vediamo come andrà!
ti ringrazio molto per questa risposta...domani proverò il tutto se avrò tempo e ti faccio sapere...
grazie ancora
ciao, ho provato a inserire nella seconda register anche il parametro response calcolato come mi hai suggerito, ma purtroppo ancora non riesco ad ottenere l'autorizzazione!! eppure la richiesta mi sembra quasi identica a quella inviata da ekiga, apparte il parametro Via che non metto perchè altrimenti asterisk mi scarta tutti i pacchetti e non risponde niente bloccando il client!
Inoltre noto che nella prima register di ekiga, non viene inviato il parametro "auth"; se io però non effettuo l'invio di questo parametro, asterisk non mi ritorna il nonce, quindi non posso comporre il campo Authorization!!
Comunque per vedere meglio la sessione allego sotto i pacchetti della mia ultima register.
ciao e grazie ancora
dawid999
02-11-2010, 12:50
ciao,
credo che il problema sia la response generata dal tuo client, facendo la procedura manualmente ottengo un hash differente:
echo -n test:asterisk:test|md5sum
412325717cf44c1b4a628b2742d096a9
echo -n REGISTER:sip:192.168.1.107|md5sum
6d949cc6a4174c6fe87c21634c98eb0a
echo -n 412325717cf44c1b4a628b2742d096a9:78b5eab5:6d949cc6a4174c6fe87c21634c98eb0a|md5sum
16c39bdf606e0b0586252ef7b4166f4a
occhio a spazi vuoti e/o maiuscole/minuscole come nel caso della parola REGISTER
ohhhhhhh yeahhhhhh....sisi avevo notato anche io poco fa....avevo scordato di inserire il nonce tra le due stringhe ottenute con md5 infatti veniva diverso...
perfetto adesso funziona e mi da l'OK!
grazie mille del supporto....
dawid999
02-11-2010, 15:07
di nulla :)
se non sono troppo curioso è qualche progetto per il lavoro o solo un proof of concept per soddisfare la propria curiosità?:)
si in realtà è per un progetto per il tirocinio, però avendo appena iniziato, ancora non capivo bene come funzionava...però piano piano ci sto arrivando...
tu ti occupi di queste cose per lavoro o le hai imparate per curiosità personale??
grazie ancora dell'aiuto!
dawid999
02-11-2010, 16:00
per lavoro, ormai sono piu di 3 anni che guardo passare questi pacchetti, da lunedi a venerdi :)
Ciao visto che vedi questi pacchetti tutti i giorni...dai un'occhiata a come ho impostato la INVITE:
"INVITE sip:"+number_dest+"@"+addr_dest+"\r\n"+
"Via: Sip/2.0/UDP "+addr_src+":5060;branch=z9hG4bKF58\r\n" +
"From: <sip:"+number_src+"@"+addr_dest+">\r\n" +
"To: <sip:"+number_dest+"@"+addr_dest+"\r\n"+
//"Date: Mon, 16 Apr 2007 16:29:23 GMT\r\n"+
"Call-ID: 7813A33A-EB6E11DB-A8D6A80C-51810900@"+addr_src+"\r\n"+
"CSeq: 101 INVITE\r\n"+
//"Supported: 100rel,timer\r\n"+
//"Min-SE: 1800\r\n"+
//"Cisco-Guid: 2014312576-3949859291-2286288913-550194080\r\n"+
"User-Agent: My_pc\r\n"+
"Expires: 180\r\n"+
"Content-Type: application/sdp\r\n"+
"Content-Length: 247\r\n"+
"Contact: <sip:"+number_dest+"@"+addr_src+":5060>\r\n"+
"Max-Forwards: 70\r\n"+
"Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER, SUBSCRIBE, NOTIFY, INFO, UPDATE, REGISTER\r\n"+
"Transport = udp\r\n"+
//"Remote-Party-ID: <sip:"+number_dest+"@"+addr_src+">;party=calling;screen=no;privacy=off\r\n"+
//"Allow-Events: telephone-event\r\n"+
"v = 0\r\n"+
"o = SIPPS 105015165 105015162 IN IP4 "+addr_src+"\r\n"+
"s = SIPcall\r\n"+
"c = IN IP4 "+addr_src+"\r\n"+
"t = 0 0\r\n"+
"m = audio 30000 RTP/AVP 0 8\r\n"+
"a = rtpmap:0 pcmu/8000\r\n"+
"a = rtpmap:8 pcma/8000\r\n";
dawid999
04-11-2010, 21:44
cosi a prima occhiata dovresti impostare la from nel seguente modo:
sip:numerochiamante@ipcentralinosorgente:porta
nel tuo caso ipdel centralino sorgente e destinazione corrispondono alla stessa machina quindi lasciando addr_dest non dovrebbe crearti problemi
la contact nel seguente modo:
sip:numerochiamante@ipcentralinosorgente:porta
qui devi metterci number_src invece del dest e ip del centralino sul quale è registrato l'interno che genera la chiamata al posto di .addr_src.
il contact indica al chiamato in che modo può contattare il chiamante ma la comuniazione non è diretta, avviene tramite asterisk quindi l'indirizzo deve essere quello del centralino e non direttamente quello del client, ci pensa poi asterisk a girare la chiamata nel modo corretto.
per il resto mi sembra ok, ti da qualche problema?
ps: potresti anche semplificarlo inizialmente, questo è un invite di twinkle:
INVITE sip:
[email protected] SIP/2.0
Via: SIP/2.0/UDP 192.168.1.228:5061;rport;branch=z9hG4bKnvjeoqua
Max-Forwards: 70
To: <sip:
[email protected]>
From: "100" <sip:
[email protected]>;tag=ycbzi
Call-ID: awokaqdbckofqop@optimus
CSeq: 976 INVITE
Contact: <sip:
[email protected]:5061>
Content-Type: application/sdp
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
Supported: replaces,norefersub,100rel
User-Agent: Twinkle/1.4.2
Content-Length: 254
v=0
o=twinkle 873730701 530370633 IN IP4 192.168.1.228
s=-
c=IN IP4 192.168.1.228
t=0 0
m=audio 8000 RTP/AVP 8 0 3 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
ho modificato l'INVITE come detto da te in questo modo:
"INVITE sip:"+number_dest+"@"+addr_dest+" SIP/2.0\r\n"+
"Via: SIP/2.0/UDP "+addr_dest+":5060;rport;branch=z9hG4bKnvjeoqua\r\n"+
"Max-Forwards: 70\r\n"+
"To: <sip:"+number_dest+"@"+addr_dest+">\r\n"+
"From: "+number_dest+" <sip:"+number_dest+"@"+addr_src+">;tag=ycbzi\r\n"+
"Call-ID: "+number_dest+"@"+addr_src+"\r\n"+
"CSeq: 976 INVITE\r\n"+
"Contact: <sip:"+number_dest+"@"+addr_src+":5060>\r\n"+
"Content-Type: application/sdp\r\n"+
"Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE\r\n"+
"Supported: replaces,norefersub,100rel\r\n"+
"User-Agent: My_pc\r\n"+
"Content-Length: 254\r\n"+
"\r\n"+
"2v=0\r\n"+
"o=My_pc 105015165 105015162 IN IP4 "+addr_src+"\r\n"+
"s=-\r\n"+
"c=IN IP4 "+addr_src+"\r\n"+
"t=0 0\r\n"+
"m=audio 8000 RTP/AVP 8 0 3 101\r\n"+
"a=rtpmap:8 PCMA/8000\r\n"+
"a=rtpmap:0 PCMU/8000\r\n"+
"a=rtpmap:3 GSM/8000\r\n"+
"a=rtpmap:101 telephone-event/8000\r\n"+
"a=fmtp:101 0-15\r\n"+
"a=ptime:20\r\n"+
"\r\n";
inoltre ho configurato il file di asterisk extension.conf aggiungendo al fondo questo:
exten => 100,1,Answer
exten => 100,n,Echo
exten => 100,n,Hangup
dove ovviamente 100 è il numero che chiamo che corrisponde a number_dest.
con questa configurazione asterisk mi risponde che l'indirizzo è incompleto:
SIP/2.0 484 Address Incomplete
Via: SIP/2.0/UDP 192.168.1.228:5061;branch=z9hG4bKnvjeoqua;received=192.168.1.102;rport=44864
From: 100 <sip:
[email protected]>;tag=ycbzi
To: <sip:
[email protected]>;tag=as4245b09d
Call-ID:
[email protected]
CSeq: 976 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Content-Length: 0
dawid999
06-11-2010, 00:44
nel sip.conf dove hai definito l'utente dovresti specificare quale contesto in extensions.conf deve utilizzare come dialplan con il parametro:
context=miocontesto
quindi in extensions.conf definisci il contesto scrivendo
[miocontesto]
exten => 100,1,Answer
exten => 100,n,Echo
exten => 100,n,Hangup
dopo ogni modifica al sip.conf devi rilanciare sip reload e per modifiche su extensions.conf extensions reload (o forse dialplan reload, non ricordo) o semplicemente fai ripartire asterisk
ho apportato le modifiche che dici e ancora lo stesso problema. comunque penso sia una errata configurazione di asterisk, perchè ho provato ad utilizzare ekiga per ricevere la chiamata e sniffando i pacchetti mi da il Ringing, poi ovviamente si interrompe la connessione con la Bye penso perchè non c'è scambio di informazioni e quindi viene chiuso il canale.
Un solo dobbio ho sulla INVITE, nel parametro Call-ID io l'ho impostato così:
"Call-ID: 126541651@"+addr_src+"\r\n"+
dove addr_src è l'ip della macchina chiamante, mentre il parametro prima della chiocciola a quanto ho capito è un numero che indica l'ID della chiamata, quindi un numero casuale che viene mantenuto per tutta la sessione dell'Invite.
Infine tramite l'INVITE devo chiamare un numero, ovvero number_dest nel mio caso, ma da quale parametro della invite si capisce quale numero si deve chiamare??
posto comunque qua sotto la parte del Message Header della INVITE:
"INVITE sip:"+number_dest+"@"+addr_dest+":5060 SIP/2.0\r\n"+
"Via: SIP/2.0/UDP "+addr_src+":5060;rport;branch=z9hG4bKnvjeoqua\r\n"+
"Max-Forwards: 70\r\n"+
"To: <sip:"+number_dest+"@"+addr_dest+":5060>\r\n"+
"From:<sip:"+number_src+"@"+addr_src+":5060;user="+user+">;tag=ycbzi\r\n"+
"Call-ID: 126541651@"+addr_src+"\r\n"+
"CSeq: 976 INVITE\r\n"+
"Contact: <sip:"+addr_src+":5060>\r\n"+
"Content-Type: application/sdp\r\n"+
"Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE\r\n"+
"Supported: replaces,norefersub,100rel\r\n"+
"User-Agent: My_pc\r\n"+
"Content-Length: 254\r\n"+
spero di aver detto cose sensate!
grazie ancora dei consigli!!
sono riuscito a far funzionare anche l'INVITE....era un problema di configurazione di asterisk nel file extension.conf e nel sip.conf...adesso tocca capire un pò come funziona l'RTP per il trasferimento dati una volta avviata la chiamata!
Se c'è qualcuno che mi sa dare qualche dritta....lo ringrazio!
ciao a tutti
dawid999
11-11-2010, 22:40
sorry per la mancata risposta ma ero un po preso, relativamente all'rtp non saprei darti suggerimenti specifici perchè non me lo sono mai studiato a fondo però la documentazione ufficiale potrebbe essere un buon punto di partenza :)
http://www.ietf.org/rfc/rfc3550.txt
non ti preoccupare...applicandosi i problemi si risolvono! per quanto riguarda il protocollo rtp ho guardato qualche cosa in internet, però devo usare delle librerie sempre in java per gestire questo protocollo, per esempio jrtp....non so se hai mai sentito nominare...
dawid999
12-11-2010, 18:19
io sono un programmatore alle prime armi :D sto cercando di skillarmi nel tempo libero però ho deciso di rimanere su ruby, leggendo il thread mi è sembrata una buona idea cercare di riprodurre i tuoi stessi passi in ruby, ho aperto un repo pubblico su github:
https://github.com/dawid999/Sapphire
dawid999
14-11-2010, 00:20
OKKK sono arrivato al punto di gestire completamente sia la registrazione che invite.
Ora c'e' da lavorare su rtp...
ehi ciao...come va il tuo progetto del client voip su ruby?? io sto continuando e adesso sono alle prese con rtp! ho usato le jrtplib sempre in java...ho scritto una classe che mi permette di inviare dei pacchetti rtp ad un server con sopra asterisk...e sul server vedo tramite asterisk che ci deve essere qualche problema secondo me perchè anche se riceve i pacchetti non li legge e non riproduce l'audio...mi da come errore:
WARNING[3768]: rtcp.c:462 ast_rtp_read: RTP Read error: Connection reset by peer. Haning up now.
però tramite wireshark vedo che effettivamente c'è uno scambio di pacchetti rtp sia dal client verso il server sia viceversa.
percaso sai se su asterisk bisogna settare qualcosa di particolare nel file extension.conf o da qualche altra parte??
grazie ciao e buon lavoro
dawid999
11-12-2010, 13:10
ciao, io sono un po fermo perchè con ruby attualmente non c'e' una libreria per gestire l'rtp quindi dovrei re-inventarmi tutto :D
al momento sto facendo altro, sto testando le API della cloud di tropo.com (il riconoscimento vocale è fantastico:) )
lo scambio dell'rtp con asterisk lo inizializzi con sip+sdp giusto?
Puoi postare un pcap fatto con wireshark della sessione SIP e del flusso rtp?
per fare un test banale dell'rtp con asterisk basta che nel tuo dialplan chiami la funzione Echo, esempio:
X.,1,Echo
se funziona tutto dovresti sentire lo stesso audio che trasmetti o almeno vedere uno scambio bidirezionale a livello di rete con wireshark (per debuggare l'rtp su asterisk puoi lanciare: rtp set debug on)
Quel messaggio di asterisk sembra indicare che ci sia stato qualche problema nel leggere il flusso, se catturi il traffico rtp con wireshark e poi vai sotto Telephony-->Voip calls-->Player puoi ricomporre tutti i pacchetti trasmessi/ricevuti in un unico flusso ed ascoltarlo, se riesci ad ascoltare il flusso trasmesso verso asterisk vuol dire che lato tuo è tutto ok bisogna verificare la configurazione di asterisk e analizzare la sessione SIP/sdp che inizializza la trasmissione del flusso.
Se vuoi avere qualche dettaglio in piu su asterisk ti conviene editare il parmetro console del file /etc/asterisk/logger.conf:
console => notice,warning,error,verbose,debug
quindi da asterisk:
logger reload
core set debug 30
core set verbose 30
Ciao, ti ringrazio ancora per le risposte, comunque avevo già provato a mettere una Echo nelle configurazione del context nel file extension.conf di asterisk e ineffetti il suono viene rispedito al client che riesce a riprodurlo anche se con un pò di disturbo; catturando il traffico della sessione con wireshark ho provato a testare se veniva riprodotto il suono data la sequenza dei pacchetti rtp catturati, però seguendo le tue istruzioni (Telephony-->Voip calls-->Player) mi trova una chiamata voip però quando vado a sentire il suono esce solo un rumore e non si capisce niente!! non so se una volta schiacciato player mi apre una finestra dove impostare un jitter buffe in millisecondi che automaticamente lo da a 50! adesso non vorrei che bisogna cambiare qualcosa in questo parametro!!
Inoltre si nota che i pacchetti inviati dal client sono pochi rispetto a quelli che il server rimanda indietro!!
grazie per l'aiuto...
Ps il file non posso postarlo poichè troppo grande...se la tua email è quella che hai sul forum te lo mando lì...ciao
ciao...abbiamo fatto un ulteriore passo...sono riuscito a riprodurre la voce che il mio client manda ad asterisk e che asterisk mi torna indietro...adesso stavo facendo qualche prova cn il server di eutelia voip...(voip.eutelia.it) ma non riesco ad ottenere la registrazione eppure in locale con asterisk funziona alla perfezione tutto...ho anche provato con ekiga ad effettuare una registrazione al server eutelia e anche ekiga nn sembra farcela sempre...a volte da impossibile effettuare registrazione!!
Il mio client invece fa la prima register e riceve un Unauthorized contenente i parametri per elaborare il response tramite autenticazione md5...e una volta composta la nuova register con i parametri di autenticazione il server eutelia non risponde proprio...neanche cn un bad request...zero proprio! una sola volta mi ha mandato errore 503 Service Unavailable e nel pacchetto si poteva leggere un parametro che dice:
P-Registrar-Error: Too many registered contacts
che fa pensare che ci siano state troppe richieste e il server non risponde perchè le reputa inaffidabili...penso una cosa del genere...s
se sai qualcosa di più fammi sapere
ciao e grazie mille
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.