[OpenSIPS-Users] B2b module topology hiding
Jeff Pyle
jpyle at fidelityvoice.com
Tue May 25 20:45:35 CEST 2010
Doug,
It sounds like the request domain is the same when you call b2b_init as it does when it enters your core route. You may want to amend your Destination URI xlog to display $rd as well. Or, perhaps try some testing by manually updating it to see if things improve.
- Jeff
On May 25, 2010, at 2:39 PM, Douglas Lane wrote:
> Hi All,
>
> I've decided to embark on a new little project, and that is turning
> opensips into a very basic sbc-type function. The architecture is simple:
>
> UAC ------------- (public internet) ------> OpenSIPS SBC --------
> (private network) -------> OpenSIPS Router ----------> Asterisk ------> PSTN
>
> The concept here is to have the OpenSIPS SBC to act as a registrar and
> initial auth server (so this system will handle the Proxy Auth process).
> Once the auth is successful, the idea is then to push the request
> through the B2B module and relay it onto the OpenSIPS Router server,
> which will handle any possible rewrites to the SIP messages before
> sending the call to an Asterisk box for termination.
>
> The reason to use the B2B module is to hide the topology (like a SBC does).
>
> Now I've got a functional route logic programmed on both systems, and if
> I remove the b2b stuff, the calls go through correctly. When I add in
> the b2b stuff accordingly, After the b2b module is started, the OpenSIPS
> SBC box sends an invite to itself on its public interface. The initial
> invite from the UAC passes down to the Router and finally onto the
> Asterisk box correctly, but the SBC gets a bit confused with all these
> invites coming into itself from itself.
>
> I was wondering if anyone has a working example of an architecture
> similar to the above, or could point me in the right direction. What I
> have noticed is the following just below before we get an invite from
> ourselves:
>
> May 25 20:22:20 [2268] DBG:b2b_entities:client_new: generated tag =
> [NmZlZDUxNjM1ZjMwNzg2N2JjMjllZjYwZTUyN2UyYzE.7d70bc67]
> May 25 20:22:20 [2268] DBG:tm:t_uac:
> next_hop=<sip:0716054314 at dev.mydomain.com>
> May 25 20:22:20 [2268] DBG:core:mk_proxy: doing DNS lookup...
> May 25 20:22:20 [2268] DBG:core:sip_resolvehost: no port, no proto -> do
> NAPTR lookup!
> May 25 20:22:20 [2268] DBG:core:get_record: lookup(dev.mydomain.com, 35)
> failed
> May 25 20:22:20 [2268] DBG:core:sip_resolvehost: no valid NAPTR record
> found for dev.mydomain.com trying direct SRV lookup...
> May 25 20:22:20 [2268] DBG:core:do_srv_lookup:
> SRV(_sip._udp.dev.mydomain.com) = sbc1.dev.mydomain.com:5060
> May 25 20:22:20 [2268] DBG:core:get_out_socket: socket determined: 0x7912f8
> May 25 20:22:20 [2268] DBG:tm:dlg2hash: 42135
> May 25 20:22:20 [2268] DBG:tm:print_request_uri:
> sip:0716054314 at dev.mydomain.com
> May 25 20:22:20 [2268] DBG:tm:t_uac: REF_UNSAFE: after is 1
> May 25 20:22:20 [2268] DBG:tm:set_timer: relative timeout is 500000
> May 25 20:22:20 [2268] DBG:tm:insert_timer_unsafe: [4]: 0x7faf39600988
> (12600000)
> May 25 20:22:20 [2268] DBG:tm:set_timer: relative timeout is 30
> May 25 20:22:20 [2268] DBG:tm:insert_timer_unsafe: [0]: 0x7faf396009b8 (42)
> May 25 20:22:20 [2268] DBG:b2b_logic:b2bl_create_new_entity: address:
> 0x7faf396022d0
>
> It looks like the b2b module initiates a lookup on the domain and then
> I'd assume sends the invite to itself as sbc1.dev.mydomain.com points to
> the SBC's public IP address.
>
> And then directly after the above, my script kicks in:
>
> [SBC] Setting the on_reply and failure route settings
> [SBC] Sending the request to the core
> Request leaving server, D-URI='sip:172.20.0.21:5060' - M=INVITE
> RURI=sip:0716054314 at dev.mydomain.com F=sip:doug at dev.mydomain.com
> T=sip:0716054314 at dev.mydomain.com IP=1.2.3.4
> ID=NmZlZDUxNjM1ZjMwNzg2N2JjMjllZjYwZTUyN2UyYzE.
>
> Any suggestions?
>
> This is what my route logic looks like after the INVITE has been
> processed (proxy auth):
>
> route[CORE]
> {
> ds_select_dst("2", "0");
> xlog("L_INFO", "[SBC] Destintion URI now set to $du\n");
>
> xlog("L_INFO", "[SBC] Calling b2b module with topology hiding\n");
> b2b_init_request("top hiding");
>
> xlog("L_INFO", "[SBC] Setting the on_reply and failure route
> settings\n");
> t_on_reply("1");
> t_on_failure("1");
>
> xlog("L_INFO", "[SBC] Sending the request to the core\n");
> xlog("L_INFO", "Request leaving server, D-URI='$du' - M=$rm
> RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
> if(!t_relay("0x05"))
> {
> sl_reply_error();
> }
> exit;
> }
>
> I also tried using forward() instead of t_relay(), but both seem to have
> the same affect.
>
> As always, your assistance is greatly appreciated.
>
> Thanks
> Doug
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
More information about the Users
mailing list