Fosniedocsv0.6
Changelog

v0.6.0

Fosnie answers the telephone: a number is answered by an agent of your choosing, which takes messages, screens callers, books appointments, puts people through and can keep a recording, with the whole call running on your own infrastructure.

Point a telephone number at your instance and Fosnie answers it. The caller speaks to it the way you already speak to voice mode in the app, and it takes messages, checks who is calling, offers and books appointments, hands over to a person when it should, and can keep a recording of what was said. A line can be carried by a telephone company or by a telephone system on your own network, and on the second the audio never reaches anybody else at all.

Answering the telephone

A telephone number can now be answered by an agent, on behalf of an account you choose, registered and switched on in a Telephone section with a permission of its own. Recognition, the language model and the voice are already part of a Fosnie deployment, so an answered call costs the telephone network's charge and nothing else: for a line taking a few hundred calls a month, that is a few pounds of telephony. What a caller can reach is exactly what the answering agent can reach, its tools and its Libraries and nothing else, so a line's boundary is set by the agent rather than by wording. Every call becomes an ordinary conversation belonging to the account the line runs as, and the call log links to it under the permission that already governs reading that account's conversations.

Tuning a telephone line, and measuring it

Turn-taking settings can now be given a separate value for calls, and one that is not simply follows the shared value. Out of the box a call waits 900 milliseconds after speech stops rather than 1500 and yields after 240 milliseconds of being talked over rather than 320, because what a caller hears is that delay plus everything still queued between here and their handset. A call also reports when the caller began hearing the reply and when they finished, measured by asking the network to confirm playback, so the published target of a reply starting within eight tenths of a second now applies to the figure a caller would recognise.

Taking a message

A line can now write down what a caller wanted and pass it on: a message when somebody wants ringing back, an enquiry when somebody new is describing what they need, both recorded against the call they were taken on. A deployment gets a Receptionist agent ready to use, holding three tools that write rather than read, so what a caller could talk it into is bounded by what it is able to do at all. A line can additionally announce into a team chat, which is told that a call came in, from whom, about what and how urgent, and never what was said, and only into a chat the line's own account belongs to. Somebody who may register lines sees that a message was taken, and not the message.

Putting the caller through

A line can now hand a caller to a person, and the agent can finish a call itself. Neither connects out to the telephone network: the network is already holding the call open and asks what to do with it when our side finishes, so a transfer is something we answer rather than something we dial, and nothing is added to what a deployment reaches out to. The number is set on the line and the agent only decides whether to use it, because a caller who can influence the number is a caller who can have your deployment ring anybody at your expense. Whoever picks up gets a written handover, and if nobody answers within about twenty-five seconds the caller is told and the call ends.

Checking who is calling

An account can keep a list of names its lines check callers against before offering them anything. Paste it as it comes out of your own system: spelling, punctuation, titles, company endings and word order are all ignored when a caller is checked. While a list exists the check is enforced rather than requested, and never having been checked counts as not clear, so a caller who will give only a surname has a message taken instead of being put through. The list is never read out and the caller is never told a check happened, because telling somebody they are on your records tells them the practice is involved in a matter concerning them, and they may be the other side of it.

Arranging a time

A line can now offer times, book one, move it and cancel it, against a diary with real opening hours and a real time zone. Hours are kept in your own local time and turned into actual moments using the time-zone database, so your nine in the morning stays nine in the morning after the clocks change, the hour that does not exist when they go forward is never offered, and the hour that happens twice when they go back is offered once. The agent never works a time out for itself: it books from a code in the answer it was given, and the moment is derived again from your opening hours before anything is written, so a time outside them cannot become an appointment however the conversation goes. Moving or cancelling by telephone needs the reference and either the number being rung from or the name it was booked under, three attempts to a call, and a refusal never says which half was wrong.

Telling the caller, and throwing things away

Every caller now hears a greeting and a notice before the line listens to anything, and it cannot be talked over: a caller who speaks across it is neither cut off nor answered underneath it, and a line that cannot say it does not take the call at all. The standard wording tells the caller they are speaking to an automated assistant, that what they say is written down so their enquiry can be dealt with and that a member of staff may read it, and that they can ask for a person instead; you can write your own for a line and see the exact sentence a caller will hear as you type it. Two retention periods can be set per line, one for what was said and one for the call record, both keeping everything until you set them, and a single call's conversation can be thrown away on request. Messages, appointments and your screening list are your own records rather than a by-product of a call, so no retention period deletes them, and there is a record of what each line says and holds, read from the settings as they stand rather than written down once.

Reaching the systems a practice actually runs on

Tools that reach an outside system can now be used during a call, under a rule that nothing waits for a person: a server or a tool definition is marked as usable on a call or it is not, an unmarked one is refused with something the agent can say aloud, and any tool used on a call has a ceiling of eight seconds. Reading is unaffected; permission to write into an outside system is a decision an operator makes deliberately, once, in front of a plain description of what it means. A line can also post into a chat channel when it takes a message or books, moves or cancels an appointment: Slack, Teams, or any address that accepts a posted message, carrying who rang and what it is about and never a word of what was said. Nothing is sent until outward notifications are switched on, the address is stored encrypted and shown only as the host it points at, and the call never waits on a chat service.

A telephone line that runs on your own system

A line can now be answered by a telephone system on your own network, which hands the audio straight to the deployment and takes the reply back the same way, so nothing about the call reaches anybody else: not the audio, not the words, not who rang. Everything above the transport is unchanged: the same notice, the same messages, appointments, screening, retention and transfers. An incoming call is given a one-off identifier, good for thirty seconds and usable exactly once, a connection presenting anything else is closed without a word, and the two questions your system asks carry a shared secret and are accepted only from your own network. Both ways of answering run side by side, so a public number can stay with a telephone company while an internal one is answered on your own system, with the same agent and the same records behind both.

Switching the telephone on

The telephone settings are now in the interface rather than on a command line: what answers a call, the address callers reach you at, the ceiling on simultaneous calls, and for your own telephone system the address to listen on and the shared secret, with both credentials write-only. Beside them is a readiness check that asks the questions a call asks, in the order a call asks them, and says what to do about each answer. One of those is a real request rather than a setting read: it sends a short test phrase to your speech engine, because a deployment with no working engine answers a call, cannot tell the caller what they are speaking to, and ends it. The check is shown both to whoever operates the deployment and on the telephone screen, and no part of it ever contains a credential.

Listening to a call

A line can now keep the sound of its calls, played back from the call log with the length and the size beside it. Turning it on adds one sentence to what every caller hears before they have said anything, that the call is recorded, and there is no way to configure a line that records without saying so. The recording is two channels, the caller on one side and your line on the other, laid out on the clock rather than stitched together, at about a megabyte a minute. Only the account whose line took the call may listen, or an administrator of the deployment, and every listen is recorded in the audit trail; a period after which the audio is deleted is compulsory, and deleting what was said on a call deletes its recording with it.

Also in this release

  • Live voice can now be carried over something other than a browser tab: the conversation, its turn taking and its interruptions are no longer tied to one kind of connection, and the narrowband audio handling a telephone line needs is in place ready for it.
  • Fixed wide tables in the admin console giving the whole page a horizontal scrollbar: a table with more columns than the page is wide now scrolls inside its own box, leaving the headings and prose beside it where they were.

Upgrading

The reply-latency measurement now reports in seconds, like every other timing in the system, and under a new name. A dashboard imported from an earlier release needs the new series.

Was this page helpful?

On this page