{"id":24514639,"url":"https://github.com/alisio/opensips","last_synced_at":"2026-05-27T21:31:44.000Z","repository":{"id":71973118,"uuid":"197674158","full_name":"alisio/opensips","owner":"alisio","description":"OpenSIPS server puppet provisioning","archived":false,"fork":false,"pushed_at":"2019-10-03T14:22:11.000Z","size":1715,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-12T23:24:22.207Z","etag":null,"topics":["asterisk","opensips","provision","puppet","rtpproxy","sip","sip-server","voip"],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/alisio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-07-19T00:26:16.000Z","updated_at":"2020-08-29T01:12:33.000Z","dependencies_parsed_at":"2024-06-11T01:23:07.086Z","dependency_job_id":null,"html_url":"https://github.com/alisio/opensips","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/alisio/opensips","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alisio%2Fopensips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alisio%2Fopensips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alisio%2Fopensips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alisio%2Fopensips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alisio","download_url":"https://codeload.github.com/alisio/opensips/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alisio%2Fopensips/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33585203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"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","opensips","provision","puppet","rtpproxy","sip","sip-server","voip"],"created_at":"2025-01-22T01:13:57.660Z","updated_at":"2026-05-27T21:31:43.979Z","avatar_url":"https://github.com/alisio.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# opensips\n\n#### Table of Contents\n\n1. [Overview](#overview)\n2. [Module Description - What the module does and why it is useful](#module-description)\n3. [Setup - The basics of getting started with opensips](#setup)\n    * [What opensips affects](#what-opensips-affects)\n    * [Setup requirements](#setup-requirements)\n4. [Usage - Configuration options and additional functionality](#usage)\n5. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n5. [Limitations - OS compatibility, etc.](#limitations)\n6. [Development - Guide for contributing to the module](#development)\n\n## Overview\n\nThis module purpose is to provision a SIP server running on Centos 7. This module was tested with puppet 5.\n\nTo install opensips on a server, simply use the following:\n```\ninclude opensips\n```\n\n## Module Description\n\nThis modules install an configure a SIP server based on the Opensips proxy, rtpproxy as media relay proxy and mariadb database server.\n\n## Setup\n\n### What opensips affects\n\nPackages installed:\n* augeas\n* bash-completion\n* fail2ban\n* opensips\n* opensips-db_mysql\n* opensips-httpd\n* opensips-json\n* opensips-proto_tls\n* opensips-tls_mgm\n* opensips-pua\n* opensips-pua_usrloc\n* rtpproxy\n* sngrep\n* tcpdump\n\nConfigured services:\n* Opensips\n* Mysql\n* rtpproxy\n* syslog\n* logrotate\n\n### Setup Requirements\n\n\nThe following packages are dependencies:\n* epel-release\n\nThe following modules are dependencies:\n\n* puppetlabs-stdlib (\u003e= 4.22.0 \u003c 6.0.0)\n* puppetlabs-mysql (\u003e= 10.0.0 \u003c 11.0.0)\n\nYou must install OpenSIPS Control Panel or rtpengine media proxy if you wish to use them, as these tools are not provided by this module. It is possible to use existing puppet forge modules like alisio-opensipscp or alisio-rtpengine.\n\nThere are sample manifest inside the 'tests' folder.\n\nSample install with Control Panel and rtpengine:\n\n```\nclass {'opensips':}\nclass {'opensipscp':}\nclass {'rtpengine':}\n```\nSample install with Control Panel and rtpproxy:\n\n```\nclass {'opensips':\n  mediaproxy_type =\u003e 'rtpproxy',\n}\n-\u003e class {'opensipscp':}\n```\n\n\n## Usage\n\nTo install opensips on a server, simply include the class.\n```\ninclude opensips\n```\n\nAdd SIP users with opensipctl:\n\n```\nopensipsctl add \u003cUSERNAME\u003e@\u003cDOMAIN\u003e \u003cPASSWORD\u003e\n```\n\nAdd domains with opensipctl:\n```\nopensipsctl domain add \u003cDOMAIN\u003e\n```\n\nTo customize the installation change the parameters as desired, acording to the [Parameters](#parameters) session.\n\n```\nclass {'opensips':\n  proxy_port =\u003e 5070,\n  opensips_mediaserver_hostport =\u003e '192.168.33.10:5060'\n}\n```\n\n###  Parameters\n\n These default parameters are set for testing purposes. You should, nay, you must, change\n it for production.\n\n\n* `$db_server_ip` IP address or hostname of the mysql database server.\n\n* `$db_server_port` Mariadb server port.\n\n* `$db_root_pw` Database root password.\n\n* `$db_opensips_db` The opensips mysql database name.\n\n* `$db_opensips_user` The opensips mysql user.\n\n* `$db_opensips_pw` The password for the opensips mysql user.\n\n* `$opensips_advertised_address` The external IP address or hostname of a server behind NAT.\n\n* `$opensips_advertised_port` The external SIP port of a server behind NAT.\n\n* `$opensips_cfg` The path for the opensips config file\n\n* `$opensips_ctlrc` The path for the opensips control file\n\n* `$opensips_http_mi_port` Opensips HTTP Manager Interface Port. Default value: 8888\n\n* `$opensips_script_mode` The opensips operation mode, acording to the osipconfig utility. Accepted values: default, trunking, residential.\n\n* `$opensips_yum_repo_baseurl` Opensips 2.4 yum repo 'http://yum.opensips.org/2.4/releases/el/7/$basearch'\n\n* `$opensips_defaultgw_hostport` External gateway address:port (e.g. '127.0.0.1:5070')\n\n* `$opensips_mediaserver_hostport` External mediaserver address:port (e.g '127.0.0.1:5070')\n\n* `$proxy_transport` Opensips default signal transport. Accepted calues: udp, tcp, tls\n\n* `$proxy_ip` Address of the interface where opensips will listen to.\n\n* `$proxy_module_ratelimit_enable` Enable/disable the ratelimit module for implemeting rate limiting for SIP requests. Default: true\n\n* `$proxy_module_ratelimit_limit` threshold limit per second for the ratelimit module. Default: 10 per second\n\n* `$proxy_port` Port where opensips will listen to (e.g. 5060)\n\n* `$proxy_eth_interface` Array of ethernet interfaces where opensips will listen to. E.g ['eth0','eth2']\n* `$repo_install` Install necessary yum repositories. Default to true\n\n* `$mediaproxy_ctrl_socket` Control socket composed by protocol:address:port for controlling rtpproxy. E.g 'udp:127.0.0.1:22222'\n\n* `$mediaproxy_offer_flags` The “flags” string is a list of space-separated items. Each item is either an individual token, or a token in “key=value” format. Default to 'transcode-PCMA transcode-PCMU codec-mask-G729'\n\n* `$mediaproxy_type`  Set which mediaproxy wil be used. Accepted values are 'rtpproxy' or 'rtpengine'. Default to rtpproxy\n\n* `$rtpproxy_listen_ip` Address where rtpproxy will listen to. E.g '0.0.0.0'\n\n* `$rtpproxy_min_port` Integer representing the lowest rtp port rtpproxy will listen to (e.g 10000)\n\n* `$rtpproxy_max_port` Integer representing the highest port rtpproxy will listen to (e.g 2000)\n\n* `$rtpproxy_file_limit` Integer representing file descriptors limit (e.g. 16000)\n\n* `$syslog_local` Syslog level (e.g. 5) for opensips and rtpproxy log\n\n* `$syslog_file` Syslog file for opensips and rtpproxy (e.g. /var/log/opensips.log)\n\n* `tls_certificate_path`\n Path for the certificate used with TLS and Websocket. Default to /etc/letsencrypt/live/acme.com/cert.pem\n* `tls_private_key_path`  Path for the Private key used with TLS and Websocket. Default to /etc letsencrypt/live/acme.com/privkey.pem\n* `webrtc_ws_port`  Websocket Ws (http) port. Default to 8080\n* `webrtc_wss_port`  Websocket Wss (https) port. Detault to 4443\n\n\n### Tasks in this module\n\nThe OpenSIPS module has tasks for performing trivial operations using Bolt. Please refer to to the Puppet documentation or Bolt documentation on how to execute a task.\n\n* `opensips::ctl`            Task for using opensipsctl - opensips control tool.\n\n* `opensips::domainadd`      Add domain to the database using opensipsctl\n\n* `opensips::domainrm`       Remove domain from the database using opensipsctl\n\n* `opensips::domainshow`     Show domain in memory using opensipsctl\n\n* `opensips::restart`        Restart OpenSIPS service\n\n* `opensips::ulshow`         Show opensips in-RAM online users\n\n\n## Reference reading\n\nThe most up to date reference and documentation for all configurations can be found online manual:\n\n* Opensips: https://www.opensips.org/Documentation/Manual-2-4\n* Rtpengine: https://github.com/sipwise/rtpengine\n* Rtpproxy: https://www.rtpproxy.org/doc/master/user_manual.html\n* MariaDB: https://mariadb.org/learn/\n\n## Limitations\n\nThis module purpose is to provision an SIP server running on the\nCentos7 OS. This module was tested with puppet 5.\n\n## Development\n\nCopyright 2019 Antonio Alisio de Meneses Cordeiro\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falisio%2Fopensips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falisio%2Fopensips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falisio%2Fopensips/lists"}