{"id":22178130,"url":"https://github.com/bluurr/virtual-number-forwarding-lambda","last_synced_at":"2025-03-24T18:42:49.096Z","repository":{"id":117572909,"uuid":"205415569","full_name":"bluurr/virtual-number-forwarding-lambda","owner":"bluurr","description":"A AWS lambda function for generating a call-plan for an incoming call from a virtual number for the Nexmo platform.","archived":false,"fork":false,"pushed_at":"2019-08-31T16:27:24.000Z","size":74,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T23:24:52.920Z","etag":null,"topics":["aws","aws-cloudformation","aws-lambda","aws-sam","azure-pipelines","bluurr","burner-number","callplan","cicd","java","lombok","nexmo","nexmo-java","spring-cloud-function","virtual-number"],"latest_commit_sha":null,"homepage":"","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/bluurr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2019-08-30T16:07:31.000Z","updated_at":"2022-12-04T16:18:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"845fe6e4-fd57-474c-a87d-4c520a3337d8","html_url":"https://github.com/bluurr/virtual-number-forwarding-lambda","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluurr%2Fvirtual-number-forwarding-lambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluurr%2Fvirtual-number-forwarding-lambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluurr%2Fvirtual-number-forwarding-lambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bluurr%2Fvirtual-number-forwarding-lambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bluurr","download_url":"https://codeload.github.com/bluurr/virtual-number-forwarding-lambda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245330461,"owners_count":20597773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aws","aws-cloudformation","aws-lambda","aws-sam","azure-pipelines","bluurr","burner-number","callplan","cicd","java","lombok","nexmo","nexmo-java","spring-cloud-function","virtual-number"],"created_at":"2024-12-02T08:45:33.228Z","updated_at":"2025-03-24T18:42:49.091Z","avatar_url":"https://github.com/bluurr.png","language":"Java","readme":"# Virtual Number Forwarding Lambda\n\nA AWS lambda function for generating a call-plan for an incoming call from a virtual number. \n\n[![Build Status](https://dev.azure.com/open-source-bluurr-io/virtual-number-umbrella-project/_apis/build/status/bluurr.virtual-number-forwarding-lambda?branchName=master)](https://dev.azure.com/open-source-bluurr-io/virtual-number-umbrella-project/_build/latest?definitionId=1\u0026branchName=master)\n\n## Getting Started\n\nThis lambda allows a incoming phone call from a [Nexmo](https://nexmo.com) virtual phone number to be manipulated with the following behaviour(s):\n\n- Voice instructions \n- Number Whitelisting\n\n### Example Use Case\n\n- Virtual Number for CV to reduce volume of recruiters calls.\n- Burner number for short lived ads.\n\n### Prerequisite\n\nThe library requires the following minimum versions\n\n1. Java 8\n2. [Maven 3+](https://maven.apache.org)\n3. [Lombok](https://projectlombok.org)\n\n#### Additional\n\n- [Docker](https://www.docker.com) (For local running using AWS SAM)\n- [AWS CLI](https://aws.amazon.com/cli) (For deployment to AWS)\n- [cygwin](https://www.cygwin.com) (For deployment to AWS on Windows (Bash Required))\n\n#### Services\n\n- [AWS Account](https://aws.amazon.com/) (For deployment)\n- [Nexmo Account](https://www.nexmo.com/) (For Virtual Number)\n\n##### Nexmo\n\nThe Nexmo account will require an [application](https://dashboard.nexmo.com/voice/your-applications) to be set-up and a [number](https://dashboard.nexmo.com/buy-numbers) to be purchased and linked with the application.\n\nThe application needs the web-hooks for `Event URL` and `Answer URL` to be use HTTP `POST` and should point at the API Gateway (Custom domain or AWS provided URL). For example a custom URL may look like `https://dev.api.bluurr.io/call-event`\n \n### Building\n\nTo build the lambda application run the following maven command.\n\n```BASH\nmvn clean verify\n```\n\n### Running Locally\n\nThe project can be ran locally in the following ways:\n\n#### SAM tooling\n\nUsing [SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) the lambda function can be deployed in a AWS like environment on the local machine.\n\nFull documentation can be found [here](./docs/RUN-LOCALLY.md)\n\n#### Spring Boot Web Application\n\nThe application can be booted like a normal Spring Boot application ([Spring Docs](https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-running-your-application.html)).\n\nThis will start a web endpoint exposing the function at `http://localhost:8080/function` an example `POST` payload can be found [here](./src/test/resources/local/stack/basic-api-gateway-request-event.json).\n\nMore information can be found [here](https://cloud.spring.io/spring-cloud-function/multi/multi__functional_bean_definitions.html)\n\n### AWS Deployment\n\nThis function can be deployed to the AWS lambda platform (it's recommended to take advantage of the free tier more information [here](https://aws.amazon.com/free/)). \n\nFull documentation can be found [here](./docs/AWS-DEPLOYMENT.md)\n\n### Pipeline\n\nA pipeline definition for building the lambda function can be found for the following.\n\n#### Azure Pipeline\n\nThe following pipeline configuration found [here](./cicd/azure-pipeline/azure-build.yaml) can be imported directly into [azure pipelines](https://azure.microsoft.com/en-gb/services/devops/pipelines/) which will provide a full build of this lambda function.\n\n## License\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluurr%2Fvirtual-number-forwarding-lambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbluurr%2Fvirtual-number-forwarding-lambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluurr%2Fvirtual-number-forwarding-lambda/lists"}