Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic [Enhancement] SIP TCP/TLS connection reusing (Read 9084 times)
BoneStorm
YaBB Newbies
*
Offline


Phoner is great!

Posts: 1
Joined: 07. Dec 2010
[Enhancement] SIP TCP/TLS connection reusing
07. Dec 2010 at 17:44
Print Post  
Hi,

PhonerLite: 1.82 && 1.83beta (trifft mit großer Sicherheit auch auf Phoner zu)
Bedingungen: SIP via TCP oder TLS
Symptom: BYE vom SIP Provider zum Phoner UA wird nicht übertragen

Phoner scheint bei der Registrierung mit seinen Ports durcheinander zu kommen. Es wird in INVITEs bzw. 200 OK ein anderer Contact verwendet als der aktuell erfolgreich registrierte (für den eine gültige TCP Session offen ist). 

Damit kann der SIP-Provider die bestehende TCP oder TLS Verbindung nicht verwenden um neue Transaktionen innerhalb des Dialoges an Phoner zu übermitteln, er muss eine neue TCP/TLS Verbindung öffnen.

Ist NAT oder nur einseitige TLS authentifizierung im Spiel, schlägt dies fehl und ein BYE des SIP-Providers erreicht Phoner nie, das Gleiche gilt für ReINVITES, UPDATES und andere Transaktionen die innerhalb eines calls auftreten können.

REGISTER ohne challenge
Contact: <sip:4912345@localip:5062;transport=tls>;
REGISTER mit challenge
Contact: <sip:4912345@localip:1783;transport=tls>;
200 OK auf INVITE vom SIP-Provider
Contact: <sip:4912345@localip:5062;transport=tls>

Im 200 OK wäre im konkreten Fall 1783 der korrekte Port um connection reusing zu ermöglichen.

Falls Phoner auf dieses Verhalten keinen Einfluss hat bitte die Fehlermeldung an SIPPER weiterleiten.

THX,

P.S.: Phoner(Lite) ist ein echt cooles tool
  
Back to top
 
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11648
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: [Enhancement] SIP TCP/TLS connection reusing
Reply #1 - 07. Dec 2010 at 18:55
Print Post  
Lade dir bitte mal die aktuelle Version von PhonerLite (1.83) herunter und probier das damit mal aus. Wenn das da immer noch falsch ist, schick mir doch bitte den Inhalt des Debug-Fensters per Mail zu.
  
Back to top
WWW  
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11648
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: [Enhancement] SIP TCP/TLS connection reusing
Reply #2 - 08. Dec 2010 at 12:23
Print Post  
Du hast Recht! Da stimmt noch was nicht.
Ich habe mal eine neue Beta-Version hoch geladen. Kannst du mal bitte schauen, ob die besser arbeitet?
  
Back to top
WWW  
IP Logged
 
henker
YaBB Newbies
*
Offline



Posts: 15
Joined: 05. Dec 2007
Gender: Male
Re: [Enhancement] SIP TCP/TLS connection reusing
Reply #3 - 21. Jan 2011 at 10:29
Print Post  
Hallo,

konnten gestern diesen Fall mit allen Phonerlite Versionen inkl. 1.85beta retesten. Bei dem Retest haben wir ein Szenario ohne Registrierung genutzt.

Leider ist im Contact-Header immer noch ein "anderer" Port enthalten. Der Debug-Output kommt per Mail.

Grüße
Felix
  

always remember the 80's were better
Back to top
ICQ  
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11648
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: [Enhancement] SIP TCP/TLS connection reusing
Reply #4 - 21. Jan 2011 at 13:48
Print Post  
Hast du als lokalen Port 5061 eingestellt? Wenn ja, dann ist das klar.

Man stellt in PhonerLite den lokalen SIP Port (für UDP/TCP) ein. Für TLS wird automatisch ein Listener auf dem nächsten Port geöffnet.
Wenn du also den Port 5061 einstellst, dann wird im Contact bei einem TLS-Ruf der Port 5062 (ist ja ein höher) verwendet.
  
Back to top
WWW  
IP Logged
 
henker
YaBB Newbies
*
Offline



Posts: 15
Joined: 05. Dec 2007
Gender: Male
Re: [Enhancement] SIP TCP/TLS connection reusing
Reply #5 - 21. Jan 2011 at 15:39
Print Post  
Soll der Callflow mit Rückwärtsauslösen dann so aussehen:

[font=Courier]Phonerlite                                  Proxy
192.168.1.1                              10.1.1.1

:1985           INVITE                      :5061
------------------------------------------------>
:1985           100 Trying                  :5061
<------------------------------------------------
:1985           183 Session Progress        :5061
<------------------------------------------------
:1985           183 Ringing                 :5061
<------------------------------------------------
:1985           200 OK                      :5061
<------------------------------------------------
:1985           ACK                         :5061
------------------------------------------------>
                RTP
<----------------------------------------------->
:5062           BYE                         :8200
<------------------------------------------------
:5062           200 OK                      :8200
------------------------------------------------>[/font]

Mit den zwei Transaktionen innerhalb des Dialogs müssen dann auch entsprechend zwei TCP/TLS Verbindungen aufgebaut werden.
Besonders der Teil für die zweite Transaktion wird mit einem NAT dazwischen schwierig.

Wenn ich dem Proxy nun "beibringe", dass die folgenden Transaktionen auch an den Port 1985 senden soll, dann erreicht den Phonerlite auch das BYE.
(Debug-Output davon gewünscht?)
  

always remember the 80's were better
Back to top
ICQ  
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11648
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: [Enhancement] SIP TCP/TLS connection reusing
Reply #6 - 22. Jan 2011 at 12:45
Print Post  
Ich verstehe das Problem, aber im Contact steht halt immer die Listen-Adresse.
Im Via vom INVITE steht noch ein zusätzlicher Parameter (alias), der angibt, dass die aktuelle Verbindung für beidseitige Folge-Requests benutzt werden soll.
Geben andere Clients im Contact den aktuell verwendeten Port statt des Listen-Ports an?
  
Back to top
WWW  
IP Logged
 
henker
YaBB Newbies
*
Offline



Posts: 15
Joined: 05. Dec 2007
Gender: Male
Re: [Enhancement] SIP TCP/TLS connection reusing
Reply #7 - 28. Jan 2011 at 22:58
Print Post  
Hab mal ein wenig an der Testumgebung gestrickt und ein IP-Tel als Vergleich:

Code
Select All
<--- SIP read from TLS:192.168.1.73:2186 --->
INVITE sip:1000@192.168.1.111;user=phone SIP/2.0
Via: SIP/2.0/TLS 192.168.1.73:2186;branch=z9hG4bK-fa6yfsovz2r9;rport
From: "phone1" <sip:phone1@192.168.1.111>;tag=uekaimlfbn
To: <sip:1000@192.168.1.111;user=phone>
Call-ID: 3c2670524b55-fxqey7o7s4n7
CSeq: 2 INVITE
Max-Forwards: 70
Contact: <sip:phone1@192.168.1.73:2186;transport=tls>;reg-id=1
X-Serialnumber: 000413231D76
P-Key-Flags: resolution="31x13", keys="4"
User-Agent: snom360/8.4.18
Accept: application/sdp
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, MESSAGE, INFO, UPDATE
Allow-Events: talk, hold, refer, call-info
Supported: timer, 100rel, replaces, from-change
Session-Expires: 3600;refresher=uas
Min-SE: 90
Authorization: Digest user=phone",response="e6cec93188fc387311f412daa57b5fdc",algorithm=MD5
Content-Type: application/sdp
Content-Length: 329 



Hilft das weiter?
Grüße
  

always remember the 80's were better
Back to top
ICQ  
IP Logged
 
Phoner Admin
YaBB Administrator
*****
Offline



Posts: 11648
Location: Germany
Joined: 12. Oct 2003
Gender: Male
Re: [Enhancement] SIP TCP/TLS connection reusing
Reply #8 - 29. Jan 2011 at 14:51
Print Post  
In PhonerLite ist das teilweise auch schon so implementiert. Jedoch erfolgt das nur, wenn NAT erkannt wurde. Hier mal ein Beispiel-Ablauf:
Code
Select All
15:32:37,309: T: 91.121.81.212:5061 (TLS)
REGISTER sip:sip.antisip.com SIP/2.0
Via: SIP/2.0/TLS 79.219.223.41:64993;branch=z9hG4bK009ad048222ae011a1100013d495234c;rport;alias
From: "HeikoS" <sip:Phoner@sip.antisip.com>;tag=3849765438
To: "HeikoS" <sip:Phoner@sip.antisip.com>
Call-ID: 80033848-222A-E011-A10F-0013D495234C@79.219.223.41
CSeq: 1 REGISTER
Contact: 4C41-DF11-90B5-0013D495234C>"
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Max-Forwards: 70
User-Agent: SIPPER for PhonerLite
Expires: 900
Content-Length: 0


15:32:37,314: Facility Confirm: 16 00 01 00 80 81 05 00 01 00 00 00 00 00 03 00 05 01 00 02 00 00
15:32:37,315: Facility Confirm (Supplementary Services)
15:32:37,316:  Listen: success
-------------------------------------------
15:32:37,451: R: 91.121.81.212:5061 (TLS)
SIP/2.0 401 Unauthorized
Via: SIP/2.0/TLS lias;received=79.219.223.41
From: "HeikoS" <sip:Phoner@sip.antisip.com>;tag=3849765438
To: "HeikoS" <sip:Phoner@sip.antisip.com>;tag=a9f4df6572361232c39b3b55ec89ff4b.8a26
Call-ID: 80033848-222A-E011-A10F-0013D495234C@79.219.223.41
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="sip.antisip.com", nonce="4d4428e86e33a2372efb3a4ea5fefcfbdfd5aba3", qop="auth"
Server: Kamailio (1.5.3-tls (i386/linux))
Content-Length: 0


-------------------------------------------
15:32:37,452: T: 91.121.81.212:5061 (TLS)
REGISTER sip:sip.antisip.com SIP/2.0
Via: SIP/2.0/TLS 79.219.223.41:64993;branch=z9hG4bK80306949222ae011a1100013d495234c;rport;alias
From: "HeikoS" <sip:Phoner@sip.antisip.com>;tag=3849765438
To: "HeikoS" <sip:Phoner@sip.antisip.com>
Call-ID: 80033848-222A-E011-A10F-0013D495234C@79.219.223.41
CSeq: 2 REGISTER
Contact: -4C41-DF11-90B5-0013D495234C>"
Authorization: Digest username="Phoner", realm="sip.antisip.com", nonce="4d4428e86e33a2372efb3a4ea5fefcfbdfd5aba3", uri="sip:sip.antisip.com", response="285e9189ce5c5ea8866a7ba3612991ec", algorithm=MD5, cnonce="234abcc436e2667097e7fe6eia53e8dd", qop=auth, nc=00000001
Allow: INVITE, OPTIONS, ACK, BYE, CANCEL, INFO, NOTIFY, MESSAGE, UPDATE
Max-Forwards: 70
User-Agent: SIPPER for PhonerLite
Expires: 900
Content-Length: 0 


Man sieht, dass im zweiten REGISTER ein anderer Port im Contact steht - und zwar der, von welchen aus die Verbindung initiiert wird.
  
Back to top
WWW  
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint