{"id":21406637,"url":"https://github.com/ringcentral/ringcentral-pjsip","last_synced_at":"2025-10-23T22:26:54.251Z","repository":{"id":146854232,"uuid":"231447703","full_name":"ringcentral/ringcentral-pjsip","owner":"ringcentral","description":"Use PJSIP to create RingCentral device simulators","archived":false,"fork":false,"pushed_at":"2024-11-06T22:42:39.000Z","size":4649,"stargazers_count":9,"open_issues_count":0,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-07T20:21:39.334Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ringcentral.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-01-02T19:39:20.000Z","updated_at":"2024-11-06T22:42:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"33a72467-982a-431d-ab8a-5618bfccf0d2","html_url":"https://github.com/ringcentral/ringcentral-pjsip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ringcentral/ringcentral-pjsip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fringcentral-pjsip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fringcentral-pjsip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fringcentral-pjsip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fringcentral-pjsip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ringcentral","download_url":"https://codeload.github.com/ringcentral/ringcentral-pjsip/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ringcentral%2Fringcentral-pjsip/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265227898,"owners_count":23731059,"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":[],"created_at":"2024-11-22T16:41:07.557Z","updated_at":"2025-10-23T22:26:54.196Z","avatar_url":"https://github.com/ringcentral.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ringcentral-pjsip\n\nUse [PJSIP](https://www.pjsip.org/) to create RingCentral device simulators.\n\nTechnical Reference: [slides](https://docs.google.com/presentation/d/15KvnbZVB_adSN6xjwlRHh-dsc3HWeVrAkxvBRSLVGPc/edit?usp=sharing).\n\n## Setup\n\n```\ndocker build -t ringcentral-pjsip .\ncp credentials.sample.hpp credentials.hpp\n```\n\nEdit `credentials.hpp` and specify credentials.\n\n## Run\n\n```\ndocker run -it --rm -v $(pwd):/ringcentral-pjsip ringcentral-pjsip ./run.sh \u003cfile-name\u003e.cpp\n```\n\nFor example:\n\n```\ndocker run -it --rm -v $(pwd):/ringcentral-pjsip ringcentral-pjsip ./run.sh demos/call-and-play-wav-file.cpp\n```\n\n## Test\n\nCall the phone number associated with your RingCentral device.\n\n## Todo\n\n- How to deploy to AWS?\n- Add demo about microphone and speaker\n- high concurrence\n  - one application to handle handreds of calls\n\n## Miscellaneos\n\n### How to gererate wav file for testing\n\n```\nsay -o temp.wav --data-format=LEI16@48000 \"Hello world\"\n```\n\nCommand above convert text \"Hello world\" to `temp.wav` file.\n\n**BUT** this file doesn't have proper headers.\n\nIn order to fix it, we need ffmpeg:\n\n```\nffmpeg -i temp.wav hello.wav\n```\n\n## Dev notes\n\nHow to run a docker bash:\n\n```\ndocker run --rm -it ringcentral-pjsip /bin/bash\n```\n\n- Ref: https://docs.pjsip.org/en/2.10/pjsua2/account.html\n\n## Emergency Address\n\nIf you change your device's emergency address on service.ringcentral.com, sometimes the emergency address will be pending or failure to change.\n\nIf it happens, your cannot make any outbound calls. Server side will reply with `SIP/2.0 486 Busy Here` if you try to make outbound calls.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fringcentral%2Fringcentral-pjsip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fringcentral%2Fringcentral-pjsip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fringcentral%2Fringcentral-pjsip/lists"}