Media gateways are useful things. Signalling and media gateways are even more useful, at least according to Wikipedia, which states that "Modern media gateways used with SIP are often stand-alone units with their own call and signalling control integrated and can function as independent, intelligent SIP end-points." They must’ve had GroomerII in mind. Who was it who said, "I learned everything I know from Jimmy Wales," by the way?
So, gateways are intelligent. But they can’t do everything (they don’t have to do everything) and they shouldn’t do everything. We’d have to invent a new label for something that did. In fact, the label ‘gateway’ is sufficiently descriptive not to need much introduction, which is probably why the Wikipedia page is quite short and sweet. If Wee Willie Shakespeare was around today, instead of writing a tribute to the rose, he might well pen the following: "A gateway by another name would still be neat."
You might then ask, "When is a gateway not a gateway?" And the answer is, "When you know it’s there." Gateways should be like the ‘choir invisible’ – perhaps seen and heard (ah, those melodious cooling fans!), but not obtrusive. More like George Eliot’s stirring original than Monty Python’s [in]famous ‘Dead Parrot’ – "Its discords, quenched by meeting harmonies."
A gateway should be like a translator, but less the eloquent interpreter than pedantic repeater. In a simple analogy, the gateway should harmoniously translate German (SS7) to English (SIP) – or vice versa – but without the accent. Nevertheless, that’s not to say that gateways shouldn’t get involved in the call processing.
A gateway’s job is to pass through the incoming call, seamlessly performing the translation on the way through to the corresponding outgoing call. The gateway’s job is not to terminate the call and playback say, an interactive voice response (IVR) prompt to the caller. If the call can’t be completed, the gateway’s job is to play (or initiate) the appropriate network tone to the caller – busy; engaged; etc. That way, it’s as if the gateway is invisible – which is exactly what the caller should experience.
In terms of ‘getting involved’ and assuming the call can be completed, a valid task for a gateway, prior to setting up the outgoing call, is to determine the routing for that call. Intelligent gateways can perform number portability, number translation (a.k.a. digit manipulation), and conditional routing (e.g., ‘go/no-go’ database lookups) to direct a call to the desired destination say, a SIP end point. But the gateway shall not, will not, must not, interject its ‘opinion’ on the conversation.
To reiterate; gateways can’t do everything, but they can do a lot. Passing through information is a key requirement. Gateways act on certain information contained within the signalling, which is interpreted in order to evoke the onward call, but other than translation, gateways don’t interfere with the payload. That’s the job of the application installed at the receiving end point.
A clever gateway merely passes on the information. However, an intelligent gateway can also pass on key information from within the signalling messages (e.g., an SS7 initial address message (IAM)) that are used to set up the incoming call. That information will be essential to the purpose of the application and will be contained in the corresponding outbound call signalling, which can be e.g., a SIP INVITE. The application needs to play its part and be able to parse the incoming message data in addition to dealing with the media payload.
In closing; a critical element to consider when choosing a gateway vendor is what happens when an interworking specification for the necessary information exchange, between the incoming and outgoing signalling protocols, doesn’t exist. In such cases, you must look to a gateway vendor that is prepared to implement a proprietary solution e.g., additional SIP ‘headers’. And, as a final lyrical point – you must find a vendor that is in tune with your requirements and prepared to implement something to rhyme with your application.