Transition from Somos MGI to Somos Registry
In mid-2019, Somos replaced their SMS/800 system with a completely rewritten system known as the SMS/800 TFN Registry. As part of that new system, a new TFN Registry API was introduced which is available alongside the legacy MGI API that all clients of SMS/800 have been using since the 1990s. In October of 2019, Somos announced that the MGI would be decommissioned in 2021.

As a client of SMS/800 for over 25 years, 8MS was built on the MGI for all toll-free provisioning. For our API clients, rather than returning MGI formatted responses and forcing our customers to learn the rather unusual message formatting of the MGI, we chose to provide a more readable,consistent interface. The framework of the 8MS API responses is XML. For values being returned from SMS/800, all values are stored within the <msgparams> tag and these values are returned as key/value pairs. Each key/value is separated by an equals (=) sign and each pair is separated by a newline. A simple example of this can be seen in the Request Results section of the API Overview page of the API Guide.

Beginning with 8MS release 17.1, we have begun porting the 8MS API code, replacing MGI calls with Registry API calls. Early on in the design of this release, we established a set of ground rules for the conversion. Primary among those rules was to provide backward compatiblity for our API customers. We have striven to do exactly that, but found during development that it was not possible to be 100% backward compatible. The remainder of this page of the API Guide documents any known items that prevent 100% backward compatibility.

MsgParams Missing from Registry API Call Responses
In some cases, where the MGI API returned a key/value pair, the Registry API does not return this value. Each key known to be missing is listed below.
RED (Requested Effective Date), RET (Requested Effective Time)
The RED and RET fields are not returned where they are expected, in the following 8MS API calls:
  • RecordQuery
  • RecordRetrieve
  • NumberRetrieveAll
  • SmsTemplateQuery
  • SmsTemplateRetrieveAll
LNS (Number of Terminating Lines)
The LNS field is not returned where it is expected, in the following 8MS API calls:
  • SmsTemplateRetrieve
  • SmsTemplateRetrieveAll
Extra MsgParams in Registry API Calls
In some cases, the Registry API returns additional key/value pairs. These are keys that were added by Somos in the Registry API that do not exist in the MGI API. These keys may be distinguished in the XML response by the case of the key name. All known MGI keys are listed in all upper case; Registry keys that do not exist in MGI are listed in mixed case. Each extra key is listed below. In all cases, the calling client may safely ignore these key/value pairs.
recVersionId, lockStatus, reqeffDtTm, numStatus, perms, custRecCompPart, actionCode, lastUpDt, priority, lastUsr
These fields may appear in the response of many 8MS API calls.
stat
for each SMS Template record in the 8MS API call SmsTemplateList, the response will contain this field.
Inconsistencies in Registry API Calls
In many cases, the Registry API call responses returned in 8MS API calls will have the following issues.
MsgParam Order
The keys listed in the <msgparams> tag in a response from a Registry API call may not be in the same order they were in a response from an MGI API call.

If you currently parse the msgparams with an expectation of the order, you will experience problems.

10 Record Limit on Queries
When querying toll-free number and SMS Template records, the MGI had a limit of 10 records that would be returned in a single response. The Registry API does not have this limit, so all records will be returned in a single call. This impacts the following 8MS API calls:
  • RecordQuery
  • NumberQueryAll
  • SmsTemplateQuery
SMS Template List returns errorcd=10
The 8MS SmsTemplateList API call, when using the Registry API, returns a warning with an errorcd of 10 and a VERR of "No Template records exist for the requested keys." if a non-existant Template Name (8MS API param templatename) is provided. The MGI did not return this warning.