I just got my calls working by removing the Record-Route's and then reinserting then in an order that would according to my topology.
<br />
<br />I will need to go back and start from scratch to see if a lot of the other stuff I did was really needed or not and then update but here is were I edited the Record-Routes
<br />
<br />When the INVITE is coming from my OpenSIPS/Proxy to the Callee I did
<br />
<br /> if ( is_method("INVITE") ) {
<br /> remove_hf("Record-Route");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[2])\r\n", "Via");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[1])\r\n", "Via");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[0])\r\n", "Via");
<br /> }
<br />
<br />Then when the 180 and 200 are coming from the Callee to the Caller before the 180 and 200 go to the Caller I did the following
<br />
<br />
<br /> if (t_check_status("180")){
<br />remove_hf("Record-Route");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[2])\r\n", "Via");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[1])\r\n", "Via");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[0])\r\n", "Via");
<br />
<br /> }
<br />
<br />
<br /> if (t_check_status("200")){
<br /> remove_hf("Record-Route");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[2])\r\n", "Via");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[1])\r\n", "Via");
<br />insert_hf("Record-Route: $(hdr(Record-Route)[0])\r\n", "Via");
<br />
<br /> }
<br />
<br />
<br />So not sure if there is something wrong with the way OpenSIPS places the Record-Route ordering when OpenSIPS has multiple interfaces. I am not 100% sure if what I have done here is right or not but calls are working now.
<br />
<br />Any feedback?
<br />
<br />
<br />On , duane.larson@gmail.com wrote:
<br />> I think I have multiple issues going on but I might be getting closer to the issue.
<br />>
<br />>
<br />>
<br />>
<br />>
<br />> I am wondering if this might be part of the issue.
<br />>
<br />>
<br />>
<br />>
<br />>
<br />> If you look at the the following, http://www.tech-invite.com/Ti-sip-dialog.html#inv , for the first INVITE message that the Callee receives the first Proxy that the callee needs to take in its Record-Route is first in the list of Record-Routes on the INVITE message. As for the Caller the Record-Route set gets flipped (whatever Record-Route is on the top will be its last route hop). So if this is the case then why is the OpenSIPS/SBC device sending my Callee device an INVITE message with the far end proxy, OpenSIPS/Proxy, on the top of the Record-Route list? Here is the INVITE that my callee is getting
<br />>
<br />>
<br />>
<br />>
<br />>
<br />> INVITE sip:9013XX3XX6@192.168.88.14:3072;line=9zx0whnm SIP/2.0
<br />>
<br />>
<br />> Record-Route: 4aoni525hc;nat=yes;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=598.b8b26331>
<br />>
<br />>
<br />> Record-Route:
<br />>
<br />>
<br />> Record-Route:
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />> The Record-Route with 50.XX.XX.156 should be at the bottom of the list I think because that is the OpenSIPS/Proxy that is on the Internet. Am I wrong on this? On the SIP trace I posted on pastebin this INVITE to the Callee starts on line 299.
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />>
<br />> On , duane.larson@gmail.com wrote:
<br />>
<br />>
<br />> > I'm really not sure if I am just duck taping the issue but I was able to make most of the call work. The only problem now is when the Callee hangs up the BYE is sent directly to the OpenSIPS/Proxy IP instead of going to the OpenSIPS/SBC. This will not work due to firewall issues.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > My ACKs are no longer not showing up as Non-Loose Route messages, but the BYEs are.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > So if the Caller hangs up the Callee sees the BYE message (GOOD!), but if the Callee hangs up the Caller never sees the BYE message (Bad).
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > I will send a PCAP trace to Ali directly.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > On , Ali Pey alipey@gmail.com> wrote:
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > Duane,
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > The Ack should not have any request-route headers. Only Route headers. If you see request-route headers, then you need to find how they got there and fix that first.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > I believe it is ok if the Ack doesn't go through loose route, in that case it should be sent to the request-uri destination ip and that IP should be your client IP.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > Let me know if this help. If not, can you attach here a wireshark trace and I will go through your signalling for you. Going thought a text trace can be quit time consuming. In wireshark it's a lot easier to jump from a message to another through the call flow. You can use tcpdump to capture to .cap file for wireshark.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > Regards,
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > Ali Pey
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > On Sat, Jul 7, 2012 at 3:35 PM, osiris123d duane.larson@gmail.com> wrote:
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > This is driving me crazy. I was right the first time when I said that one of
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > the ACKs was not showing up as a loose route. It is the third ACK that is
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > coming from the OpenSIPS/Proxy. When it reaches the OpenSIPS/SBC device the
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > ACK fails as a loose route.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > It would make sense that this would not be a loose route because there are
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > no Route headers so the loose_route() function would return FALSE.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > The issue still remains that when the ACK reaches the OpenSIPS/SBC it still
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > isn't routed to the Callee, instead it is looped and routed to the same
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > interface it came from because that is whats in the RURI.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > --
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > View this message in context: http://opensips-open-sip-server.1449251.n2.nabble.com/Two-OpenSIPS-proxies-issue-tp7580685p7580743.html
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > Sent from the OpenSIPS - Users mailing list archive at Nabble.com.
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > _______________________________________________
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > Users mailing list
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > Users@lists.opensips.org
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> >
<br />>
<br />>
<br />> > >