The Telappliant Orbtalk service has many users using 3CX with its SIP trunking. Orbtalk supports G711U, G711A, G729 (including annex B), GSM, iLBC and SPEEX. DTMF should be tested first with Inband and DTMF via SIP INFO on the device.
The below article is from the 3CX forum regarding inbound issues to DIDs.
Historically we have always used the "source identification" in the VoIP Provider to trigger the DID's as I think when we first started using 3CX that this was the only way to do it or it is possible it's the only way I found to do it.
In the current v7 release I have also discovered that the minute you amend the "VOIP Provider > <your VOIP provider> > DID > SIP Field containing DID numbers" field from blank to something else then any inbound rules setup in "VOIP Provider > Inbound Parameters > Call Source Identification" seems to be completely ignored. there is also no way back as once this field is set you cannot blank it again.
The correct procedure for setting up DID's appears to be as follows (extracted from forums):
- Setup your VoIP provider
- Under the main number for the VoIP provider scroll down to "VoIP Provider > <number> > Other Options > Source Identification by DID"
- In this field define all the masks for all DID numbers that come in under this VoIP provider. You do this using a comma separated list. For example we might have the DID range 01695555100 to 01695555125 inclusively allocate so this means we could define 0169555510*(this captures all 01695555100-109), 0169555511*(this captures all 01695555110-119), 01695555121, 01695555122, 01695555123, 01695555124, 01695555125 (these we have to capture separately) . The 3CX platform then knows when it sees this number that it is related to this VOIP Provider. Just be a little careful as the assumption is that the VOIP provider sends the full DID in the SIP message, we have heard that some VOIP provider sometimes only send the last 6 digits etc. you will just need to check your SIP messages to be completely sure what is being sent to you.
- Next you have to specify on 3CX where in the incoming SIP message this incoming DID number is stored so 3CX knows where to pull it out of and check it against the DID mask. You do this in "VoIP Provider > <your VoIP provider> > DID > SIP Field > SIP Field containing DID numbers". In order to find this information you will need to set the logging level of 3CX to "Verbose" (then restart 3CX) and then call one of the DID numbers from an external phone. You should get something in the log that looks something like this:
14:13:59.136 [CM500002]: Unidentified incoming call. Review INVITE and adjust source identification:
INVITE sip:<"If your DID number is here set it to "Request Line USI:User Part"@18.104.22.168:45169;rinstance=d3e7c28b7f6b8eee SIP/2.0
Contact: <sip:"If your DID number is here set it to "Contact:User Part"@22.214.171.124:5060>
To: <sip:"If your DID number is here set it to "To:User Part"@126.96.36.199>
From: <sip:"If your DID number is here set it to "From:User Part"@188.8.131.52>;tag=3441625669-741784
5. You should then add your DID numbers to "VOIP Provider > <your voip provider> > DID > DID Numbers" and also define incoming routing rules for them.