{"id":37029666,"url":"https://github.com/asterisk-java/asterisk-java","last_synced_at":"2026-01-14T03:34:26.660Z","repository":{"id":1256641,"uuid":"1195396","full_name":"asterisk-java/asterisk-java","owner":"asterisk-java","description":"The free Java library for Asterisk PBX integration.","archived":false,"fork":false,"pushed_at":"2025-12-17T02:56:18.000Z","size":56536,"stargazers_count":450,"open_issues_count":25,"forks_count":298,"subscribers_count":69,"default_branch":"main","last_synced_at":"2025-12-20T16:56:52.524Z","etag":null,"topics":["asterisk","asterisk-agi","asterisk-ami","asterisk-pbx","java"],"latest_commit_sha":null,"homepage":"http://asterisk-java.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asterisk-java.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2010-12-24T12:06:07.000Z","updated_at":"2025-12-17T02:56:20.000Z","dependencies_parsed_at":"2023-11-19T17:25:02.453Z","dependency_job_id":"b395ae4a-5fff-49dc-840e-9c47d69420ec","html_url":"https://github.com/asterisk-java/asterisk-java","commit_stats":{"total_commits":1883,"total_committers":105,"mean_commits":"17.933333333333334","dds":0.5151354221986193,"last_synced_commit":"e4de10deb218f96a2d5507384e9c1fc63328fc2e"},"previous_names":[],"tags_count":76,"template":false,"template_full_name":null,"purl":"pkg:github/asterisk-java/asterisk-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk-java%2Fasterisk-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk-java%2Fasterisk-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk-java%2Fasterisk-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk-java%2Fasterisk-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asterisk-java","download_url":"https://codeload.github.com/asterisk-java/asterisk-java/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterisk-java%2Fasterisk-java/sbom","scorecard":{"id":213317,"data":{"date":"2025-08-11","repo":{"name":"github.com/asterisk-java/asterisk-java","commit":"a1984f96c55e326dffb38a9c8ef20f613b535966"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 1/14 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release-drafter.yml:14","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:38","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/release-drafter.yml:9","Warn: no topLevel permission defined: .github/workflows/release.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: .mvn/wrapper/maven-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/asterisk-java/asterisk-java/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/asterisk-java/asterisk-java/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-drafter.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/asterisk-java/asterisk-java/release-drafter.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/asterisk-java/asterisk-java/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/asterisk-java/asterisk-java/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/asterisk-java/asterisk-java/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/asterisk-java/asterisk-java/release.yml/main?enable=pin","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T01:09:13.111Z","repository_id":1256641,"created_at":"2025-08-17T01:09:13.111Z","updated_at":"2025-08-17T01:09:13.111Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408843,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asterisk","asterisk-agi","asterisk-ami","asterisk-pbx","java"],"created_at":"2026-01-14T03:34:26.074Z","updated_at":"2026-01-14T03:34:26.649Z","avatar_url":"https://github.com/asterisk-java.png","language":"Java","readme":"# Asterisk-Java\n\n## Introduction\n\nThe Asterisk-Java package consists of a set of Java classes that allow you to\neasily build Java applications that interact with\nan [Asterisk PBX Server](https://www.asterisk.org/).\nAsterisk-Java supports both interfaces that Asterisk provides for this\nscenario:\nThe [FastAGI](https://docs.asterisk.org/Latest_API/API_Documentation/Dialplan_Applications/AGI/)\nprotocol and\nthe [Manager API](https://docs.asterisk.org/Configuration/Interfaces/Asterisk-Manager-Interface-AMI/The-Asterisk-Manager-TCP-IP-API).\n\nYou can find the Java docs for the latest version here:\n[Javadoc](https://javadoc.io/doc/org.asteriskjava/asterisk-java/latest)\n\n### FastAGI\n\nFastAGI lets you create a service that manages a call in a similar way to how\na webserver handles an HTTP request. FastAGI can be (and should be) used to\nreplace dialplan. FastAGI is thousands of times faster than dialplan, easier to\ndebug and lets you do call control in a language that you are familiar with.\n\nThe FastAGI implementation supports all commands currently available from\nAsterisk.\n\n### Manager API\n\nThe Manager API implementation supports receiving events from the Asterisk\nserver (e.g. call progress, registered peers, channel state) and sending actions\nto Asterisk (e.g. originate call, agent login/logoff, start/stop voice\nrecording).\nIf you like, the Manager API allows you to start and manipulate calls. A\ncomplete list of the available events and actions is available in the\n[documentation](https://javadoc.io/doc/org.asteriskjava/asterisk-java/latest).\n\n### Activities\n\nActivities are new to asterisk-java 2.0. The aim of Activities is to provide a\nhigh level interface to interactions with Asterisk. Whist Activities use both\nFastAGI and the Manager API you would normally consider Activities as a\nreplacement for the Manager API.\n\nActivities provide a simple and consistent method of interaction with Asterisk\nwithout having to worry about issues such as connection management and without\nhaving to understand the intricacies of Asterisk Manager Actions and Events.\n\n[Getting Started](https://github.com/asterisk-java/asterisk-java/wiki/Getting-Started)\n\n[Tutorial](https://github.com/asterisk-java/asterisk-java/wiki/Tutorial)\n\n[Activities](https://github.com/asterisk-java/asterisk-java/wiki/Activities)\n\n[Examples](https://github.com/asterisk-java/asterisk-java/wiki/Examples)\n\n---\n\n## Getting Asterisk-Java\n\nAsterisk-Java is available\n[on GitHub](https://github.com/asterisk-java/asterisk-java/releases).\n\n### Maven\n\nAsterisk-Java 3.x (Java 1.8 and Asterisk Version 10 thru 23) (master)\n\n```xml\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.asteriskjava\u003c/groupId\u003e\n    \u003cartifactId\u003easterisk-java\u003c/artifactId\u003e\n    \u003cversion\u003e3.41.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Gradle\n\n```text\nimplementation group: 'org.asteriskjava', name: 'asterisk-java', version: '3.41.0'\n```\n\n### Installation from source\n\n```text\ngit clone https://github.com/asterisk-java/asterisk-java.git\ncd asterisk-java\nmvn install\n```\n\nAfter the build is complete, the jar will then be built as\n`target/asterisk-java.jar` in the `asterisk-java` directory.\n\n## Example\n\nThe file `examples/ExampleCallIn.java` will answer the call and playback the\naudio file 'tt-monkeys'.\n\n```java\nimport org.asteriskjava.fastagi.AgiChannel;\nimport org.asteriskjava.fastagi.AgiException;\nimport org.asteriskjava.fastagi.AgiRequest;\nimport org.asteriskjava.fastagi.BaseAgiScript;\n\n/* Example incoming call handler. Answer call, speak message */\npublic class ExampleCallIn extends BaseAgiScript {\n    public void service(AgiRequest request, AgiChannel channel) throws AgiException {\n        answer();\n        exec(\"Playback\", \"tt-monkeys\");\n        hangup();\n    }\n}\n```\n\nThe file `examples/fastagi.properties` maps your Asterisk dialplan context to\nthe class you would like to invoke above.\n\n```text\ncallin.agi = ExampleCallIn\n```\n\nTo compile and run:\n\n```text\njavac -cp asterisk-java.jar ExampleCallIn.java\njava -cp asterisk-java.jar org.asteriskjava.fastagi.DefaultAgiServer\n```\n\n## System Requirements\n\nAsterisk-Java needs a Java Virtual Machine of at least version\n1.8 ([Java SE 8.0](https://docs.oracle.com/javase/8/)).\nIf you want to build the jar from source, you will also\nneed [Maven](https://maven.apache.org/).\n\n## Legal\n\nAsterisk-Java is subject to the terms detailed in the license agreement\naccompanying it.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasterisk-java%2Fasterisk-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasterisk-java%2Fasterisk-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasterisk-java%2Fasterisk-java/lists"}