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