I run Asterisk on a RaspberryPi2 and I am quite happy with it. I have however one problem…
May provider ist Deutsche Telekom. I have several Computers, cellphones and tablets that connect to the raspberrypi running asterisk. They can all phone each other. They can also do outgoing calls via Deutsche Telekom, but only after a new start of Asterisk. (I am currently not interested in incomming calls)
After several hours outgoing calls do not work any longer. A restart of Asterisk solves the problem for several hours again.
I did a tcpdump and wireshark trace and found the reason (but I dont know the solution)
Asterisk performs a registration every 8 minutes with Deutsche Telekom.
Before each registration asterisk does a DNS query for tel.t-online.de
That is answered with two entries such as b-epp-002.isp.t-ipnet.de and s-epp-002.isp.t-ipnet.de.
The entry with the lower priority is used for the registration. OK. In this case s-epp-002.isp.t-ipnet.de -> 220.127.116.11
So it registers succesfully to 18.104.22.168. Fine.
sip show peers shows alo this address (22.214.171.124)
If I do an outgoing call then it goes also to this address. (126.96.36.199), but without an additional DNS query.
After some hours Deutsche Telekom changes the answer to the periodical register DNS query.
That means, I am now registered with a new, different server of Deutsche Telekom.
If I now try an outgoing call, asterisk continues to use the old IP-adress (188.8.131.52) It seems to have stored/remembered this old adress. Deutsche Telekom says: “No, you can only call the servers you are registered with. You are (no longer registered here” Forbidden!
If I restart Asterisk both addresses (for registration and for outgoing calls) are the same again and I can do outgoing calls until Deutsche Telekom changes its servers (and the DNS-answer) again.
Is there anything I can configure to request DNS queries for each outgoing call? Or is there another solution for my problem?