editor
520
edits
This is the support site for Andrews & Arnold Ltd, a UK Internet provider. Information on these pages is generally for our customers but may be useful to others, enjoy!
m (Don't feel comfortable with live number in example. No point in allowing ulaw because AAISP don't use it) |
|||
(27 intermediate revisions by 5 users not shown) | |||
= Configuration =
Asterisk
Newer installations of Asterisk should be configured to use PJSIP as it will be more supported as Asterisk development continues
It isn't a good idea to have an installation that mixes sip.conf with pjsip.conf.
When reading the instructions below be aware which are for sip.conf and which are for pjsip.conf.
=indications.conf=
Here's an easy change to make, to use UK call progress tones in the [general] section change the country code from us to uk (assuming you are in the UK).
[general]
country = us ; default location
to
[general]
country = uk
=pjsip.conf (PJSIP)=
==PJSIP: Trunk registration==
Here is an example of a working pjsip.conf setup where Asterisk will register with A&A in the same way as a SIP phone does in order to make outgoing calls. Incoming calls are sent to all registered SIP "phones".<br />
It is recommended you read the "PJSIP: NAT Issues: Keep-Alive / Anti-Idle" section below as you may wish to comment out or drastically increase the qualify_frequency line(s) if your Asterisk is not behind NAT.
In pjsip.conf:
[reg_441234567890]
type = registration
retry_interval = 20
fatal_retry_interval = 20
forbidden_retry_interval = 20
max_retries = 9999
auth_rejection_permanent = no
contact_user = maininbound
expiration = 120
outbound_auth = auth_reg_441234567890
client_uri = sip:+441234567890@voiceless.aa.net.uk
server_uri = sip:voiceless.aa.net.uk
[auth_reg_441234567890]
type = auth
password = SecretPasswordGoesHere
username = +441234567890
[aaisptrunk]
type = aor
contact = sip:+441234567890@voiceless.aa.net.uk
qualify_frequency=20
[aaisptrunk_servera]
type = aor
contact = sip:+441234567890@a.voiceless.aa.net.uk
qualify_frequency=20
[aaisptrunk_serverb]
type = aor
contact = sip:+441234567890@b.voiceless.aa.net.uk
qualify_frequency=20
[aaisptrunk]
type = identify
endpoint = aaisptrunk
match = voiceless.aa.net.uk
[aaisptrunk]
type = endpoint
context = maininbound
dtmf_mode = rfc4733
disallow = all
allow = alaw
direct_media = no
rtp_symmetric = yes
aors = aaisptrunk,aaisptrunk_servera,aaisptrunk_serverb
outbound_auth=auth_reg_441234567890
The "contact_user" option in the registration section sets the context for incoming calls to Asterisk, in this example calls come into the context "maininbound" in extensions.conf
===extensions.conf===
In this example calls get sent onto extension 222 and 205 for 20 seconds and then go to voicemail.
[maininbound]
exten = maininbound,1,Dial(PJSIP/222&PJSIP/205,20)
exten = maininbound,n,Voicemail(222@default,us)
You can dial out via the trunk with (probably in a context like "from-internal"):
exten => _X.,1,Dial(PJSIP/${EXTEN}@aaisptrunk,,)
exten => s-BUSY,1,Playtones(busy)
exten => s-CONGESTION,1,Playtones(congestion)
exten => s-CHANUNAVAIL,1,Playtones(unobtainable)
exten => s-NOANSWER,1,Playtones(congestion)
==PJSIP: Trunk without registration==
If you don't need Asterisk to make outgoing calls, you can have A&A send incoming calls directly to Asterisk. Use the above example but do not include the top section for "[reg_442082881111]" and the 'outbound_auth' item in the aaisptrunk endpoint.
Then set the AAISP control panel to point to your server by hostname or IP address:<br />
Outgoing calls require registration, and you'll automatically receive incoming calls to registered "phones". If you register Asterisk and have calls sent directly to Asterisk you'll receive 2 copies of each call.
[[File:Asterisk pjsip noregistration.png|border]]
==PJSIP: NAT Issues: Keep-Alive / Anti-Idle==
If you are using a firewall or NAT router with short timeouts on UDP sessions the example registration configuration above enables OPTIONS packets to be sent over the connection to keep it alive.
A symptom of NAT issues can be inbound call delivery working for a bit after startup, then not working (with the code "183" in the CDR in the control panel) then calls working again a number of minutes later without you doing anything (or possibly reloading or restarting asterisk will solve it for a bit).
As Andrews & Arnold have multiple call servers it is possible for call signalling to come from multiple IP addresses. Your NAT session or SIP helper/ALG may only be allowing SIP traffic from the IP address your Asterisk registered to.
In the PJSIP registration example on this page the problem is solved by having three AOR (Address of Record) sections. All three have qualify_frequency set (this makes asterisk send keepalive packets). The endpoint section then references the 3 aor entries.<br />
Your Asterisk server will send outbound packets to the shared hostname, and the two call servers specifically. This has the effect of keeping the NAT session on your router alive for all the call servers meaning it doesn't matter which call server delivers the INVITE (call), it should always reach your Asterisk server.
==PJSIP: IPv6==
By default PJSIP does not listen on IPv6.<br />
At the top of pjsip.conf you will need to add another transport to go along with your IPv4 transport (usually a section with bind set to 0.0.0.0 or your IP address):
[transport-udp6]
type=transport
protocol=udp
bind=[::]
You may need to force the endpoint to use this transport (a small section of the endpoint section above but with the "transport = " line inserted):
[aaisptrunk]
type = endpoint
transport = transport-udp6
==Status and Commands==
A good command within the asterisk software is the show registration command:
asterisk*CLI> pjsip show registrations
<Registration/ServerURI..............................> <Auth..........> <Status.......>
==========================================================================================
reg_442082881111/sip:voiceless.aa.net.uk auth_reg_442082881111 Registered
Objects found: 1
In this example it shows that the Asterisk server is successfully registered with the Andrews & Arnold SIP server.
=sip.conf (SIP)=
exten => _X.,1,Dial(SIP/voiceless-out/${EXTEN})
</syntaxhighlight>
For inbound calls (assuming you're routing
<syntaxhighlight lang="ini">
[voiceless-in]
exten => _X.,1,Dial(SIP/snom)
</syntaxhighlight>
=Firewall & Security=
|