1. Brekeke Product Name and version:
SIP SERVER 3
2. Java version:
1.7.0_09
3. OS type and the version:
3.2.0-31-virtual #50-Ubuntu
4. UA (phone), gateway or other hardware/software involved:
Bria Softphone
5. Select your network pattern from http://www.brekeke-sip.com/bbs/network/ ... terns.html :
The setup 3 would be closest I guess. The setup is in a virtual private cloud in the Amazon E2C. Some phones are directly connected with a VPN-connection to a main SIP proxy in the VPC and the Brekeke SIP SERVER is used as kind of SBC with through registration active to the main SIP proxy. The BREKEKE SIP SERVER has a fixed IP address and a static public IP address.
6. Your problem:
Through Registration works perfectly as do calls from phones connected through the BREKEKE SERVER to phones connected to the main SIP Server. Calls in the other direction fail. (from phones connected to the main SIP Server to the phones connected through BREKEKE). BREKEKE sends the "ACK" coming from the main SIP server back to it instead of sending it to the called telephone.
I will try to illustrate the problem with an example. To keep it as simple as possible, I only show the four messages involved in the answer.
MAIN SIP SERVER ADDRESS : 10.8.0.21
BREKEKE INTERNAL ADDRESS : 10.8.0.12
BREKEKE EXTERNAL ADDRESS : 222.222.222.222
EXTERNAL NATED PHONE ADDRESS : 111.111.111.111
"OK" MESSAGE FROM EXTERNAL PHONE TO BREKEKE (answers the call)
session.12: receive: from=UAS:111.111.111.111:55521(UDP) at 10/30/12 19:06:45.356
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 222.222.222.222:5060;received=222.222.222.222;branch=z9hG4bK8e8474f8558ad24c-30-da5d10c7
Call-ID: 5bfd03ac-44fe22a9-dd74dd16-78b62552@222.222.222.222
From: "" <sip:9001@#########>;tag=b3f8e1c21s
To: "" <sip:9003@#########>;tag=aiRc0rWcaYP89j7QEEeJcEmBlrAj2vSL
CSeq: 102 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Contact: "9003" <sip:9003@111.111.111.111:55521;ob>
Supported: replaces, 100rel, timer, norefersub
Content-Type: application/sdp
Content-Length: 211
v=0
o=- 3560609200 3560609201 IN IP4 111.111.111.111
s=cpc_med
c=IN IP4 111.111.111.111
t=0 0
m=audio 4010 RTP/AVP 8 101
a=sendrecv
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
==============================================
OK MESSAGE FROM BREKEKE TO MAIN SIP SERVER (replaces the external contact-header address by it's internal IP address)
session.12: content-type=application/sdp plugin=com.brekeke.net.content.application.Sdp
session.12: pkt=7 dp=2 st=0 sip:9003@#########(111.11.111.111:55521) --> sip:9001@#########(10.8.0.21:5060)
send="SIP/2.0 200 OK"
session.12: processtime=1
session.12: send: to=UAC:10.8.0.21:5060(UDP) at 10/30/12 19:06:45.357
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.8.0.21;branch=z9hG4bK7abd.503fbf1.0
Via: SIP/2.0/UDP 10.6.4.65:5060;branch=z9hG4bK-ac65e8fa
Call-ID: aa0e31a7-7fee7527@10.6.4.65
From: "" <sip:9001@#########>;tag=621f07a718239727o0
To: "" <sip:9003@#########>;tag=bfe87fb74s
CSeq: 102 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Contact: "9003" <sip:9003@10.8.0.12:5060;ob>
Supported: replaces, 100rel, timer, norefersub
Record-Route: <sip:10.8.0.21;lr;ftag=621f07a718239727o0>
Content-Type: application/sdp
Content-Length: 202
v=0
o=- 3560609200 3560609201 IN IP4 10.8.0.12
s=cpc_med
c=IN IP4 10.8.0.12
t=0 0
m=audio 10006 RTP/AVP 8 101
a=sendrecv
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
==============================================
ACK MESSAGE FROM MAIN SIP SERVER TO BREKEKE (the RURI-IP address is the internal BREKEKE address communicated in the contact before)
session.12: receive: from=UAC:10.8.0.21:5060(UDP) at 10/30/12 19:06:45.467
==============================================
ACK sip:9003@10.8.0.12:5060;ob SIP/2.0
Via: SIP/2.0/UDP 10.8.0.21;branch=z9hG4bK7abd.503fbf1.2
Via: SIP/2.0/UDP 10.6.4.65:5060;branch=z9hG4bK-63c46f45
From: "" <sip:9001@#########>;tag=621f07a718239727o0
To: "" <sip:9003@#########>;tag=bfe87fb74s
Call-ID: aa0e31a7-7fee7527@10.6.4.65
CSeq: 102 ACK
Max-Forwards: 70
Route: <sip:10.8.0.21;lr;ftag=621f07a718239727o0>
Contact: "" <sip:9001@10.6.4.65:5060>
User-Agent: Cisco/SPA525G-7.4.4
Content-Length: 0
==============================================
ACK MESSAGE SENT BACK FROM BREKEKE TO MAIN SIP SERVER (the RURI-address is correctly replaced, but the target is wrong)
session.12: pkt=8 dp=1 st=0 sip:9001@#########(10.8.0.21:5060) --> sip:9003@#########(10.8.0.21)
send="ACK sip:9003@111.111.111.111:55521;ob SIP/2.0"
session.12: processtime=2
session.12: send: to=UAS:10.8.0.21(UDP) at 10/30/12 19:06:45.468
==============================================
ACK sip:9003@111.111.111.111:55521;ob SIP/2.0
Via: SIP/2.0/UDP 222.222.222.222:5060;branch=z9hG4bK2b84cd32558ad24c-9def7f90-da5d10c7
From: "" <sip:9001@#########>;tag=b3f8e1c21s
To: "" <sip:9003@#########>;tag=aiRc0rWcaYP89j7QEEeJcEmBlrAj2vSL
Call-ID: 5bfd03ac-44fe22a9-dd74dd16-78b62552@222.222.222.222
CSeq: 102 ACK
Max-Forwards: 69
Route: <sip:10.8.0.21;lr;ftag=621f07a718239727o0>
Contact: "" <sip:9001@222.222.222.222:5060>
User-Agent: Cisco/SPA525G-7.4.4
Content-Length: 0
So BREKEKE sends the ACK message back to the main SIP server, while it should be routed to the answering phone, which is connected through BREKEKE. Everything is perfect, only the target of the message is wrong. So my question would be, how can I force the BREKEKE SIP server to send the response to it's correct destination?
Any hint would be welcome.
Kind regards,
Martin
SIP SERVER 3
2. Java version:
1.7.0_09
3. OS type and the version:
3.2.0-31-virtual #50-Ubuntu
4. UA (phone), gateway or other hardware/software involved:
Bria Softphone
5. Select your network pattern from http://www.brekeke-sip.com/bbs/network/ ... terns.html :
The setup 3 would be closest I guess. The setup is in a virtual private cloud in the Amazon E2C. Some phones are directly connected with a VPN-connection to a main SIP proxy in the VPC and the Brekeke SIP SERVER is used as kind of SBC with through registration active to the main SIP proxy. The BREKEKE SIP SERVER has a fixed IP address and a static public IP address.
6. Your problem:
Through Registration works perfectly as do calls from phones connected through the BREKEKE SERVER to phones connected to the main SIP Server. Calls in the other direction fail. (from phones connected to the main SIP Server to the phones connected through BREKEKE). BREKEKE sends the "ACK" coming from the main SIP server back to it instead of sending it to the called telephone.
I will try to illustrate the problem with an example. To keep it as simple as possible, I only show the four messages involved in the answer.
MAIN SIP SERVER ADDRESS : 10.8.0.21
BREKEKE INTERNAL ADDRESS : 10.8.0.12
BREKEKE EXTERNAL ADDRESS : 222.222.222.222
EXTERNAL NATED PHONE ADDRESS : 111.111.111.111
"OK" MESSAGE FROM EXTERNAL PHONE TO BREKEKE (answers the call)
session.12: receive: from=UAS:111.111.111.111:55521(UDP) at 10/30/12 19:06:45.356
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 222.222.222.222:5060;received=222.222.222.222;branch=z9hG4bK8e8474f8558ad24c-30-da5d10c7
Call-ID: 5bfd03ac-44fe22a9-dd74dd16-78b62552@222.222.222.222
From: "" <sip:9001@#########>;tag=b3f8e1c21s
To: "" <sip:9003@#########>;tag=aiRc0rWcaYP89j7QEEeJcEmBlrAj2vSL
CSeq: 102 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Contact: "9003" <sip:9003@111.111.111.111:55521;ob>
Supported: replaces, 100rel, timer, norefersub
Content-Type: application/sdp
Content-Length: 211
v=0
o=- 3560609200 3560609201 IN IP4 111.111.111.111
s=cpc_med
c=IN IP4 111.111.111.111
t=0 0
m=audio 4010 RTP/AVP 8 101
a=sendrecv
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
==============================================
OK MESSAGE FROM BREKEKE TO MAIN SIP SERVER (replaces the external contact-header address by it's internal IP address)
session.12: content-type=application/sdp plugin=com.brekeke.net.content.application.Sdp
session.12: pkt=7 dp=2 st=0 sip:9003@#########(111.11.111.111:55521) --> sip:9001@#########(10.8.0.21:5060)
send="SIP/2.0 200 OK"
session.12: processtime=1
session.12: send: to=UAC:10.8.0.21:5060(UDP) at 10/30/12 19:06:45.357
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.8.0.21;branch=z9hG4bK7abd.503fbf1.0
Via: SIP/2.0/UDP 10.6.4.65:5060;branch=z9hG4bK-ac65e8fa
Call-ID: aa0e31a7-7fee7527@10.6.4.65
From: "" <sip:9001@#########>;tag=621f07a718239727o0
To: "" <sip:9003@#########>;tag=bfe87fb74s
CSeq: 102 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Contact: "9003" <sip:9003@10.8.0.12:5060;ob>
Supported: replaces, 100rel, timer, norefersub
Record-Route: <sip:10.8.0.21;lr;ftag=621f07a718239727o0>
Content-Type: application/sdp
Content-Length: 202
v=0
o=- 3560609200 3560609201 IN IP4 10.8.0.12
s=cpc_med
c=IN IP4 10.8.0.12
t=0 0
m=audio 10006 RTP/AVP 8 101
a=sendrecv
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
==============================================
ACK MESSAGE FROM MAIN SIP SERVER TO BREKEKE (the RURI-IP address is the internal BREKEKE address communicated in the contact before)
session.12: receive: from=UAC:10.8.0.21:5060(UDP) at 10/30/12 19:06:45.467
==============================================
ACK sip:9003@10.8.0.12:5060;ob SIP/2.0
Via: SIP/2.0/UDP 10.8.0.21;branch=z9hG4bK7abd.503fbf1.2
Via: SIP/2.0/UDP 10.6.4.65:5060;branch=z9hG4bK-63c46f45
From: "" <sip:9001@#########>;tag=621f07a718239727o0
To: "" <sip:9003@#########>;tag=bfe87fb74s
Call-ID: aa0e31a7-7fee7527@10.6.4.65
CSeq: 102 ACK
Max-Forwards: 70
Route: <sip:10.8.0.21;lr;ftag=621f07a718239727o0>
Contact: "" <sip:9001@10.6.4.65:5060>
User-Agent: Cisco/SPA525G-7.4.4
Content-Length: 0
==============================================
ACK MESSAGE SENT BACK FROM BREKEKE TO MAIN SIP SERVER (the RURI-address is correctly replaced, but the target is wrong)
session.12: pkt=8 dp=1 st=0 sip:9001@#########(10.8.0.21:5060) --> sip:9003@#########(10.8.0.21)
send="ACK sip:9003@111.111.111.111:55521;ob SIP/2.0"
session.12: processtime=2
session.12: send: to=UAS:10.8.0.21(UDP) at 10/30/12 19:06:45.468
==============================================
ACK sip:9003@111.111.111.111:55521;ob SIP/2.0
Via: SIP/2.0/UDP 222.222.222.222:5060;branch=z9hG4bK2b84cd32558ad24c-9def7f90-da5d10c7
From: "" <sip:9001@#########>;tag=b3f8e1c21s
To: "" <sip:9003@#########>;tag=aiRc0rWcaYP89j7QEEeJcEmBlrAj2vSL
Call-ID: 5bfd03ac-44fe22a9-dd74dd16-78b62552@222.222.222.222
CSeq: 102 ACK
Max-Forwards: 69
Route: <sip:10.8.0.21;lr;ftag=621f07a718239727o0>
Contact: "" <sip:9001@222.222.222.222:5060>
User-Agent: Cisco/SPA525G-7.4.4
Content-Length: 0
So BREKEKE sends the ACK message back to the main SIP server, while it should be routed to the answering phone, which is connected through BREKEKE. Everything is perfect, only the target of the message is wrong. So my question would be, how can I force the BREKEKE SIP server to send the response to it's correct destination?
Any hint would be welcome.
Kind regards,
Martin