DNA Helper

The DNA Helper interface is a mechanism that allows the Serval DNA daemon to invoke an external executable (typically a script) whenever it receives a Distributed Numbering Architechure (DNA) Lookup query. The queried Dialled Identity (DID) is passed to the script's standard input, which can respond on standard output with zero or more URIs which tell the requestor how to call the requested number. All valid output URIs are returned to the DNA requestor in addition to any URI returned by Serval DNA itself.

The interface was designed to tolerate all kinds of script behaviour and misbehaviour by imposing a timeout on each invocation and using escalating signals to kill scripts that run for too long. The script's standard error is echoed to the Serval DNA log to aid development and diagnosis of scripts. The script's output is carefully parsed to ensure it conforms to the allowed responses. Any malformed output is logged but not sent.

The DNA Helper interface was designed and implemented in mid 2012 as part of the New America Foundation - First Contractor Agreement “NAF1”, in order to implement Commotion OpenBTS integration.


Login