Discussion:
[Sip-implementors] Question about B2BUA and 200OK
onewhoknows
2014-06-24 16:55:38 UTC
Permalink
Hi all and thanks for reading. Here is the scenario:

SIP Phone > PBX > Proxy > SBC (acting as B2BUA)

The INVITE reaches the SBC and it responds with a 183 Session Progress then
200 OK. The call is dropped after 15 seconds because the SBC never
receives an ACK to the 200 OK.

The 200 OK from the SBC is formatted as such:
SIP/2.0 200 OK
Via SIP/2.0/UDP <PROXY IP>
Via: SIP/2.0/TLS <PBX IP>
Via: SIP/2.0/TLS <Phone IP>
From: "SIP Phone" IP
To: <sip:destination at SBC IP>
Call-ID
Cseq: 1 INVITE
Record-Route <sip:111151bc at PROXY IP:5060;transport=udp;lr>
Record-Route: <sip:PBX IP:5061;transport=tls;lr>
Accept: application/sdp, application/isup, application/dtmf,
application/dtmf-relay, multipart/mixed
Contact: <sip:number at SBC IP:5060>
Allow:
INVITE,ACK,CANCEL,BYE,REGISTER,REFER,INFO,SUBSCRIBE,NOTIFY,PRACK,UPDATE,OPTIONS
P-Charging-Vector: icid-value="value here"
Require: timer
Supported: timer,replaces
Session-Expires: 1200;refresher=uac
Content-Length: 279
Content-Disposition: session; handling=required
Content-Type: application/sdp

<SDP INFO>

Based on that 200 OK, should the PBX respond with an ACK directly back to
the proxy, or to the SBC? I'm not clear on how the flow should work in this
instance. At first I thought the SBC should have inserted into the
Record-Route, but apparently that's not the case for B2BUAs?

Thanks!
Brett Tate
2014-06-24 19:43:42 UTC
Permalink
Post by onewhoknows
Based on that 200 OK, should the PBX respond with
an ACK directly back to the proxy, or to the SBC?
Based upon what you provided, the ACK should traverse the Route locations
until it reaches the SBC similar to the BYE within RFC 3621 section
16.12.1.1 example. Within your question, all of the middle boxes added
Record-Route. Thus the ACK would traverse all of the middle boxes before
reaching the SBC.
onewhoknows
2014-06-25 16:38:07 UTC
Permalink
Thanks, Brett. Am I correct in thinking that the PBX should be sending an
ACK to the 200 OK not the proxy?

PBX <> PROXY <> SBC
Post by Brett Tate
Post by onewhoknows
Based on that 200 OK, should the PBX respond with
an ACK directly back to the proxy, or to the SBC?
Based upon what you provided, the ACK should traverse the Route locations
until it reaches the SBC similar to the BYE within RFC 3621 section
16.12.1.1 example. Within your question, all of the middle boxes added
Record-Route. Thus the ACK would traverse all of the middle boxes before
reaching the SBC.
Brett Tate
2014-06-25 16:58:43 UTC
Permalink
Post by onewhoknows
Am I correct in thinking that the PBX should
be sending an ACK to the 200 OK not the proxy?
I don't understand that sentence; but it sounds like the answer is no.

Within your original question, the PBX and proxy both added Record-Route
entries (as shown within copied 200 OK snippet). The phone builds the ACK
with a Route based upon those Record-Route entries (I'm assuming that the
PBX in the example behaves as a proxy). The phone sends ACK to PBX; PBX
adjusts/sends ACK to proxy; proxy adjusts/sends ACK to SBC.

The 200 OK from the SBC is formatted as such:
SIP/2.0 200 OK
Via SIP/2.0/UDP <PROXY IP>
Via: SIP/2.0/TLS <PBX IP>
Via: SIP/2.0/TLS <Phone IP>
From: "SIP Phone" IP
To: <sip:destination at SBC IP>
Call-ID
Cseq: 1 INVITE
Record-Route <sip:111151bc at PROXY IP:5060;transport=udp;lr>
Record-Route: <sip:PBX IP:5061;transport=tls;lr>
Accept: application/sdp, application/isup, application/dtmf,
application/dtmf-relay, multipart/mixed
Contact: <sip:number at SBC IP:5060>

Loading...