2015-10-28 2 views
1

J'utilise JSIP (JAIN-SIP) version 1.2 (implémentation build 2384). Je suis en train d'envoyer le message SIP (I supprimé les adresses IP réelles dans le poste):JSIP (JAIN SIP) échangeant l'adresse URI et l'en-tête Route lors de l'envoi. Pourquoi? Comment l'éviter?

INVITE sip:[email protected] SIP/2.0 
Via: SIP/2.0/UDP xxx.yyy.zzz.www:5065;branch=z9hG4bKbranch1 
Route: <sip:xxx.yyy.zzz.www>,<sip:xxx.yyy.zzz.www:5062> 
Max-Forwards: 70 
From: "Alice" <sip:[email protected]>;tag=rawclientv1.0 
To: "Bob" <sip:[email protected]> 
Call-ID: [email protected] 
CSeq: 1 INVITE 
Contact: "alice" <sip:[email protected]:5065> 
P-Preferred-Identity: <sip:[email protected]> 
Content-Length: 141 

v=0 
o=alice 2890844526 2890844526 IN IP4 xxx.yyy.zzz.www 
s= 
c=IN IP4 xxx.yyy.zzz.www 
t=0 0 
m=audio 12346 RTP/AVP 0 8 96 
a=rtpmap:96 L16/8000 

Quand je l'imprime après l'analyse, il est correct. Cependant, lorsque je l'envoie, l'URI de la requête est placée à la fin de la liste des en-têtes Route, et le premier en-tête Route est déplacé dans l'URI SIP. Aucune norme RFC ou 3GPP ne prescrit un tel comportement. WireShark capture déjà le mauvais message:

INVITE sip:xxx.yyy.zzz.www SIP/2.0 
Via: SIP/2.0/UDP xxx.yyy.zzz.www:5065;branch=z9hG4bKbranch1 
Route: <sip:xxx.yyy.zzz.www:5062>,<sip:[email protected]> 
Max-Forwards: 70 
From: "Alice" <sip:[email protected]>;tag=rawclientv1.0 
To: "Bob" <sip:[email protected]> 
Call-ID: [email protected] 
CSeq: 1 INVITE 
Contact: "alice" <sip:[email protected]:5065> 
P-Preferred-Identity: <sip:[email protected]> 
Content-Length: 141 

v=0 
o=alice 2890844526 2890844526 IN IP4 xxx.yyy.zzz.www 
s= 
c=IN IP4 xxx.yyy.zzz.www 
t=0 0 
m=audio 12346 RTP/AVP 0 8 96 
a=rtpmap:96 L16/8000 

Est-ce un comportement normal dans JSIP? Ou un bug? Existe-t-il un moyen de l'empêcher, à savoir une solution de contournement? Merci d'avance!

Répondre

1

Utiliser lr; paramètre dans l'en-tête Route.

+1

Merci! Je l'ai fait avant de lire votre réponse, et en effet, cela fonctionne maintenant. L'exemple que j'ai pris à l'origine était faux (ou trop simplifié). –