Hi Greame,

Thanks for support .

But my issue is ,when I calling from A to B (Out call) its showing example.com 
in To_header and From_header . and same value going at my PBX ,due this might 
be  pbx unable to identify the value like 1...@example.com  instead of 
1234@10.112.87.177 . Can have any possibility to change it at IMS end.


I also change the configuration in Bgcf.json but I unable to check whether 
calls are forwarding through BGCF route or not .I found configuration like 
below... in one thread.


{
    "number_blocks" : [
        {
           "name" : "Internal numbers",
           "prefix" : "650555",
           "regex" : "!(^.*$)!sip:\\1...@example.com!"
        },
        {
            "name" : "External numbers",
            "prefix" : "",
            "regex" : "!(^.*$)!sip:\\1@10.112.87.177!"
        }
        

    ]
}



{
    "routes" : [
        {   "name" : "TO_PBX",
          "domain" : "10.112.87.177",
          "route" : ["<sip:cw-aio:5058;transport=UDP;lr;orig>"]
        }
         
    ]
  
}




20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:691: Cloned tdta0x7f744c14aea0 to 
tdta0x7f744c14e530
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1215: Remove top Route 
header Route: <sip:odi_fWh8yrqIzM@10.112.87.250:5054;lr;orig;service=scscf>
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1735: Adding message 
0x7f744c14eb40 => txdata 0x7f744c14e5d8 mapping
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:1587: 
scscf-0x7f744c14df40 pass initial request Request msg INVITE/cseq=1 
(tdta0x7f744c14e530) to Sproutlet
20-09-2016 16:37:12.508 UTC Info scscfsproutlet.cpp:431: S-CSCF received 
initial request
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:169: home domain: false, 
local_to_node: true, is_gruu: false, enforce_user_phone: false, prefer_sip: 
true, treat_number_as_phone: false
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:199: Classified URI as 3
20-09-2016 16:37:12.508 UTC Debug scscfsproutlet.cpp:773: Route header 
references this system
20-09-2016 16:37:12.508 UTC Debug scscfsproutlet.cpp:786: Found ODI token 
fWh8yrqIzM
20-09-2016 16:37:12.508 UTC Debug aschain.h:131: AsChain inc ref 0x7f744c1364b0 
-> 2
20-09-2016 16:37:12.508 UTC Info scscfsproutlet.cpp:793: Original dialog for 
odi_fWh8yrqIzM found: AsChain-orig[0x7f744c1364b0]:2/1
20-09-2016 16:37:12.508 UTC Debug scscfsproutlet.cpp:832: Got our Route header, 
session case orig, OD=AsChain-orig[0x7f744c1364b0]:2/1
20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:291: Served user from 
P-Served-User header
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:169: home domain: true, 
local_to_node: false, is_gruu: false, enforce_user_phone: false, prefer_sip: 
true, treat_number_as_phone: false
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:199: Classified URI as 4
20-09-2016 16:37:12.508 UTC Info scscfsproutlet.cpp:502: Found served user, so 
apply services
20-09-2016 16:37:12.508 UTC Debug scscfsproutlet.cpp:1153: Performing 
originating initiating request processing
20-09-2016 16:37:12.508 UTC Info scscfsproutlet.cpp:1178: Completed applying 
originating services
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:169: home domain: true, 
local_to_node: false, is_gruu: false, enforce_user_phone: false, prefer_sip: 
false, treat_number_as_phone: true
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:199: Classified URI as 2
20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:2218: Translating URI
20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:2189: Performing ENUM translation 
for user 1234
20-09-2016 16:37:12.508 UTC Debug enumservice.cpp:240: Translating URI via JSON 
ENUM lookup
20-09-2016 16:37:12.508 UTC Debug enumservice.cpp:305: Comparing first 4 
numbers of 1234 against prefix 650555
20-09-2016 16:37:12.508 UTC Debug enumservice.cpp:305: Comparing first 0 
numbers of 1234 against prefix 
20-09-2016 16:37:12.508 UTC Debug enumservice.cpp:312: Match found
20-09-2016 16:37:12.508 UTC Info enumservice.cpp:280: Number 1234 found, 
translated URI = sip:1234@10.112.87.177
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:169: home domain: false, 
local_to_node: false, is_gruu: false, enforce_user_phone: false, prefer_sip: 
false, treat_number_as_phone: true
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:199: Classified URI as 5
20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:2249: Translated URI 
sip:1234@10.112.87.177 is a real SIP URI - replacing Request-URI
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:169: home domain: false, 
local_to_node: false, is_gruu: false, enforce_user_phone: false, prefer_sip: 
true, treat_number_as_phone: false
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:199: Classified URI as 5
20-09-2016 16:37:12.508 UTC Info scscfsproutlet.cpp:1194: New URI string is 
sip:1234@10.112.87.177
20-09-2016 16:37:12.508 UTC Debug scscfsproutlet.cpp:1210: Routing to BGCF
20-09-2016 16:37:12.508 UTC Info scscfsproutlet.cpp:1446: Routing to BGCF 
sip:bgcf.cw-aio:5053;transport=TCP
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1350: Sproutlet 
send_request 0x7f744c14eb40
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:1386: 
scscf-0x7f744c14df40 sending Request msg INVITE/cseq=1 (tdta0x7f744c14e530) on 
fork 0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1750: Processing actions 
from sproutlet - 0 responses, 1 requests, 0 timers
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1790: Processing request 
0x7f744c14e5d8, fork = 0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1914: scscf-0x7f744c14df40 
transmitting request on fork 0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1928: scscf-0x7f744c14df40 
store reference to non-ACK request Request msg INVITE/cseq=1 
(tdta0x7f744c14e530) on fork 0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1742: Removing message 
0x7f744c14eb40 => txdata 0x7f744c14e5d8 mapping
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:119: Find target Sproutlet 
for request
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:158: Found next routable 
URI: sip:bgcf.cw-aio:5053;transport=TCP;lr
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:329: Possible service name 
- bgcf
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:335: Hostname - cw-aio
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:1154: Created Sproutlet 
bgcf-0x7f744c05f0b0 for Request msg INVITE/cseq=1 (tdta0x7f744c14e530)
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:2062: Routing Response 
msg 100/INVITE/cseq=1 (tdta0x7f744c1515d0) (609 bytes) to upstream sproutlet 
scscf:
--start msg--

SIP/2.0 100 Trying
Via: SIP/2.0/TCP 
10.112.87.250:45312;rport=45312;received=10.112.87.250;branch=z9hG4bKPjMCwNeVkjc1uawalD3By9r.lqGGy5PwHh
Via: SIP/2.0/TCP 
10.112.123.57:43259;received=10.112.123.57;branch=z9hG4bK-524287-1---fa5982366f8904be
Record-Route: 
<sip:scscf.cw-aio:5054;transport=TCP;lr;service=scscf;billing-role=charge-orig>
Record-Route: <sip:10.112.87.250:5058;transport=TCP;lr>
Record-Route: <sip:paRGfRUGv7@cw-aio:5060;transport=TCP;lr>
Call-ID: OV0U_26XyoJOUXCQ0B_6FA..
From: <sip:6505550...@example.com>;tag=9b0c5d3e
To: <sip:1...@example.com>
CSeq: 1 INVITE
Content-Length:  0


--end msg--
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1735: Adding message 
0x7f744c151be0 => txdata 0x7f744c151678 mapping
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:1623: 
scscf-0x7f744c14df40 received provisional response Response msg 
100/INVITE/cseq=1 (tdta0x7f744c1515d0) on fork 0, state = Proceeding
20-09-2016 16:37:12.508 UTC Info scscfsproutlet.cpp:561: S-CSCF received 
response
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:1413: 
scscf-0x7f744c14df40 sending Response msg 100/INVITE/cseq=1 (tdta0x7f744c1515d0)
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1750: Processing actions 
from sproutlet - 1 responses, 0 requests, 0 timers
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1836: Aggregating response 
with status code 100
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1853: Discard 100/INVITE 
response (tdta0x7f744c1515d0)
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1742: Removing message 
0x7f744c151be0 => txdata 0x7f744c151678 mapping
20-09-2016 16:37:12.508 UTC Debug pjsip: tdta0x7f744c15 Destroying txdata 
Response msg 100/INVITE/cseq=1 (tdta0x7f744c1515d0)
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:2062: Routing Request 
msg INVITE/cseq=1 (tdta0x7f744c14e530) (1411 bytes) to downstream sproutlet 
bgcf:
--start msg--

INVITE sip:1234@10.112.87.177 SIP/2.0
Record-Route: 
<sip:scscf.cw-aio:5054;transport=TCP;lr;service=scscf;billing-role=charge-orig>
Via: SIP/2.0/TCP 
10.112.87.250:45312;rport=45312;received=10.112.87.250;branch=z9hG4bKPjMCwNeVkjc1uawalD3By9r.lqGGy5PwHh
Record-Route: <sip:10.112.87.250:5058;transport=TCP;lr>
Record-Route: <sip:paRGfRUGv7@cw-aio:5060;transport=TCP;lr>
Via: SIP/2.0/TCP 
10.112.123.57:43259;received=10.112.123.57;branch=z9hG4bK-524287-1---fa5982366f8904be
Max-Forwards: 67
Contact: <sip:6505550962@10.112.123.57:43259;transport=tcp>
To: <sip:1...@example.com>
From: <sip:6505550...@example.com>;tag=9b0c5d3e
Call-ID: OV0U_26XyoJOUXCQ0B_6FA..
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, 
SUBSCRIBE
Supported: replaces, norefersub, extended-refer, timer, outbound, path, 
X-cisco-serviceuri
User-Agent: Z 3.9.32144 r32121
Allow-Events: presence, kpml
P-Asserted-Identity: <sip:6505550...@example.com>
Session-Expires: 600
P-Served-User: <sip:6505550...@example.com>;sescase=orig;regstate=reg
Route: <sip:bgcf.cw-aio:5053;transport=TCP;lr>
Content-Type: application/sdp
Content-Length:   241

v=0
o=Z 0 0 IN IP4 10.112.123.57
s=Z
c=IN IP4 10.112.123.57
t=0 0
m=audio 8000 RTP/AVP 3 110 8 0 97 101
a=rtpmap:110 speex/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv

--end msg--
20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:691: Cloned tdta0x7f744c14e530 to 
tdta0x7f744c1515d0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1215: Remove top Route 
header Route: <sip:bgcf.cw-aio:5053;transport=TCP;lr>
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1735: Adding message 
0x7f744c151be0 => txdata 0x7f744c151678 mapping
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:1587: 
bgcf-0x7f744c05f0b0 pass initial request Request msg INVITE/cseq=1 
(tdta0x7f744c1515d0) to Sproutlet
20-09-2016 16:37:12.508 UTC Debug acr.cpp:49: Created ACR (0x7f744c05f030)
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:169: home domain: false, 
local_to_node: false, is_gruu: false, enforce_user_phone: false, prefer_sip: 
true, treat_number_as_phone: false
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:199: Classified URI as 5
20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:2328: Not translating URI
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:169: home domain: false, 
local_to_node: false, is_gruu: false, enforce_user_phone: false, prefer_sip: 
true, treat_number_as_phone: false
20-09-2016 16:37:12.508 UTC Debug uri_classifier.cpp:199: Classified URI as 5
20-09-2016 16:37:12.508 UTC Debug bgcfservice.cpp:188: Getting route for URI 
domain 10.112.87.177 via BGCF lookup
20-09-2016 16:37:12.508 UTC Info bgcfservice.cpp:198: Found route to domain 
10.112.87.177
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1350: Sproutlet 
send_request 0x7f744c151be0
20-09-2016 16:37:12.508 UTC Verbose sproutletproxy.cpp:1386: 
bgcf-0x7f744c05f0b0 sending Request msg INVITE/cseq=1 (tdta0x7f744c1515d0) on 
fork 0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1750: Processing actions 
from sproutlet - 0 responses, 1 requests, 0 timers
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1790: Processing request 
0x7f744c151678, fork = 0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1914: bgcf-0x7f744c05f0b0 
transmitting request on fork 0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1928: bgcf-0x7f744c05f0b0 
store reference to non-ACK request Request msg INVITE/cseq=1 
(tdta0x7f744c1515d0) on fork 0
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:1742: Removing message 
0x7f744c151be0 => txdata 0x7f744c151678 mapping
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:119: Find target Sproutlet 
for request
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:158: Found next routable 
URI: sip:cw-aio:5058;transport=UDP;lr;orig
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:190: No Sproutlet found 
using service name or host
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:196: Find default service 
for port 5058
20-09-2016 16:37:12.508 UTC Debug sproutletproxy.cpp:874: No local sproutlet 
matches request
20-09-2016 16:37:12.508 UTC Debug pjsip: tsx0x7f744c154 Transaction created for 
Request msg INVITE/cseq=1 (tdta0x7f744c1515d0)
20-09-2016 16:37:12.508 UTC Debug basicproxy.cpp:1618: Added trail identifier 
10262 to UAC transaction
20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:490: Next hop node is encoded in 
top route header
20-09-2016 16:37:12.508 UTC Debug sipresolver.cpp:86: SIPResolver::resolve for 
name cw-aio, port 5058, transport 17, family 2
20-09-2016 16:37:12.508 UTC Debug baseresolver.cpp:523: Attempt to parse cw-aio 
as IP address
20-09-2016 16:37:12.508 UTC Debug sipresolver.cpp:128: Port is specified
20-09-2016 16:37:12.508 UTC Debug sipresolver.cpp:296: Perform A/AAAA record 
lookup only, name = cw-aio
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:724: Removing record 
for scscf.cw-aio (type 1, expiry time 1474389247) from the expiry list
20-09-2016 16:37:12.508 UTC Verbose dnscachedresolver.cpp:245: Check cache for 
cw-aio type 1
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:251: No entry found in 
cache
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:254: Create cache entry 
pending query
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:302: Create and execute 
DNS query transaction
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:315: Wait for query 
responses
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:465: Received DNS 
response for cw-aio type A
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:90: Parsing DNS message
000000: 19378580 00010001 00000000 0663772d 61696f00 00010001 c00c0001 00010000 
   .7.. .... .... .cw- aio. .... .... .... 
000020: 00000004 0a7057fa                                                       
   .... .pW.                               

20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:95: Parsing header at offset 0x0
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:98: 1 questions, 1 answers, 0 
authorities, 0 additional records
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:103: Parsing question 1 at 
offset 0xc
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:229: Parsed domain name = 
cw-aio, encoded length = 8
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:112: Parsing answer 1 at offset 
0x18
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:229: Parsed domain name = 
cw-aio, encoded length = 2
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:282: Resource Record 
NAME=cw-aio TYPE=A CLASS=IN TTL=0 RDLENGTH=4
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:287: Parse A record RDATA
20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:142: Answer records
cw-aio                  0       IN      A       10.112.87.250

20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:143: Authority records

20-09-2016 16:37:12.508 UTC Debug dnsparser.cpp:144: Additional records

20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:761: Adding record to 
cache entry, TTL=0, expiry=1474389432
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:765: Update cache entry 
expiry to 1474389432
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:707: Adding cw-aio to 
cache expiry list with deletion time of 1474389732
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:319: Received all query 
responses
20-09-2016 16:37:12.508 UTC Debug dnscachedresolver.cpp:347: Pulling 1 records 
from cache for cw-aio A
20-09-2016 16:37:12.508 UTC Debug baseresolver.cpp:362: Found 1 A/AAAA records, 
randomizing
20-09-2016 16:37:12.508 UTC Debug baseresolver.cpp:993: 10.112.87.250:5058 
transport 17 has state: WHITE
20-09-2016 16:37:12.508 UTC Debug baseresolver.cpp:993: 10.112.87.250:5058 
transport 17 has state: WHITE
20-09-2016 16:37:12.508 UTC Debug baseresolver.cpp:406: Added a server, now 
have 1 of 5
20-09-2016 16:37:12.508 UTC Debug baseresolver.cpp:447: Adding 0 servers from 
blacklist
20-09-2016 16:37:12.508 UTC Info pjutils.cpp:938: Resolved destination URI 
sip:cw-aio:5058;transport=UDP;lr;orig to 1 servers
20-09-2016 16:37:12.508 UTC Debug pjutils.cpp:490: Next hop node is encoded in 
top route header
20-09-2016 16:37:12.508 UTC Debug basicproxy.cpp:1641: Next hop cw-aio is not a 
stateless proxy
20-09-2016 16:37:12.508 UTC Debug basicproxy.cpp:1655: Sending request for 
sip:1234@10.112.87.177
20-09-2016 16:37:12.508 UTC Debug pjsip: tsx0x7f744c154 Sending Request msg 
INVITE/cseq=1 (tdta0x7f744c1515d0) in state Null
20-09-2016 16:37:12.508 UTC Debug pjsip:       endpoint Request msg 
INVITE/cseq=1 (tdta0x7f744c1515d0): skipping target resolution because address 
is already set
20-09-2016 16:37:12.508 UTC Debug pjsip:       endpoint Request msg 
INVITE/cseq=1 (tdta0x7f744c1515d0) exceeds UDP size threshold (1300), sending 
with TCP
20-09-2016 16:37:12.508 UTC Verbose pjsip: tcpc0x7f744c15 TCP client transport 
created
20-09-2016 16:37:12.508 UTC Verbose pjsip: tcpc0x7f744c15 TCP transport 
10.112.87.250:57743 is connecting to 10.112.87.250:5058...
20-09-2016 16:37:12.509 UTC Verbose common_sip_processing.cpp:136: TX 1504 
bytes Request msg INVITE/cseq=1 (tdta0x7f744c1515d0) to TCP 10.112.87.250:5058:
--start msg--

INVITE sip:1234@10.112.87.177 SIP/2.0
Via: SIP/2.0/TCP 
10.112.87.250:57743;rport;branch=z9hG4bKPjeUUjYygIls2DRu2LAAHqVGU27AHZ.-S3
Record-Route: 
<sip:scscf.cw-aio:5054;transport=TCP;lr;service=scscf;billing-role=charge-orig>
Via: SIP/2.0/TCP 
10.112.87.250:45312;rport=45312;received=10.112.87.250;branch=z9hG4bKPjMCwNeVkjc1uawalD3By9r.lqGGy5PwHh
Record-Route: <sip:10.112.87.250:5058;transport=TCP;lr>
Record-Route: <sip:paRGfRUGv7@cw-aio:5060;transport=TCP;lr>
Via: SIP/2.0/TCP 
10.112.123.57:43259;received=10.112.123.57;branch=z9hG4bK-524287-1---fa5982366f8904be
Max-Forwards: 66
Contact: <sip:6505550962@10.112.123.57:43259;transport=tcp>
To: <sip:1...@example.com>
From: <sip:6505550...@example.com>;tag=9b0c5d3e
Call-ID: OV0U_26XyoJOUXCQ0B_6FA..
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, 
SUBSCRIBE
Supported: replaces, norefersub, extended-refer, timer, outbound, path, 
X-cisco-serviceuri
User-Agent: Z 3.9.32144 r32121
Allow-Events: presence, kpml
P-Asserted-Identity: <sip:6505550...@example.com>
Session-Expires: 600
P-Served-User: <sip:6505550...@example.com>;sescase=orig;regstate=reg
Route: <sip:cw-aio:5058;transport=UDP;lr;orig>
Content-Type: application/sdp
Content-Length:   241

v=0
o=Z 0 0 IN IP4 10.112.123.57
s=Z
c=IN IP4 10.112.123.57
t=0 0
m=audio 8000 RTP/AVP 3 110 8 0 97 101
a=rtpmap:110 speex/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv

--end msg--
20-09-2016 16:37:12.509 UTC Debug pjsip: tsx0x7f744c154 State changed from Null 
to Calling, event=TX_MSG
20-09-2016 16:37:12.509 UTC Debug basicproxy.cpp:213: tsx0x7f744c1546a8 - 
tu_on_tsx_state UAC, TSX_STATE TX_MSG state=Calling
20-09-2016 16:37:12.509 UTC Debug basicproxy.cpp:1813: tsx0x7f744c1546a8 - 
uac_tsx = 0x7f744c154540, uas_tsx = 0x7f744c001b20
20-09-2016 16:37:12.509 UTC Debug basicproxy.cpp:1821: TX_MSG event on current 
UAC transaction
20-09-2016 16:37:12.509 UTC Debug basicproxy.cpp:2134: Starting timer C
20-09-2016 16:37:12.509 UTC Debug thread_dispatcher.cpp:193: Worker thread 
completed processing message 0x7f744409acd8
20-09-2016 16:37:12.509 UTC Debug thread_dispatcher.cpp:199: Request latency = 
8327us
20-09-2016 16:37:12.519 UTC Verbose pjsip: tcpc0x7f744c15 TCP transport 
10.112.87.250:57743 is connected to 10.112.87.250:5058
20-09-2016 16:37:12.524 UTC Debug pjsip: sip_endpoint.c Processing incoming 
message: Response msg 100/INVITE/cseq=1 (rdata0x7f744c157410)
20-09-2016 16:37:12.524 UTC Verbose common_sip_processing.cpp:120: RX 864 bytes 
Response msg 100/INVITE/cseq=1 (rdata0x7f744c157410) from TCP 
10.112.87.250:5058:
--start msg--







-----Original Message-----
From: Clearwater [mailto:clearwater-boun...@lists.projectclearwater.org] On 
Behalf Of clearwater-requ...@lists.projectclearwater.org
Sent: 20 September 2016 17:18
To: clearwater@lists.projectclearwater.org
Subject: Clearwater Digest, Vol 41, Issue 37

Send Clearwater mailing list submissions to
        clearwater@lists.projectclearwater.org

To subscribe or unsubscribe via the World Wide Web, visit
        
http://lists.projectclearwater.org/mailman/listinfo/clearwater_lists.projectclearwater.org

or, via email, send a message with subject or body 'help' to
        clearwater-requ...@lists.projectclearwater.org

You can reach the person managing the list at
        clearwater-ow...@lists.projectclearwater.org

When replying, please edit your Subject line so it is more specific than "Re: 
Contents of Clearwater digest..."


Today's Topics:

   1. Re: SIP Trunking With PBX_aio
      (Graeme Robertson (projectclearwater.org))
   2. Re: Performance limit measurement
      (Graeme Robertson (projectclearwater.org))


----------------------------------------------------------------------

Message: 1
Date: Tue, 20 Sep 2016 11:06:39 +0000
From: "Graeme Robertson (projectclearwater.org)"
        <gra...@projectclearwater.org>
To: "clearwater@lists.projectclearwater.org"
        <clearwater@lists.projectclearwater.org>
Subject: Re: [Project Clearwater] SIP Trunking With PBX_aio
Message-ID:
        
<cy4pr02mb2616ba771b427321072c871ce3...@cy4pr02mb2616.namprd02.prod.outlook.com>
        
Content-Type: text/plain; charset="us-ascii"

Hi Surender,



At the end of originating processing at the S-CSCF, we do an ENUM lookup and 
find a match and translate the Request URI to 
sip:1234@10.112.87.177;transport=TCP. We then identify that this is not a local 
user, so we send it to the BGCF to route off-net. The BGCF thinks there are no 
routes configured for 10.112.87.177, and so it just attempts normal SIP 
proxying - i.e. it sends the INVITE to 10.112.87.177:5060, which is your PBX. 
It looks as though (from an earlier email) that you were hoping to route it via 
Bono (as an IBCF) but for some reason this configuration hasn't been picked up. 
However, I'm not sure there's actually any value to including the IBCF in this 
flow - the same INVITE would still end up being routed to 10.112.87.177:5060.



Project Clearwater is designed as a spec-compliant IMS core. In the IMS world, 
the user in the To header is never really used, and we never touch it. This is 
not very consistent with the original standards for SIP detailed in 
RFC3261<https://www.ietf.org/rfc/rfc3261.txt>, so we don't always interoperate 
perfectly with non-IMS devices. I'm afraid I don't know anything about your 
PBX, but if it is non-IMS and is expecting the To header to contain a certain 
value, then this would explain why it is rejecting the call. If you really need 
to re-write the To header on your request, and you are not averse to writing a 
bit of code, Sprout provides a really easy-to-use API for developing your own 
app server. https://github.com/Metaswitch/greeter is a sample application 
server that uses this API and simply adds the header "Subject: Hello world!" to 
a SIP message - you could write something similar that changes to the To header 
on your SIP messages. Alternatively, Metaswitch has a commercial pro
 duct called 
Perimeta<http://www.metaswitch.com/perimeta-session-border-controller-sbc> 
which can be deployed as an IBCF, and which has a SIP Message Manipulation 
Framework which you would be able to use to alter your To header.



Thanks,

Graeme



-----Original Message-----
From: Clearwater [mailto:clearwater-boun...@lists.projectclearwater.org] On 
Behalf Of Surender Singh
Sent: 20 September 2016 07:42
To: 
clearwater@lists.projectclearwater.org<mailto:clearwater@lists.projectclearwater.org>
Subject: Re: [Project Clearwater] SIP Trunking With PBX_aio



Hi Graeme/Team,



Updating...............



1) Now Incoming calls are working from PBX to IMS .



2) For Outgoing calls ,able to send request Invite to PBX IP 10.112.87.177 but 
getting 404 no route to destination/Not found.



3) Can you suggest me what parameter (To Header or Request URI) are checked by 
the Peer node (PBX) to terminate the calls.



4) I also not able to understand configuration/calls flow  in BGCF.JSON. How 
IMS route the calls using BGCF.JSON.



Please find some below  logs of Sprout....






-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.projectclearwater.org/pipermail/clearwater_lists.projectclearwater.org/attachments/20160920/e5c1d912/attachment-0001.html>

------------------------------

Message: 2
Date: Tue, 20 Sep 2016 11:47:06 +0000
From: "Graeme Robertson (projectclearwater.org)"
        <gra...@projectclearwater.org>
To: "clearwater@lists.projectclearwater.org"
        <clearwater@lists.projectclearwater.org>
Subject: Re: [Project Clearwater] Performance limit measurement
Message-ID:
        
<mwhpr02mb2621f5d2d0fb35d6ffa34f10e3...@mwhpr02mb2621.namprd02.prod.outlook.com>
        
Content-Type: text/plain; charset="utf-8"

Hi Michael,

It?s worth noting that Project Clearwater is designed to scale horizontally 
rather than vertically, so we would expect multiple less powerful Sprout nodes 
to out-perform a single powerful Sprout node. However, that doesn?t mean that 
your Sprout node isn?t capable of handling the load you?re hitting it with.

We do expose latency measurements over SNMP ? see 
http://clearwater.readthedocs.io/en/stable/Clearwater_SNMP_Statistics.html for 
more details. In particular, under Sprout statistics we have various latency 
statistics including latency for SIP requests and latency for requests to 
Homestead. There are a couple of other statistics that might be useful for 
determining when exactly our requests are failing ? if the number of initial 
registration failures and/or the number of authentication failures are non-zero 
this would indicate that the bottleneck is actually at Homestead.

It does sound as though Sprout is reporting itself as overloaded even though it 
could handle more requests. As I mentioned previously, Sprout will tweak it?s 
overload controls to rectify this, but it won?t be immediate, which might 
explain the failures. I know you?ve already tried tweaking the token controls, 
but it might be worth looking at them again. Over the course of the minute of 
your test, I think we expect to receive 60,000 REGISTERs (2 per subscriber), 
and they should be even distributed, so we?re expecting 1,000 requests per 
second. Have you tried setting init_token_rate to 1,000? You?ll want to make 
sure this change is picked up on both Sprout and Homestead ? you can do this by 
editing /etc/clearwater/shared_config on a single node and running 
/usr/share/clearwater/clearwater-config-manager/scripts/upload_shared_config. 
After a few minutes the change will have propagated around the deployment.

Thanks,
Graeme

From: Clearwater [mailto:clearwater-boun...@lists.projectclearwater.org] On 
Behalf Of ??????? ?ats?????
Sent: 19 September 2016 08:42
To: clearwater@lists.projectclearwater.org
Subject: Re: [Project Clearwater] Performance limit measurement

Hi Graeme,

i created a simpler scenario comparing to what the Sip Stress testing uses. In 
each scenario two subscribers try just to register to IMS and do not make any 
call to each other. I run this scenario for 15000 pairs of subscribers (30000 
subscribers). The register requests are distributed in 1 minute time. It seems 
tha Sprout node is the bottleneck. The return code of most of the failed 
messages is  503 (Service Unavailable) and of some of them 408 (Request 
Timeout). I have added resources in Sprout (4 CPUs and 8Gb memory) so i don't 
believe that resources is the issue.

Does Sprout somehow exposes the latency measurements that lead to the 
throttling? We would like to take a look at them.



 Here is the the xml file .


<scenario name="Call Load Test">

  <User variables="my_dn,peer_dn,call_repeat" />
  <nop hide="true">
    <action>
      <!-- Get my and peer's DN -->
      <assignstr assign_to="my_dn" value="[field0]" />
      <!-- field1 is my_auth, but we can't store it in a variable -->
      <assignstr assign_to="peer_dn" value="[field2]" />
      <!-- field3 is peer_auth, but we can't store it in a variable -->
      <assign assign_to="reg_repeat" value="0"/>
      <assign assign_to="call_repeat" value="0"/>
    </action>
  </nop>

  <pause distribution="uniform" min="0" max="60000" />

  <send>
    <![CDATA[

      REGISTER sip:[$my_dn]@[service] SIP/2.0
      Via: SIP/2.0/[transport] 
[local_ip]:[local_port];rport;branch=[branch]-[$my_dn]-[$reg_repeat]
      Route: <sip:[service];transport=[transport];lr>
      Max-Forwards: 70
      From: <sip:[$my_dn]@[service]>;tag=[pid]SIPpTag00[call_number]
      To: <sip:[$my_dn]@[service]>
      Call-ID: [$my_dn]///[call_id]
      CSeq: [cseq] REGISTER
      User-Agent: Accession 4.0.0.0
      Supported: outbound, path
      Contact: 
<sip:[$my_dn]@[local_ip]:[local_port];transport=[transport];ob>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-000000000001>"
      Expires: 3600
      Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, 
MESSAGE, OPTIONS
      Content-Length: 0

    ]]>
  </send>

  <recv response="401" auth="true">
    <action>
      <add assign_to="reg_repeat" value="1" />
    </action>
  </recv>

  <send>
    <![CDATA[

      REGISTER sip:[$my_dn]@[service] SIP/2.0
      Via: SIP/2.0/[transport] 
[local_ip]:[local_port];rport;branch=[branch]-[$my_dn]-[$reg_repeat]
      Route: <sip:[service];transport=[transport];lr>
      Max-Forwards: 70
      From: <sip:[$my_dn]@[service]>;tag=[pid]SIPpTag00[call_number]
      To: <sip:[$my_dn]@[service]>
      Call-ID: [$my_dn]///[call_id]
      CSeq: [cseq] REGISTER
      User-Agent: Accession 4.0.0.0
      Supported: outbound, path
      Contact: 
<sip:[$my_dn]@[local_ip]:[local_port];transport=[transport];ob>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-000000000001>"
      Expires: 3600
      [field1]
      Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, 
MESSAGE, OPTIONS
      Content-Length: 0

    ]]>
  </send>

  <recv response="200">
    <action>
      <ereg regexp="rport=([^;]*);.*received=([^;]*);" search_in="hdr" 
header="Via:" assign_to="dummy" />
      <add assign_to="reg_repeat" value="1" />
    </action>
  </recv>
  <Reference variables="dummy" />

  <send>
    <![CDATA[

      REGISTER sip:[$peer_dn]@[service] SIP/2.0
      Via: SIP/2.0/[transport] 
[local_ip]:[local_port];rport;branch=[branch]-[$peer_dn]-[$reg_repeat]
      Route: <sip:[service];transport=[transport];lr>
      Max-Forwards: 70
      From: <sip:[$peer_dn]@[service]>;tag=[pid]SIPpTag00[call_number]
      To: <sip:[$peer_dn]@[service]>
      Call-ID: [$peer_dn]///[call_id]
      CSeq: [cseq] REGISTER
      User-Agent: Accession 4.0.0.0
      Supported: outbound, path
      Contact: 
<sip:[$peer_dn]@[local_ip]:[local_port];transport=[transport];ob>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-000000000001>"
      Expires: 3600
      Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, 
MESSAGE, OPTIONS
      Content-Length: 0

    ]]>
  </send>

  <recv response="401" auth="true">
    <action>
      <add assign_to="reg_repeat" value="1" />
    </action>
  </recv>

  <send>
    <![CDATA[

      REGISTER sip:[$peer_dn]@[service] SIP/2.0
      Via: SIP/2.0/[transport] 
[local_ip]:[local_port];rport;branch=[branch]-[$peer_dn]-[$reg_repeat]
      Route: <sip:[service];transport=[transport];lr>
      Max-Forwards: 70
      From: <sip:[$peer_dn]@[service]>;tag=[pid]SIPpTag00[call_number]
      To: <sip:[$peer_dn]@[service]>
      Call-ID: [$peer_dn]///[call_id]
      CSeq: [cseq] REGISTER
      User-Agent: Accession 4.0.0.0
      Supported: outbound, path
      Contact: 
<sip:[$peer_dn]@[local_ip]:[local_port];transport=[transport];ob>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-000000000001>"
      Expires: 3600
      [field3]
      Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, 
MESSAGE, OPTIONS
      Content-Length: 0

    ]]>
  </send>

  <recv response="200">
    <action>
      <add assign_to="reg_repeat" value="1" />
    </action>
  </recv>

</scenario>


Best Regards,
Michael Katsoulis



2016-09-16 21:25 GMT+03:00 Graeme Robertson 
(projectclearwater.org<http://projectclearwater.org>) 
<gra...@projectclearwater.org<mailto:gra...@projectclearwater.org>>:
Hi Michael,

Can you tell me more about your scenario? It sounds like you?re not using the 
clearwater-sip-stress package, or at least not in exactly the form we package 
up. If you?re not using the clearwater-sip-stress package then please can you 
send details of your stress scenario?

Depending on how powerful your Sprout node is, I would expect 15000 calls per 
second to be towards the upper limit of its performance powers. However, if the 
CPU is not particularly high then that would suggest that Sprout?s throttling 
controls might require further tuning. Do you know what return code the 
?unexpected messages? have? 503s indicate that there is overload somewhere. 
Sprout does adjust its throttling controls to match the load its able to 
process, but that process is not immediate, and we recommend building stress up 
gradually rather than immediately firing 15000 calls per second into the system 
? for more information on that, see 
http://www.projectclearwater.org/clearwater-performance-and-our-load-monitor/.

One final thought I had was that the node you?re running stress on might be 
overloaded. If the stress node is not responding to messages in a timely 
fashion then that will generate time outs and unexpected messages.

Thanks,
Graeme

From: Clearwater 
[mailto:clearwater-boun...@lists.projectclearwater.org<mailto:clearwater-boun...@lists.projectclearwater.org>]
 On Behalf Of ??????? ?ats?????
Sent: 16 September 2016 15:16
To: 
clearwater@lists.projectclearwater.org<mailto:clearwater@lists.projectclearwater.org>
Subject: Re: [Project Clearwater] Performance limit measurement

Hi Graeme,

thanks a lot for your response.

In our scenario we are using the Stress node to generate 15000 calls in 60 
seconds. The number of unsuccessful calls varies from ~500 to ~5000 even in 
subsequent repetitions of the same scenario.
According to wireshark the failures happen because of Sprout that does not send 
the correct responses in time and so we get "time-outs" and "unexpected 
messages" in the Stress node.
The Sprout node has sufficient CPU and memory resources.
What could be the reason of this instability in our deployment?

Thank you in advance,
Michael Katsoulis














2016-09-16 16:14 GMT+03:00 Graeme Robertson 
(projectclearwater.org<http://projectclearwater.org>) 
<gra...@projectclearwater.org<mailto:gra...@projectclearwater.org>>:
Hi Michael,

How many successes and failures are you seeing? We primarily use the 
clearwater-sip-stress package to check we haven?t introduced crashes under 
load, and to check we haven?t significantly regressed the performance of 
Project Clearwater. Unfortunately clearwater-sip-stress is not reliable enough 
to generate completely accurate performance numbers for Project Clearwater (and 
we don?t accurately measure Project Clearwater performance or provide numbers). 
We tend to see around 1% failures when running clearwater-sip-stress. If your 
failure numbers are fluctuating at around 1% then this is probably down to the 
test scripts not being completely reliable, and you won?t have actually hit the 
deployment?s limit until you start seeing more failures than this.

Thanks,
Graeme


From: Clearwater 
[mailto:clearwater-boun...@lists.projectclearwater.org<mailto:clearwater-boun...@lists.projectclearwater.org>]
 On Behalf Of ??????? ?ats?????
Sent: 16 September 2016 10:17
To: 
Clearwater@lists.projectclearwater.org<mailto:Clearwater@lists.projectclearwater.org>
Subject: [Project Clearwater] Performance limit measurement

Hi all,

we are running Stress Tests against our Clearwater Deployment using Sip Stress 
node.
We have noticed that the results are not consistent as the number of 
successfull calls changes during repetitions of the same test scenario.

We have tried to increase the values of max_tokens , init_token_rate, 
min_token_rate and target_latency_us but we did not observe any difference.

What is the proposed way to discover the deployment's limit on how many 
requests per second can be served?

Thanks in advance,
Michael Katsoulis

_______________________________________________
Clearwater mailing list
Clearwater@lists.projectclearwater.org<mailto:Clearwater@lists.projectclearwater.org>
http://lists.projectclearwater.org/mailman/listinfo/clearwater_lists.projectclearwater.org


_______________________________________________
Clearwater mailing list
Clearwater@lists.projectclearwater.org<mailto:Clearwater@lists.projectclearwater.org>
http://lists.projectclearwater.org/mailman/listinfo/clearwater_lists.projectclearwater.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.projectclearwater.org/pipermail/clearwater_lists.projectclearwater.org/attachments/20160920/5dbe2e56/attachment.html>

------------------------------

Subject: Digest Footer

_______________________________________________
Clearwater mailing list
Clearwater@lists.projectclearwater.org
http://lists.projectclearwater.org/mailman/listinfo/clearwater_lists.projectclearwater.org


------------------------------

End of Clearwater Digest, Vol 41, Issue 37
******************************************


::DISCLAIMER::
----------------------------------------------------------------------------------------------------------------------------------------------------

The contents of this e-mail and any attachment(s) are confidential and intended 
for the named recipient(s) only.
E-mail transmission is not guaranteed to be secure or error-free as information 
could be intercepted, corrupted,
lost, destroyed, arrive late or incomplete, or may contain viruses in 
transmission. The e mail and its contents
(with or without referred errors) shall therefore not attach any liability on 
the originator or HCL or its affiliates.
Views or opinions, if any, presented in this email are solely those of the 
author and may not necessarily reflect the
views or opinions of HCL or its affiliates. Any form of reproduction, 
dissemination, copying, disclosure, modification,
distribution and / or publication of this message without the prior written 
consent of authorized representative of
HCL is strictly prohibited. If you have received this email in error please 
delete it and notify the sender immediately.
Before opening any email and/or attachments, please check them for viruses and 
other defects.

----------------------------------------------------------------------------------------------------------------------------------------------------


_______________________________________________
Clearwater mailing list
Clearwater@lists.projectclearwater.org
http://lists.projectclearwater.org/mailman/listinfo/clearwater_lists.projectclearwater.org

Reply via email to