Hello


I am able to solve the problem. Now, when a SIP client sends an INVITE to a 
number@domain2 to P-CSCF on  domain1, it will go through S-CSCF (domain1) then 
I-BCF (domain1), then I-BCF (domain2) and then S-CSCF (domain2).



I hope the above flow is correct.



FYI. Some changes to make this work.



1. the peer IP address/hostname of I-BCF should be used in bgcf.json and 
located in CSCF



{

    "routes" : [

            { "name" : "Routing to IMS-02",

              "domain" : "aplabs2.com",

              "route"  : 
["sip:ibcf.aplabs.com:5058","sip:ibcf.aplabs2.com:5060"]

            }

    ]

}



{

    "routes" : [

            { "name" : "Routing to IMS-01",

              "domain" : "aplabs.com",

              "route"  : 
["sip:ibcf.aplabs2.com:5058","sip:ibcf.aplabs.com:5060"]

            }

    ]

}



2.  Make sure hostname in I-BCF node is being used in public_hostname to avoid 
looping. Ibcf.xxx.com is used in my case.





-          PS



-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Paul Sun
Sent: Wednesday, November 12, 2014 8:59 AM
To: Alex Hockey; Eleanor Merry
Cc: [email protected]
Subject: Re: [Clearwater] Handling Multi Domain on Clearwater



Ellie, Alex





Can suggest some direction on what should I check?



- PS



-----Original Message-----

From: Paul Sun

Sent: Tuesday, November 11, 2014 6:10 PM

To: Alex Hockey; Eleanor Merry

Cc: 
[email protected]<mailto:[email protected]>

Subject: RE: Handling Multi Domain on Clearwater



Hi Alex, Elle



I am able to fix the "No route configured" in SPROUT, but I hit another 
problem. I still do not see the message is routed out to other deployment. 
Should the INVITE send to I-BCF in deployment B from S-CSCF on deployment A? or 
through P-CSCF on deployment A?



- paul



In SPROUT

=========

11-11-2014 09:55:47.599 UTC Debug bgcfservice.cpp:149: Getting route for URI 
domain aplabs2.com via BGCF lookup

11-11-2014 09:55:47.599 UTC Info bgcfservice.cpp:155: Found route to domain 
aplabs2.com

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:1136: Sproutlet 
send_request 0x7f50dc101ea0

11-11-2014 09:55:47.599 UTC Verbose sproutletproxy.cpp:1161: 
bgcf-0x7f50dc0f0d40 sending Request msg INVITE/cseq=1 (tdta0x7f50dc101890) on 
fork 0

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:1477: Processing actions 
from sproutlet - 0 responses, 1 requests

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:1512: Processing request 
0x7f50dc101938, fork = 0

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:1630: bgcf-0x7f50dc0f0d40 
transmitting request on fork 0

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:1644: bgcf-0x7f50dc0f0d40 
store reference to non-ACK request Request msg INVITE/cseq=1 
(tdta0x7f50dc101890) on fork 0

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:1469: Removing message 
0x7f50dc101ea0 => txdata 0x7f50dc101938 mapping

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:110: Find target Sproutlet 
for request

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:144: Found next routable 
URI: sip:bono.aplabs.com:5058;lr

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:174: No Sproutlet found 
using service name or host

11-11-2014 09:55:47.599 UTC Debug sproutletproxy.cpp:763: No local sproutlet 
matches request

11-11-2014 09:55:47.600 UTC Debug pjsip: tsx0x7f50dc104 Transaction created for 
Request msg INVITE/cseq=1 (tdta0x7f50dc101890)

11-11-2014 09:55:47.600 UTC Debug basicproxy.cpp:1586: Added trail identifier 
321 to UAC transaction

11-11-2014 09:55:47.600 UTC Debug pjutils.cpp:505: Next hop node is encoded in 
top route header

11-11-2014 09:55:47.600 UTC Debug sipresolver.cpp:85: SIPResolver::resolve for 
name bono.aplabs.com, port 5058, transport -1, family 2

11-11-2014 09:55:47.600 UTC Debug baseresolver.cpp:511: Attempt to parse 
bono.aplabs.com as IP address

11-11-2014 09:55:47.600 UTC Debug sipresolver.cpp:127: Port is specified

11-11-2014 09:55:47.600 UTC Debug sipresolver.cpp:295: Perform A/AAAA record 
lookup only, name = bono.aplabs.com

11-11-2014 09:55:47.600 UTC Debug dnscachedresolver.cpp:179: Pulling 1 records 
from cache for bono.aplabs.com A

11-11-2014 09:55:47.600 UTC Debug baseresolver.cpp:359: Found 1 A/AAAA records, 
randomizing

11-11-2014 09:55:47.600 UTC Debug baseresolver.cpp:501: 192.168.1.212:5058 
transport 17 is not blacklisted

11-11-2014 09:55:47.600 UTC Debug baseresolver.cpp:380: Added a server, now 
have 1 of 5

11-11-2014 09:55:47.600 UTC Debug baseresolver.cpp:418: Adding 0 servers from 
blacklist

11-11-2014 09:55:47.600 UTC Info pjutils.cpp:940: Resolved destination URI 
sip:bono.aplabs.com:5058;lr to 1 servers

11-11-2014 09:55:47.600 UTC Debug basicproxy.cpp:1613: Sending request for 
sip:[email protected]

11-11-2014 09:55:47.600 UTC Debug pjsip: tsx0x7f50dc104 Sending Request msg 
INVITE/cseq=1 (tdta0x7f50dc101890) in state Null

11-11-2014 09:55:47.600 UTC Debug pjsip:       endpoint Request msg 
INVITE/cseq=1 (tdta0x7f50dc101890): skipping target resolution because address 
is already set

11-11-2014 09:55:47.600 UTC Debug pjsip:       endpoint Request msg 
INVITE/cseq=1 (tdta0x7f50dc101890) exceeds UDP size threshold (1300), sending 
with TCP

11-11-2014 09:55:47.600 UTC Verbose pjsip: tcpc0x7f50dc10 TCP client transport 
created

11-11-2014 09:55:47.600 UTC Verbose pjsip: tcpc0x7f50dc10 TCP transport 
192.168.1.211:55754 is connecting to 192.168.1.212:5058...

11-11-2014 09:55:47.600 UTC Verbose stack.cpp:249: TX 1620 bytes Request msg 
INVITE/cseq=1 (tdta0x7f50dc101890) to TCP 192.168.1.212:5058:

--start msg--











-----Original Message-----

From: 
[email protected]<mailto:[email protected]>
 [mailto:[email protected]] On Behalf Of Paul Sun

Sent: Tuesday, November 11, 2014 4:41 PM

To: Alex Hockey; Eleanor Merry

Cc: 
[email protected]<mailto:[email protected]>

Subject: Re: [Clearwater] Handling Multi Domain on Clearwater



I tried to double verify the setup. And I noticed that the CSCF was trying to 
lookup aplabs2.com, but failed.







11-11-2014 07:51:55.986 UTC Debug bgcfservice.cpp:149: Getting route for URI 
domain aplab2.com via BGCF lookup



11-11-2014 07:51:55.986 UTC Debug bgcfsproutlet.cpp:161: No route configured 
for aplab2.com







What should I needed to configure?







Can correct my understanding on the flow?







When an INVITE send to P-CSCF (deployment A), it will go to S-CSCF (deployment 
A), and if the called address is not in the same domain, S-CSCF (deployment A)  
will forward the INVITE to I-BCF (deployment B) through P-CSCF (deployment A)?



















11-11-2014 07:51:55.986 UTC Debug ifchandler.cpp:569: iFC does not match



11-11-2014 07:51:55.986 UTC Info scscfsproutlet.cpp:861: Completed applying 
originating services



11-11-2014 07:51:55.986 UTC Info scscfsproutlet.cpp:1049: Routing to BGCF 
sip:bgcf.sprout.aplabs.com:5054;transport=TCP



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1136: Sproutlet 
send_request 0x7f96d419d300



11-11-2014 07:51:55.986 UTC Verbose sproutletproxy.cpp:1161: 
scscf-0x7f96d4000ce0 sending Request msg INVITE/cseq=1 (tdta0x7f96d419ccf0) on 
fork 0



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1477: Processing actions 
from sproutlet - 0 responses, 1 requests



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1512: Processing request 
0x7f96d419cd98, fork = 0



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1630: scscf-0x7f96d4000ce0 
transmitting request on fork 0



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1644: scscf-0x7f96d4000ce0 
store reference to non-ACK request Request msg INVITE/cseq=1 
(tdta0x7f96d419ccf0) on fork 0



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1469: Removing message 
0x7f96d419d300 => txdata 0x7f96d419cd98 mapping



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:110: Find target Sproutlet 
for request



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:144: Found next routable 
URI: sip:bgcf.sprout.aplabs.com:5054;transport=TCP;lr



11-11-2014 07:51:55.986 UTC Verbose sproutletproxy.cpp:976: Created Sproutlet 
bgcf-0x7f96d40b1030 for Request msg INVITE/cseq=1 (tdta0x7f96d419ccf0)



11-11-2014 07:51:55.986 UTC Info pjutils.cpp:1573: Cloning header! 
140285780291696



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1462: Adding message 
0x7f96d41a08a0 => txdata 0x7f96d41a0338 mapping



11-11-2014 07:51:55.986 UTC Verbose sproutletproxy.cpp:1365: 
scscf-0x7f96d4000ce0 received provisional response Response msg 
100/INVITE/cseq=1 (tdta0x7f96d41a0290) on fork 0, state = Proceeding



11-11-2014 07:51:55.986 UTC Info scscfsproutlet.cpp:448: S-CSCF received 
response



11-11-2014 07:51:55.986 UTC Debug acr.cpp:1194: Found a 
P-Charging-Function-Address header



11-11-2014 07:51:55.986 UTC Debug acr.cpp:1213: 2 ccfs and 0 ecfs



11-11-2014 07:51:55.986 UTC Verbose sproutletproxy.cpp:1188: 
scscf-0x7f96d4000ce0 sending Response msg 100/INVITE/cseq=1 (tdta0x7f96d41a0290)



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1477: Processing actions 
from sproutlet - 1 responses, 0 requests



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1552: Aggregating response 
with status code 100



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1569: Discard 100/INVITE 
response (tdta0x7f96d41a0290)



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1469: Removing message 
0x7f96d41a08a0 => txdata 0x7f96d41a0338 mapping



11-11-2014 07:51:55.986 UTC Debug pjsip: tdta0x7f96d41a Destroying txdata 
Response msg 100/INVITE/cseq=1 (tdta0x7f96d41a0290)



11-11-2014 07:51:55.986 UTC Debug pjutils.cpp:693: Cloned tdta0x7f96d419ccf0 to 
tdta0x7f96d41a0290



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1037: Remove top Route 
header Route: <sip:bgcf.sprout.aplabs.com:5054;transport=TCP;lr>



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1462: Adding message 
0x7f96d41a08a0 => txdata 0x7f96d41a0338 mapping



11-11-2014 07:51:55.986 UTC Verbose sproutletproxy.cpp:1336: 
bgcf-0x7f96d40b1030 pass initial request Request msg INVITE/cseq=1 
(tdta0x7f96d41a0290) to Sproutlet



11-11-2014 07:51:55.986 UTC Debug acr.cpp:1495: Create RalfACR for node type 
BGCF with role Terminating



11-11-2014 07:51:55.986 UTC Debug acr.cpp:48: Created ACR (0x7f96d40b0920)



11-11-2014 07:51:55.986 UTC Debug acr.cpp:195: Created BGCF Ralf ACR



11-11-2014 07:51:55.986 UTC Debug acr.cpp:274: Set record type for I-CSCF, 
BGCF, IBCF, AS to EVENT_RECORD



11-11-2014 07:51:55.986 UTC Debug acr.cpp:1194: Found a 
P-Charging-Function-Address header



11-11-2014 07:51:55.986 UTC Debug acr.cpp:1213: 2 ccfs and 0 ecfs



11-11-2014 07:51:55.986 UTC Debug bgcfservice.cpp:149: Getting route for URI 
domain aplab2.com via BGCF lookup



11-11-2014 07:51:55.986 UTC Debug bgcfsproutlet.cpp:161: No route configured 
for aplab2.com



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1136: Sproutlet 
send_request 0x7f96d41a08a0



11-11-2014 07:51:55.986 UTC Verbose sproutletproxy.cpp:1161: 
bgcf-0x7f96d40b1030 sending Request msg INVITE/cseq=1 (tdta0x7f96d41a0290) on 
fork 0



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1477: Processing actions 
from sproutlet - 0 responses, 1 requests



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1512: Processing request 
0x7f96d41a0338, fork = 0



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1630: bgcf-0x7f96d40b1030 
transmitting request on fork 0



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1644: bgcf-0x7f96d40b1030 
store reference to non-ACK request Request msg INVITE/cseq=1 
(tdta0x7f96d41a0290) on fork 0



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:1469: Removing message 
0x7f96d41a08a0 => txdata 0x7f96d41a0338 mapping



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:110: Find target Sproutlet 
for request



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:144: Found next routable 
URI: sip:[email protected]



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:260: Found user - 852999



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:260: Found user - 852999



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:260: Found user - 852999



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:260: Found user - 852999



11-11-2014 07:51:55.986 UTC Debug sproutletproxy.cpp:763: No local sproutlet 
matches request



11-11-2014 07:51:55.986 UTC Debug pjsip: tsx0x7f96d41a3 Transaction created for 
Request msg INVITE/cseq=1 (tdta0x7f96d41a0290)



11-11-2014 07:51:55.986 UTC Debug basicproxy.cpp:1586: Added trail identifier 
192 to UAC transaction



11-11-2014 07:51:55.986 UTC Debug pjutils.cpp:505: Next hop node is encoded in 
Request-URI



11-11-2014 07:51:55.986 UTC Debug sipresolver.cpp:85: SIPResolver::resolve for 
name aplab2.com, port 0, transport -1, family 2



11-11-2014 07:51:55.987 UTC Debug baseresolver.cpp:511: Attempt to parse 
aplab2.com as IP address



11-11-2014 07:51:55.987 UTC Debug sipresolver.cpp:144: Do NAPTR look-up for 
aplab2.com



11-11-2014 07:51:55.987 UTC Debug ttlcache.h:324: Time now is 1415692315, 
expiry time of entry at head of expiry list is 1415692145



11-11-2014 07:51:55.987 UTC Debug baseresolver.cpp:666: Evict NAPTR cache 
aplab2.com



11-11-2014 07:51:55.987 UTC Debug ttlcache.h:128: Entry not in cache, so create 
new entry



11-11-2014 07:51:55.987 UTC Debug baseresolver.cpp:551: NAPTR cache factory 
called for aplab2.com



11-11-2014 07:51:55.987 UTC Debug baseresolver.cpp:563: Sending DNS NAPTR query 
for aplab2.com



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:136: Create cache entry 
pending query



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:148: Create and execute 
DNS query transaction



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:154: Wait for query 
responses



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:384: Received DNS 
response for aplab2.com type NAPTR



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:533: Adding aplab2.com 
to cache expiry list with expiry time of 1415692615



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:158: Received all query 
responses



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:179: Pulling 0 records 
from cache for aplab2.com NAPTR



11-11-2014 07:51:55.987 UTC Debug ttlcache.h:148: Adding entry to expiry list, 
TTL=300, expiry time = 1415692615



11-11-2014 07:51:55.987 UTC Debug sipresolver.cpp:193: NAPTR lookup failed, so 
do SRV lookups for UDP and TCP



11-11-2014 07:51:55.987 UTC Verbose dnscachedresolver.cpp:207: Check cache for 
_sip._udp.aplab2.com type 33



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:210: No entry found in 
cache



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:213: Create cache entry 
pending query



11-11-2014 07:51:55.987 UTC Debug dnscachedresolver.cpp:228: Create and execute 
DNS query transaction



11-11-2014 07:51:55.987 UTC Verbose dnscachedresolver.cpp:207: Check cache for 
_sip._tcp.aplab2.com type 33



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:210: No entry found in 
cache



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:213: Create cache entry 
pending query



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:228: Create and execute 
DNS query transaction



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:241: Wait for query 
responses



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:384: Received DNS 
response for _sip._udp.aplab2.com type SRV



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:533: Adding 
_sip._udp.aplab2.com to cache expiry list with expiry time of 1415692615



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:384: Received DNS 
response for _sip._tcp.aplab2.com type SRV



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:533: Adding 
_sip._tcp.aplab2.com to cache expiry list with expiry time of 1415692615



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:245: Received all query 
responses



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:275: Pulling 0 records 
from cache for _sip._udp.aplab2.com SRV



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:275: Pulling 0 records 
from cache for _sip._tcp.aplab2.com SRV



11-11-2014 07:51:55.988 UTC Debug sipresolver.cpp:209: UDP SRV record 
_sip._udp.aplab2.com returned 0 records



11-11-2014 07:51:55.988 UTC Debug sipresolver.cpp:212: TCP SRV record 
_sip._tcp.aplab2.com returned 0 records



11-11-2014 07:51:55.988 UTC Debug sipresolver.cpp:232: UDP and TCP SRV queries 
unsuccessful, default to UDP



11-11-2014 07:51:55.988 UTC Debug sipresolver.cpp:295: Perform A/AAAA record 
lookup only, name = aplab2.com



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:136: Create cache entry 
pending query



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:148: Create and execute 
DNS query transaction



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:154: Wait for query 
responses



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:384: Received DNS 
response for aplab2.com type A



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:533: Adding aplab2.com 
to cache expiry list with expiry time of 1415692615



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:158: Received all query 
responses



11-11-2014 07:51:55.988 UTC Debug dnscachedresolver.cpp:179: Pulling 0 records 
from cache for aplab2.com A



11-11-2014 07:51:55.988 UTC Debug baseresolver.cpp:359: Found 0 A/AAAA records, 
randomizing



11-11-2014 07:51:55.988 UTC Debug baseresolver.cpp:418: Adding 0 servers from 
blacklist



11-11-2014 07:51:55.988 UTC Info pjutils.cpp:940: Resolved destination URI 
sip:[email protected] to 0 servers



11-11-2014 07:51:55.988 UTC Debug basicproxy.cpp:1613: Sending request for 
sip:[email protected]



11-11-2014 07:51:55.988 UTC Debug basicproxy.cpp:1667: Failed to send request 
(70006 Not found (PJ_ENOTFOUND))



-----Original Message-----

From: Alex Hockey [mailto:[email protected]]

Sent: Tuesday, November 04, 2014 8:15 PM

To: Paul Sun; Eleanor Merry

Cc: 
[email protected]<mailto:[email protected]>

Subject: RE: Handling Multi Domain on Clearwater







Hi Paul,







Ellie is away at the moment, so I will answer in her place.







Your bgcf.json and trusted_peers settings look correct (assuming that 
192.168.1.212 is the IP address of the I-BCF in aplabs, and 192.168.1.222 is 
the address of the I-BCF if aplabs2)







In the most recent logs you sent Ellie noticed that the DNS lookup of 
bono.aplabs.com was returning zero records. I suspect this is still the 
problem. Could you share the following diagnostics?







-  The output of running "dig bono.aplabs.com" from your sprout node.



-  Sprout logs for an attempted call from aplabs -> aplabs2.



-  A network capture for port 53 taken from the sprout node during the 
attempted call. Gather this by running "sudo tcpdump -s 0 -i any -w 
~/dnstrace.pcap port 53" on your sprout node. It will produce a file called 
"dnstrace.pcap" in your home directory.







Thanks,



Alex.







-----Original Message-----



From: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>
 [mailto:[email protected]] On Behalf Of Paul Sun



Sent: 03 November 2014 10:17



To: Eleanor Merry



Cc: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>



Subject: Re: [Clearwater] Handling Multi Domain on Clearwater







Hi Ellie







I would like to follow this post again.







What I wanted to achieve to allow Clearwater deployment 'A' and you wanted it 
to accept traffic from Clearwater deployment 'B' then you would put the IP 
address of the IBCF in deployment B in the trusted_peers list on the IBCF in 
deployment A (and vice versa).







So, I have two I-BCF, two P-CSCF and two S-CSCF.







In CSCF, the bgcf.json configuration is show below.







[sprout]ims@C-CSCF-01:/etc/clearwater$ cat  bgcf.json {



    "routes" : [



            { "name" : "Routing to IMS-02",



              "domain" : "aplabs2.com",



              "route"  : 
["sip:bono.aplabs.com:5058","sip:bono.aplabs2.com:5060"]



            }



    ]



}







[sprout]ims@S-CSCF-02:/etc/clearwater$ cat bgcf.json {



    "routes" : [



            { "name" : "Routing to IMS-01",



              "domain" : "aplabs.com",



              "route"  : 
["sip:bono.aplabs2.com:5058","sip:bono.aplabs.com:5060"]



            }



    ]



}







In I-BCF, the user_settings is shown below.



[bono]imsa@I-BCF-01:/etc/clearwater$ cat user_settings 
trusted_peers="192.168.1.222"







[bono]imsa@I-BCF-02:/etc/clearwater$ cat user_settings 
trusted_peers="192.168.1.212"







When I am tryting to make a call from aplabs.com to aplab2.com, I didn't see 
messages on both I-BCF, any idea?











-          PS











From: Eleanor Merry [mailto:[email protected]]



Sent: Tuesday, July 15, 2014 9:26 PM



To: Paul Sun



Cc: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>



Subject: RE: Handling Multi Domain on Clearwater







Hi Paul,







What does the nslookup for bono.aplabs.com return when you run it on the Sprout 
node? Is the IP address IPv4 or IPv6?



Can you also get network trace (as a .cap file) from the sprout node during the 
request on port 53?







Thanks,







Ellie







From: Paul Sun [mailto:[email protected]]



Sent: 15 July 2014 13:16



To: Eleanor Merry



Cc: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>



Subject: RE: Handling Multi Domain on Clearwater







Hi Ellie



I do a nslookup bono.aplabs.com, and it shows the correct ip.







Anything i.m missing?







Paul







-------- Original message --------



From: Eleanor Merry



Date:2014/07/15 20:12 (GMT+08:00)



To: Paul Sun



Cc: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>



Subject: RE: Handling Multi Domain on Clearwater







Hi Paul,







The request is failing as Sprout doesn't know how to route to 
sip:bono.aplabs.com:5058. The relevant section of the logs are:







15-07-2014 09:21:03.646 Debug dnscachedresolver.cpp:158: Received all query 
responses



15-07-2014 09:21:03.646 Debug dnscachedresolver.cpp:179: Pulling 0 records from 
cache for bono.aplabs.com A



15-07-2014 09:21:03.646 Debug baseresolver.cpp:359: Found 0 A/AAAA records, 
randomizing



15-07-2014 09:21:03.646 Debug baseresolver.cpp:418: Adding 0 servers from 
blacklist



15-07-2014 09:21:03.646 Info pjutils.cpp:734: Resolved destination URI 
sip:bono.aplabs.com:5058 to 0 servers



15-07-2014 09:21:03.646 Debug stateful_proxy.cpp:4199: Failed to send request 
(70006 Not found (PJ_ENOTFOUND))







Sprout was unable to resolve bono.aplabs.com so it couldn't send the request. 
Can you ensure that Sprout is able to resolve bono.aplabs.com and retry?







Ellie







-----Original Message-----



From: Paul Sun [mailto:[email protected]]



Sent: 15 July 2014 10:34



To: Paul Sun; Eleanor Merry



Cc: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>



Subject: RE: Handling Multi Domain on Clearwater







Hi Ellie







I have problem to make S-CSCF in domain 1 to forward request to domain 2.







In my bgcf.json in domain 1. I configured like below







{



    "routes" : [



        { "name" : "Routing to IMS02",



          "domain" : "aplabs2.com",



          "route"  : ["sip:bono.aplabs.com:5058","sip:bono.aplabs2.com:5060"]



        }



    ]



}







It seems that there is problem on this messages



15-07-2014 09:21:03.646 Debug stateful_proxy.cpp:4199: Failed to send request 
(70006 Not found (PJ_ENOTFOUND))











15-07-2014 09:21:03.641 Debug aschain.cpp:206: No ASs left in chain



15-07-2014 09:21:03.641 Info stateful_proxy.cpp:2833: Originating services 
disposition 2



15-07-2014 09:21:03.641 Info stateful_proxy.cpp:1771: Route request to domain 
aplabs2.com



15-07-2014 09:21:03.642 Debug bgcfservice.cpp:132: Getting route for URI domain 
aplabs2.com via BGCF lookup



15-07-2014 09:21:03.642 Info bgcfservice.cpp:138: Found route to domain 
aplabs2.com



15-07-2014 09:21:03.642 Debug stateful_proxy.cpp:1797: Adding route: 
sip:bono.aplabs.com:5058



15-07-2014 09:21:03.642 Debug stateful_proxy.cpp:1797: Adding route: 
sip:bono.aplabs2.com:5060



15-07-2014 09:21:03.642 Debug acr.cpp:1480: Create RalfACR for node type BGCF 
with role Terminating



15-07-2014 09:21:03.642 Debug acr.cpp:48: Created ACR (0x7f272025eed0)



15-07-2014 09:21:03.642 Debug acr.cpp:195: Created BGCF Ralf ACR



15-07-2014 09:21:03.642 Debug acr.cpp:274: Set record type for I-CSCF, BGCF, 
IBCF, AS to EVENT_RECORD



15-07-2014 09:21:03.642 Debug stateful_proxy.cpp:3677: Allocating transaction 
and data for target 0



15-07-2014 09:21:03.643 Debug pjsip: tsx0x7f2720262 Transaction created for 
Request msg INVITE/cseq=1 (tdta0x7f272025f1f0)



15-07-2014 09:21:03.643 Debug stateful_proxy.cpp:3697: Adding trail identifier 
561 to UAC transaction



15-07-2014 09:21:03.643 Debug stateful_proxy.cpp:3716: Updating request URI and 
route for target 0



15-07-2014 09:21:03.643 Debug stateful_proxy.cpp:4112: Adding a Route header to 
sip:bono.aplabs.com:5058;transport=



15-07-2014 09:21:03.643 Debug stateful_proxy.cpp:4112: Adding a Route header to 
sip:bono.aplabs2.com:5060;transport=



15-07-2014 09:21:03.643 Debug stateful_proxy.cpp:4150: Resolve next hop 
destination



15-07-2014 09:21:03.643 Debug pjutils.cpp:463: Next hop node is encoded in top 
route header



15-07-2014 09:21:03.643 Debug sipresolver.cpp:85: SIPResolver::resolve for name 
bono.aplabs.com, port 5058, transport -1, family 2



15-07-2014 09:21:03.643 Debug baseresolver.cpp:480: Attempt to parse 
bono.aplabs.com as IP address



15-07-2014 09:21:03.644 Debug sipresolver.cpp:127: Port is specified



15-07-2014 09:21:03.644 Debug sipresolver.cpp:295: Perform A/AAAA record lookup 
only, name = bono.aplabs.com



15-07-2014 09:21:03.644 Debug dnscachedresolver.cpp:551: Removing record for 
sprout.aplabs.com (type 1, expiry time 0) from the expiry list



15-07-2014 09:21:03.644 Debug dnscachedresolver.cpp:564: Expiring record for 
sprout.aplabs.com (type 1) from the DNS cache



15-07-2014 09:21:03.644 Debug dnscachedresolver.cpp:136: Create cache entry 
pending query



15-07-2014 09:21:03.645 Debug dnscachedresolver.cpp:148: Create and execute DNS 
query transaction



15-07-2014 09:21:03.646 Debug dnscachedresolver.cpp:154: Wait for query 
responses



15-07-2014 09:21:03.646 Debug dnscachedresolver.cpp:384: Received DNS response 
for bono.aplabs.com type A



15-07-2014 09:21:03.646 Debug dnscachedresolver.cpp:534: Adding bono.aplabs.com 
to cache expiry list with expiry time of 0



15-07-2014 09:21:03.646 Debug dnscachedresolver.cpp:158: Received all query 
responses



15-07-2014 09:21:03.646 Debug dnscachedresolver.cpp:179: Pulling 0 records from 
cache for bono.aplabs.com A



15-07-2014 09:21:03.646 Debug baseresolver.cpp:359: Found 0 A/AAAA records, 
randomizing



15-07-2014 09:21:03.646 Debug baseresolver.cpp:418: Adding 0 servers from 
blacklist



15-07-2014 09:21:03.646 Info pjutils.cpp:734: Resolved destination URI 
sip:bono.aplabs.com:5058 to 0 servers



15-07-2014 09:21:03.646 Debug stateful_proxy.cpp:4199: Failed to send request 
(70006 Not found (PJ_ENOTFOUND))



15-07-2014 09:21:03.646 Debug stateful_proxy.cpp:3337: tsx0x7f2720262208 - Not 
forked request



15-07-2014 09:21:03.646 Debug acr.cpp:583: Failed to start session, change 
record type to EVENT_RECORD



15-07-2014 09:21:03.646 Debug pjsip: tsx0x7f272015f Sending Response msg 
408/INVITE/cseq=1 (tdta0x7f272024cea0) in state Proceeding



15-07-2014 09:21:03.646 Debug pjsip: tdta0x7f272024 Destroying txdata Response 
msg 100/INVITE/cseq=1 (tdta0x7f272024ee60)



15-07-2014 09:21:03.646 Verbose stack.cpp:242: TX 639 bytes Response msg 
408/INVITE/cseq=1 (tdta0x7f272024cea0) to TCP 192.168.1.212:38633:



--start msg--











-----Original Message-----



From: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>
 [mailto:[email protected]] On Behalf Of Paul Sun



Sent: Monday, July 14, 2014 10:58 AM



To: Eleanor Merry



Cc: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>



Subject: Re: [Clearwater] Handling Multi Domain on Clearwater







Hi Ellie







>From your forst statement, do you mean that each deployment should have its 
>own I-BCF?







Thanks







- PS







-----Original Message-----



From: Eleanor Merry [mailto:[email protected]]



Sent: Friday, July 04, 2014 1:08 AM



To: Paul Sun



Cc: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>



Subject: RE: Handling Multi Domain on Clearwater







Hi Paul,







You should put in the trusted_peers the addresses of nodes that Bono will 
accept traffic from. For example, if you have Clearwater deployment 'A' and you 
wanted it to accept traffic from Clearwater deployment 'B' then you would put 
the IP address of the IBCF in deployment B in the trusted_peers list on the 
IBCF in deployment A (and vice versa).







For the ENUM configuration you don't need to change the dnsmasq.resolv.conf 
file; changing this to point to the ENUM server will mean that the node can 
only resolve entries that are in the ENUM server (this is probably what's 
causing the problem you mentioned in a different email that Sprout couldn't 
route to domain names). Instead, you can change /etc/dnsmasq.d/enum-forwarding 
to include server=/e164.arpa/<IP address> and restart dnsmasq - see 
https://github.com/Metaswitch/clearwater-docs/wiki/ENUM#dnsmasq.







For the BGCF configuration you should put in the IBCF nodes that are used to 
route to a particular destination. For example, take the case where you have 
two Clearwater deployments (again called A and B), you want to route an INVITE 
from A to B and Clearwater B is setup so that the IBCF in Clearwater A is a 
trusted peer. The bgcf.json file on A will look like:



{



    "routes" : [



        {   "name" : "Routing to deployment B",



            "domain" : "b.domain",



            "route" : ["sip:a.domain:5058", "sip:b.domain:5060"]



        },



    ]



}







The routes are valid SIP URIs. The first entry is the bono node on deployment A 
(on the trusted port), and the second entry is the bono node on deployment B 
(on the untrusted port). This is necessary as the Sprout on Clearwater A can't 
simply route to Clearwater B, as Clearwater B will only accept traffic from a 
node on its trusted_peers list.







Hope this helps,







Ellie











-----Original Message-----



From: Paul Sun [mailto:[email protected]]



Sent: 03 July 2014 10:57



To: Eleanor Merry



Subject: RE: Handling Multi Domain on Clearwater







Hi Ellie







I need more information on how to setup the I-BCF, I installed the node using 
manual installation, and install the bono package as described in the link.







>From the information, after I installed the BONO with the 
>/etc/clearwater/config, I should create the /etc/clearwater/user_settings, I 
>would like to know whether below format is correct? the SIP trunk IP addresss 
>is P-CSCF address or I/S-CSCF address?







trusted_peers="<P-CSCF-01 IP address>,< P-CSCF-02 IP address>,< P-CSCF-03 IP 
address>"







Followed with the above configuration, I should setup the ENUM server, and make 
sure dnsmar.resolve.conf is pointing to this ENUM server.







On the ENUM server, I have a question, assumed I have below mapping







*.8 IN NAPTR 1 1 "u" "E2U+sip" "!(^.*$)!sip:\\[email protected]!" .



*.6 IN NAPTR 1 1 "u" "E2U+sip" "!(^.*$)!sip:\\1@<P-CSCF-02 IP address>!" .







Can I configured like below? Any additional setup required?







*.8 IN NAPTR 1 1 "u" "E2U+sip" "!(^.*$)!sip:\\[email protected]!" .



*.6 IN NAPTR 1 1 "u" "E2U+sip" "!(^.*$)!sip:\\[email protected]>!" .







Also, it seems that I also need to enable BGCF config in SPROUT, can you 
provide a sample to me as I am not sre what is ["<IBCF SIP URI>"]. If I am not 
wrong, it seems that I need to define like below.







{



    "routes" : [



        {   "name" : "domain1",



            "domain" : "P-CSCF-01 IP address",



            "route" : ["<IBCF SIP URI>"]



        },



        {   "name" : "domain2",



            "domain" : "P-CSCF-02 IP address ",



            "route" : ["<IBCF SIP URI>", "<IBCF SIP URI>"]



        }



    ]



}







Please help







-PS



-----Original Message-----



From: Eleanor Merry [mailto:[email protected]]



Sent: Thursday, July 03, 2014 1:34 AM



To: Paul Sun



Subject: RE: Handling Multi Domain on Clearwater







Hi Paul,







Can you clarify what the scenario is here?







If you want your Clearwater subscribers to receive INVITEs from external 
subscribers, then you need to allow requests from the external deployment. You 
can do this by adding the external IBCF as a trusted peer to Bono - see 
https://github.com/Metaswitch/clearwater-docs/wiki/IBCF for details of how to 
set this up.







If you want your Clearwater subscribers to send INVITEs to external subscribers 
then you may also need to set up appropriate ENUM rules to map from a telephone 
number (either a TEL URI or embedded in a SIP URI) to the correct domain. You 
mayl also need to set up a BGCF to match on domain and determine the route to 
follow (i.e. which Route headers to apply). Details of how to set this up are 
at https://github.com/Metaswitch/clearwater-docs/wiki/IBCF. For ENUM, there is 
more detailed documentation (including how to set up your own ENUM server) at 
https://github.com/Metaswitch/clearwater-docs/wiki/ENUM.







Hope this helps,







Ellie







-----Original Message-----



From: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>
 [mailto:[email protected]] On Behalf Of Paul Sun



Sent: 02 July 2014 04:01



To: 
[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>



Subject: [Clearwater] Handling Multi Domain on Clearwater







Hi







I would like to know whether I can configured Clearwater to handling 
multidomain connection?







Assumed the SIP request is coming from different I-BCF, i.e. the domain is 
different.







Please comment.







Thanks







- PS











_______________________________________________



Clearwater mailing list



[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>



http://lists.projectclearwater.org/listinfo/clearwater



_______________________________________________



Clearwater mailing list



[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]%3cmailto:[email protected]>>>



http://lists.projectclearwater.org/listinfo/clearwater



_______________________________________________



Clearwater mailing list



[email protected]<mailto:[email protected]<mailto:[email protected]%3cmailto:[email protected]>>



http://lists.projectclearwater.org/listinfo/clearwater

_______________________________________________

Clearwater mailing list

[email protected]<mailto:[email protected]>

http://lists.projectclearwater.org/listinfo/clearwater

_______________________________________________

Clearwater mailing list

[email protected]<mailto:[email protected]>

http://lists.projectclearwater.org/listinfo/clearwater
_______________________________________________
Clearwater mailing list
[email protected]
http://lists.projectclearwater.org/listinfo/clearwater

Reply via email to