| Crates.io | cal-jambonz |
| lib.rs | cal-jambonz |
| version | 0.1.76 |
| created_at | 2025-03-21 23:42:31.175103+00 |
| updated_at | 2025-07-10 18:52:24.455301+00 |
| description | Jambonz Verbs |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1601358 |
| size | 371,891 |
A Rust library for building applications that interact with the Jambonz communications platform.
π± Heads up! For implementing a complete Jambonz webhook server with Actix Web integration, check out our awesome companion project jambonz-actix-web - it's perfect for handling those webhooks like a pro!
This library provides a Rust implementation for creating and managing Jambonz applications. Jambonz is an open-source CPaaS (Communications Platform as a Service) that allows developers to build voice and messaging applications using a simple API. This library allows you to create Jambonz applications using type-safe Rust code, abstracting away the complexities of the underlying JSON webhook API.
actix-web, actix-ws, uuid, serde, futures, etc.Add this to your Cargo.toml:
[dependencies]
cal-jambonz-rust = "0.1.0"
Here's a simple example of using the library to create a basic IVR (Interactive Voice Response) application:
use cal_jambonz_rust::{JambonzResponse, verbs::*};
use cal_jambonz_rust::verbs::synthesizer::Synthesizer;
// Handle an incoming call webhook from Jambonz
fn handle_call_webhook(request_json: &str) {
// Parse the incoming webhook data
// (Implementation would depend on your web framework)
// Build a response with Jambonz verbs
let mut say = Say::new("Welcome to our service!".to_string());
say.synthesize(Some(Synthesizer::default().voice("female").language("en-US")));
let response = JambonzResponse::new()
.add_verb(say);
// Print the JSON response
println!("{}", response.to_json().unwrap());
// The JSON response would look something like:
// {
// "verb": "say",
// "text": "Welcome to our service!",
// "synthesizer": {
// "voice": "female",
// "language": "en-US"
// },
// "loop": 1,
// "earlyMedia": false
// }
}
This library supports all standard Jambonz verbs including:
Say - Synthesize speechPlay - Play an audio fileGather - Collect DTMF digitsRecord - Record the callDial - Make an outbound callConference - Create or join a conferenceHangup - End the callSip:decline - Decline an incoming callLeave - Leave a conferenceTransfer - Transfer the callPause - Pause executionTag - Add metadata to call eventsConfig - Configure call parametersEnqueue - Place call in a queueDequeue - Remove call from a queueFor detailed documentation on each verb and its options, please refer to the code documentation.
This project is licensed under the MIT License - see the LICENSE file for details.
PRs and issues are welcome. Whether it's bug fixes, new features, or documentation improvements β let's build together.
Future enhancements planned for this library: