The res_stun_monitor module detects that the external IP address has changed and raises an event internally that other modules can know it has. The res_pjsip_outbound_registration module has basic support for that, when it receives that event it does a re-registration. That event does not cause the information in the registration itself to be altered.
Dynamic IPs and PJSIP are not currently something many people do, so it hasn’t seen much focus.
Very sad. I would have had a nice solution for my problem, but if the development is not yet at this point I should prefer the other way. Who is responsible for this feature meaning who has to integrate the automatical reload?
I know about the open source orientation and it’s very important to me. The official developer of Asterisk is Digium, isn’t it? If the automatical reload feature shall be added, has this to be done by Digium or by pjproject?
I believe the Proxy needs to add a Record-Route header, giving its public address. Otherwise the ITSP will not be able to send Re-INVITE, or BYE transactions to the correct place. You might get away with it with TCP, but not with UDP.
As noted before, I think it would be unusual to get a 403 because of this. It would be more normal that the Re-INVITE or BYE got lost.
There are a host of contributors to Asterisk, not all of them work for Digium. You can see who’s been contributing lately here [1]. If there’s a capability you want in Asterisk, you can write it up yourself and work through the patch contribution process [2] or you can find someone else to do it for you. Digium isn’t the responsible party for coding up feature requests that people present. There is no responsible party for that. If you’re trying to find someone else to build a feature for you, you’re welcome to solicit people on these community forums (perhaps people are already reading this thread) or on the asterisk-users mailing list [3]. Additionally, Bug Bounties [4] can also apply to feature requests.
Via only covers the current transaction, and not even the ACK (although, the ACK is going the other way, in this case).
For any subsequent transaction, Contact is used. E.g. a load balancing proxy will forward to a worker, and the worker will respond with Contact, so that further communication is direct, and the proxy doesn’t need to remember anything. To keep the proxy in circuit, as you need to do, you must add a Record-Route header.
If incoming calls are reaching Asterisk, it means that the proxy is handling Contact correctly on the register. I had wondered if it was registering with the private address and the ITSP was rejecting based on source IP address.
401 is not an error, but it is normally a misconfiguration if one is sent to an ITSP.
In general terms, though, you must make sure that the provider matches a known end point and that endpoint is configured not to require the peer to authenticate.
For the second part, on chan_sip, you would use remotesecret, rather than secret, although a lot of old cook book solutions suggest using insecure-invite, with secret.
For the first part, check that the endpoint IP addresses matches the source IP address from which Asterisk receives the request (might be the proxy).