In SIP, there are fantastic digital services offered by telephony providers call SIP Trunks. Whether connecting to a provider via a B2BUA or SBC, no two providers are always exactly alike. Having gone through many different providers in the past that "promised" certain functions would work or not, I've come to have a certain level of skepticism. I could go into case by case details of "he said, she said", but that is somewhat fruitless. Instead I will only try to lay out the guidelines of what to look for in an ITSP from a technical "function" perspective, and why that matters.
First you need to examine who the ITSP is, what they offer and how you would be using them:
Do they offer registration or use IP based ACL's to determine where to send your calls?
How much do they cost? How do they bill for calls and DID numbers?
Do they offer the codec selection you need? (Faxing in sipXecs 4.4 requires t.38 protocol/codec if used on a sip trunk).
Do they offer TLS? Do you need it?
Can they send calls to you on a port other than 5060?
How do they handle Music On Hold?
Do they allow me to send my own callerid out?
Do they offer inbound callerid name AND number?
Do they support reinvite or re-negotiation of codecs after a call is established?
What happens when your server is unavailable?
Do they offer DID numbers? What areas are those numbers available?
Do they have multiple sites to backup their network?
Do they offer hosted services for failover?
Do they support loose routing in the INVITE (calls sent to them)?
Do they send the DID number in the INVITE or TO header?
How is their technical support staffed?
What numbers do they send in the DID? What numbers do they require to be sent out?
Do they require a separate registration for each DID number?
Do they support e911?
Do they offer a test account, or test period, so that you can make sure you don't have issues with long calls (20 or 30 minutes) being dropped? So that you can test different calls paths (attended and blind transfer)?
Do they require a long term contract or are they "pay as you go" service?
I ask these questions because I have seen them all come up or I have seen an issue "because" the question did not come up prior to implementing service with an ITSP.
I have said it before, and I will again: Not all ITSP's are equal. I have seen the best ITSP's no be flexible enough to accept calls on a different port (other than 5060), I have seen other ITSP's send the DID number to the TO: header, require to send 10 digits on inbound calls while at the same time requiring 11 digits to send calls to them and not adhere to RFC3261 by not allowing the loose-routing tag on an invite. There are also other ITSP's that send a billing code prepended to your DID number, that say they support G711u but only send G729 and their error codes in traces are not at all helpful in indicating it was a codec allowed issue, so you have to track them down to get G711u (or a) added to your account. I have seen some ITSP's require a separate registration for each DID number you need form them.
NORMALLY most ITSP's worht the time and trouble don't have these issues, but when an ITSP's doesn't do these things, they usually don't do "several" things right (in my opinion).
Choosing your carrier properly is a big first step toward doing anything properly. Choose with caution.