Enable inbound SIP calls

Enable inbound SIP calls.  There are a few steps to this.

1) iptables config.  Open UDP and TCP port 5060 for SIP, as well as
UDP ports 10000-20000 for RTP.

2) Add a custom sip.conf which makes chan_sip listen on all address, including
IPv4 and IPv6.  Also enable unauthenticated inbound calls and send them to the
'public' dialplan context.

3) Create the dialplan.  Right now it just plays a sound prompt called 'spam'.
You'll have to call in to find out what it says.  Note that this required
installing the extra sounds.  There's a bunch of good stuff in there that
may be handy, other than just 'spam'.

Change-Id: I6b62511317603eedf9280b55a00ba5cee0611b62
This commit is contained in:
Russell Bryant 2013-07-18 02:33:33 +00:00
parent d4ec2e00a9
commit 1fc153fb5e
4 changed files with 52 additions and 1 deletions

View File

@ -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',

View File

@ -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)

View File

@ -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

View File

@ -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/'],
}
}