Adding some more info: It also can be tricky to manage Route headers via loose_route as Kamailio might not find an external (advertised ) IP and keep sending requests to this IP as it will present at the routes There are 2 ways how to avoid it: - Use one Record-Route and regex to change Record-Route header values depending on packet direction - Use record_route_preset(addr1, addr2 ) and rewrite the loose_route() function behavior to force it to handle Route handing logic to make it possible to remove addresses Kamailio doesn't know
P.S. I believe Kamailio must remove all Route headers containing its addresses whether it is advertised or not, but at 5.5 it wasn't working for me in that way. I did not have a chance to spend much time diving into the source code and find why, but I rewrote loose_route on Lua with KEMI to make it work. The benefit I've got - the Kamailio script logic is now independent of the IP addresses it listens to. вт, 3 мая 2022 г. в 12:23, Daniel-Constantin Mierla <[email protected]>: > Hello > > using two sockets for internal and external traffic is the easier way. The > alternative is to use various functions from rr and core to set > record-route and via headers. > > To detect what is the incoming local sockets, there are variables for > received ip, port or socket name -- see the pv cookbook. > > Cheers, > Daniel > On 29.04.22 19:02, Carlos Escalona wrote: > > > Hello! I wish everyone who reads this message a good day. > > I would appreciate some guidance with the configuration of my Kamailio. > > Initially, I have the following architecture: > > Endpoints <----Public IP----> Kamailio (listen PrivateIP advertise > PublicIP) <----Private IP----> Asterisk > > CONFIG: > https://gist.github.com/Carlos-Escalona94/3a289af05b05c69ae563ab29c9ec4710 > > In general, calls initiated from outside the system work perfectly, but I > have a problem with calls initiated from Asterisk. > > According to what I was able to investigate and understand, the problem > arises from the fact that Kamailio uses the public IP for the entire > routing system that involves the Record-Route and Route Headers. This in > turn causes Asterisk to get lost trying to send messages outside of the > INITIAL INVITE transaction, for example, the ACK response to the 200 Ok > received from the Endpoint since it tries to use Kamailio's public IP to > which Asterisk doesn't have access. > > I tried to force Asterisk to send all messages to Kamailio's private IP > regardless of their nature, but it doesn't seem like an appropriate > solution. > > On the other hand, I tried to modify the architecture a bit so that it was > something similar to this: > > Endpoints <---- Public IP----> Kamailio (listen PrivateIP:P1 advertise > PublicIP) <---- PrivateIP-----> Kamailio (listen PrivateIP:P2) <---- > PrivateIP ----> Asterisk > > CONFIG: > https://gist.github.com/Carlos-Escalona94/4d681bb189c6190941d291965e123889 > > It seems to me that this would solve the problem, but I have two doubts > about this architecture, the first is that I would like to know if there is > an easier way to solve the problem that I am not considering, and on the > other hand, I have not found a way to identify from which interface is > receiving the message to perform the routing properly. > > > Thanks for the attention. > > > > *Esta mensagem pode conter informação confidencial ou privilegiada, sendo > seu sigilo protegido por lei. Se você não for o destinatário ou a pessoa > autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as > informações nela contidas ou tomar qualquer ação baseada nessas > informações. Se você recebeu esta mensagem por engano, por favor, avise > imediatamente ao remetente, respondendo o e-mail e em seguida apague-a. > Agradecemos sua cooperação. * > > > *This message may contain confidential or privileged information and its > confidentiality is protected by law. If you are not the addressed or > authorized person to receive this message, you must not use, copy, disclose > or take any action based on it or any information herein. If you have > received this message by mistake, please advise the sender immediately by > replying the e-mail and then deleting it. Thank you for your cooperation. * > > > __________________________________________________________ > Kamailio - Users Mailing List - Non Commercial Discussions > * [email protected] > Important: keep the mailing list in the recipients, do not reply only to the > sender! > Edit mailing list options or unsubscribe: > * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users > > -- > Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- > www.linkedin.com/in/miconda > Kamailio Advanced Training - Online > * https://www.asipto.com/sw/kamailio-advanced-training-online/ > > __________________________________________________________ > Kamailio - Users Mailing List - Non Commercial Discussions > * [email protected] > Important: keep the mailing list in the recipients, do not reply only to > the sender! > Edit mailing list options or unsubscribe: > * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >
__________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions * [email protected] Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
