diff --git a/modules/asterisk/manifests/init.pp b/modules/asterisk/manifests/init.pp index 8ef293eedd..cfcdf69f46 100644 --- a/modules/asterisk/manifests/init.pp +++ b/modules/asterisk/manifests/init.pp @@ -63,6 +63,11 @@ class asterisk ( require => Yumrepo['asteriskcurrent'], } + package { 'asterisk-sounds-extra-en-ulaw' : + ensure => present, + require => Yumrepo['asteriskcurrent'], + } + file {'/etc/asterisk/asterisk.conf': ensure => present, owner => 'asterisk', diff --git a/modules/openstack_project/files/pbx/asterisk/extensions.conf b/modules/openstack_project/files/pbx/asterisk/extensions.conf new file mode 100644 index 0000000000..4451486ae5 --- /dev/null +++ b/modules/openstack_project/files/pbx/asterisk/extensions.conf @@ -0,0 +1,8 @@ +; extensions.conf customizations for pbx.openstack.org + +[public] + +exten => s,1,Answer() + same => n,Playback(spam) + +exten => _X.,1,Goto(s,1) diff --git a/modules/openstack_project/files/pbx/asterisk/sip.conf b/modules/openstack_project/files/pbx/asterisk/sip.conf new file mode 100644 index 0000000000..b3a1adbdef --- /dev/null +++ b/modules/openstack_project/files/pbx/asterisk/sip.conf @@ -0,0 +1,14 @@ +; sip.conf customizations for pbx.openstack.org + +[general](+) +udpbindaddr=:: +tcpenable=yes +tcpbindaddr=:: +context=public +allowguest=yes +disallow=all +allow=g722 +allow=ulaw +allow=alaw +allow=gsm +videosupport=yes diff --git a/modules/openstack_project/manifests/pbx.pp b/modules/openstack_project/manifests/pbx.pp index 7452c56eca..49d3542ae5 100644 --- a/modules/openstack_project/manifests/pbx.pp +++ b/modules/openstack_project/manifests/pbx.pp @@ -19,7 +19,13 @@ class openstack_project::pbx ( $sysadmins = [], ) { class { 'openstack_project::server': - sysadmins => $sysadmins, + sysadmins => $sysadmins, + # SIP signaling is either TCP or UDP port 5060. + # RTP media (audio/video) uses a range of UDP ports. + iptables_public_tcp_ports => [5060], + iptables_public_udp_ports => [5060], + iptables_rules4 => ['-m udp -p udp --dport 10000:20000 -j ACCEPT'], + iptables_rules6 => ['-m udp -p udp --dport 10000:20000 -j ACCEPT'], } class { 'selinux': @@ -34,4 +40,22 @@ class openstack_project::pbx ( asterisk_conf_source => 'puppet:///modules/openstack_project/pbx/asterisk/asterisk.conf', modules_conf_source => 'puppet:///modules/openstack_project/pbx/asterisk/modules.conf', } + + file {'/etc/asterisk/sip.conf.d/sip.conf': + ensure => present, + owner => 'asterisk', + group => 'asterisk', + mode => '0660', + source => 'puppet:///modules/openstack_project/pbx/asterisk/sip.conf', + require => File['/etc/asterisk/'], + } + + file {'/etc/asterisk/extensions.conf.d/extensions.conf': + ensure => present, + owner => 'asterisk', + group => 'asterisk', + mode => '0660', + source => 'puppet:///modules/openstack_project/pbx/asterisk/extensions.conf', + require => File['/etc/asterisk/'], + } }