Problems inteconnecting more than 2 box

In my implementation I have box A, B and C (System 1, 2 and 3). Box A is the master box (TB2.2). Box B is the PSTN manager and is a CISCO CCM 4.1. Box C is AsteriskNow (beta5).
All the other boxes use box A as the main exchange in a star configuration…

A peers with B and C - B peers with A (SIP trunk) - And C peers with A (IAX2 trunk).

Except for local traffic, all external and inter-office (inter-branch) traffic goes via Box A. – with the appropriate dial plan of course.

the first problem is that calling extensions from BoxB to BoxC doesn’t go (with TCPDUMP in BoxA error code SIP 404 not found) until I don’t put context=from-trunk&from-internal in BoxA trunk
definition of BoxB (and also BoxC) but in the other way (BoxC to BoxB) work fine.
The second one, the most important for my test, is that CID (outband caller-id) number doesn’t pass from BoxB to BoxC and vice-versa but the CID configured in the BoxA , …calling from BoxB to BoxA (and vice-versa) it appear, from BoxA to BoxC it appear…but not vice-versa…
from BoxC to BoxA it appear the extension number and not the outband-CID configured in the trunk…and from BoxA to BoxC it appear the variable callerid setting in configuration trunk in BoxC…very strange…

In this case from BoxB to BoxC it’s possible for BoxA make a spoofing of OutboundCID ??

I attach for better understand the configuration of BoxA and BoxC…sorry for BoxB (CCM) I don’t have admin user…

BoxA DEFINITION

iax_additional.conf

[boxC-peer]
username=boxA-user
type=peer
secret=123123
language=it
host=10.15.34.212
disallow=all
context=from-trunk
context=from-internal
canreinvite=yes
allow=gsm

[boxC-user]
type=user
secret=123123
language=it
host=10.15.34.212
fromuser=0514992900
disallow=all
context=from-internal
allow=gsm

sip_additional.conf

[28xx-fromccm1]
type=user
nat=no
host=10.15.58.101
context=from-trunk
context=from-internal
allow=ulaw
allow=alaw

[callman01]
type=peer
qualify=yes
nat=no
insecure=port,invite
host=10.15.58.101
dtmfmode=rfc2833
disallow=all
context=from-trunk
context=from-internal
canreinvite=yes
allow=ulaw
allow=alaw

BoxC DEFINITION

users.conf

[boxA-user]
disallow=all
allow=gsm
callerid=“asterisk-PROD” <0514992800>
contact=
context=DID_boxA-user
dialformat=${EXTEN:1}
fromuser=0514992900
group=
hasexten=no
hasiax=yes
hassip=no
host=10.15.58.199
insecure=yes
port=4569
provider=
registeriax=no
registersip=no
secret=123123
trunkname=Custom - boxB-peer
trunkstyle=customvoip
username=boxC-user

[general]
fullname=New User
userbase=2900
hasvoicemail=yes
vmsecret=1234
hassip=yes
hasiax=no
hasmanager=no
callwaiting=yes
threewaycalling=yes
callwaitingcallerid=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
callgroup=1
pickupgroup=1
host=dynamic
localextenlength=4
allow_aliasextns=no
allow_an_extns=yes
hasagent=no
hasdirectory=no
callerid=“asterisk-TEST” <0514992900>