Hello!
Please How did you resolve this problem, I am have a similar problem with my server.
My "solution" is: Brekeke - Asterisk - 3CX

Asterisk registrers to Brekeke and 3CX registers to Asterisk.
sip.conf:
[3cx]
type=friend
context=from-3cxuser
secret=999
host=3CXIP
dtmfmode=rfc2833
username=999
qualify=yes
nat=no
canreinvite=no
insecure=invite
disallow=all
allow=alaw
allow=ulaw
3CX backup.xml:
<VoipProvider>
<SpecifiedIPForRegistrationContact>3CXIP</SpecifiedIPForRegistrationContact>
<IPInRegistrationContact>Specified</IPInRegistrationContact>
<TimeBetweenReg>120</TimeBetweenReg>
<StunServerPort>5060</StunServerPort>
<ProxyPort>5260</ProxyPort>
<ProxyHost>ASTIP</ProxyHost>
<VariableChoices />
<MatchingStrategy>MatchAnyFields</MatchingStrategy>
<DestNumberInRemotePartyIDCalled>False</DestNumberInRemotePartyIDCalled>
<DestNumberInRequestLineURI>True</DestNumberInRequestLineURI>
<DestNumberInTo>True</DestNumberInTo>
<Type>Provider</Type>
<RequireRegistrationFor>Nothing</RequireRegistrationFor>
<UseIPInContact>True</UseIPInContact>
<SupportReplaces>False</SupportReplaces>
<SupportReinvite>False</SupportReinvite>
<EnableSRTP>False</EnableSRTP>
<DeliverAudio>True</DeliverAudio>
<Internal>True</Internal>
<Lines>1</Lines>
<Port>5260</Port>
<Host>ASTIP</Host>
<Name>asterisk</Name>
<TemplateFilename>GenericVoIPProvider.pv.xml</TemplateFilename>
<Codecs>
<codec RFCName="PCMA" />
<codec RFCName="PCMU" />
</Codecs>
<ArrayOfInboundParam>
<InboundParam ParamName="RequestLineURIHost" ValueName="$DevHostPort" />
<InboundParam ParamName="ContactHost" ValueName="$DevHostPort" />
<InboundParam ParamName="ToDisplayName" ValueName="$CalledName" />
<InboundParam ParamName="ToUserPart" ValueName="$CalledNum" />
<InboundParam ParamName="FromDisplayName" ValueName="$CallerName" />
<InboundParam ParamName="FromUserPart" ValueName="$CallerNum" />
</ArrayOfInboundParam>
<ArrayOfOutboundParam>
<OutboundParam ParamName="RequestLineURIUser" ValueName="$CalledNum" />
<OutboundParam ParamName="RequestLineURIHost" ValueName="$GWHostPort" />
<OutboundParam ParamName="ContactUser" ValueName="$AuthID" />
<OutboundParam ParamName="ContactHost" ValueName="$ContactUri" />
<OutboundParam ParamName="ToDisplayName" ValueName="$CalledName" />
<OutboundParam ParamName="ToUserPart" ValueName="$CalledNum" />
<OutboundParam ParamName="ToHostPart" ValueName="$GWHostPort" />
<OutboundParam ParamName="FromDisplayName" ValueName="$OutboundCallerId" />
<OutboundParam ParamName="FromUserPart" ValueName="$AuthID" />
<OutboundParam ParamName="FromHostPart" ValueName="$GWHostPort" />
</ArrayOfOutboundParam>
<SIPFieldWithDID Name="RequestLineURIUser" />
</VoipProvider>
Better solution welcome.
Best regards,
Attila