I have an asterisk server setup in a remote office behind a firewall. The asterisk server is on the dmz.
My openfire server is on another server many miles away in another office behind a firewall.
I had the same problems as most of you, but I got mine to work…except on Leopard… sprark crashes as soon as the call is answered.
How I fixed the other problems
Log into your asterisk server and edit the sip.conf file
add these lines.
nat=yes
externip=your_public_ip
localnet=192.168.X.0/255.255.255.0
localnet= any other local nets on the asterisk server.
Thats all I had to add to get mine working.
Here is my entire sip.conf file
context=default ; Default context for incoming calls
bindport=5060 ; UDP Port to bind to (SIP standard port is 5060)
nat=yes ; If your behind a NAT, Router or Firewall you need this.
bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
externip=Your_External_Public_IP ; This is your public internet IP address
localnet=192.168.168.0/255.255.255.0 ;localnet are not passed via NAT (you must declare your local LAN )
localnet=192.168.101.0/255.255.255.0 ;must delcare all your local lan
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
tos_sip=cs3 ; Sets TOS for SIP packets.
tos_audio=ef ; Sets TOS for RTP audio packets.
tos_video=af41 ; Sets TOS for RTP video packets.
maxexpirey=7200
defaultexpirey=3600
minexpiry=60 ; Minimum length of registrations/subscriptions (default 60)
;t1min=100 ; Minimum roundtrip time for messages to monitored hosts defaults to 100 ms
;checkmwi=10 ; Default time between mailbox checks for peers
disallow=all ; First disallow all codecs
allow=ulaw ; Allow codecs in order of preference
;allow=alaw
allow=g726
allow=gsm
allow=g723.1
;allow=g729
allow=ilbc ; Note: codec order is respected only in
language=en ; Default language setting for all users/peers
;progressinband=never ; If we should generate in-band ringing always
dtmfmode=rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833
callevents=yes ; generate manager events when sip ua performs events (e.g. hold)
canreinvite=no
jbenable = yes
; jbforce = no
jbmaxsize = 200
; jbresyncthreshold = 1000
jbimpl = fixed
; jblog = no