Am 27.02.2014 23:43, schrieb Alex Villacís Lasso:
Is this setup recognizable as an already-solved problem (minus the localhost trick)? How is it done correctly?
I think your setup is too complex. If I didn't missed your requirements I think you can do it this way:
From routing point of view, you could do the setup with Asterisk, without KAmailio. IF you need Kamailio too (for whatever features) then what about this:
| Server | | | client1---net1-------| IP1:5060 Kamailio |<-------\ | | \ client2---net2-------| IP2:5060 Kamailio |<--\ | | | / / | 0.0.0.0:5070 Asterisk |<------- | 0.0.0.0:10000-20000: Asterisk RTP |
Block port 5070 from outside with iptables, so clients are forced through Kamailio. For the communication between Asterisk and Kamailio use the same socket as for the communication with the clients and Kamailio, eg:
client1-IP ------- IP1:5060 --- Kamailio ---- IP1:5060 | IP1:5070 ---- \ Asterisk / IP2:5070 --- | client2-IP ------- IP2:5060 --- Kamailio ---- IP2:5060
Asterisk usually uses the local routing table to find the IP address to put in the SDP. As the communication with client 1 is via Kamailio IP1 and with client 2 via Kamailio IP2, Asterisk should populate the SDP correctly.
Further, if you configure Kamailio with mhomed=1 and forward to ASterisk always using the proper IP, e.g a request which is received on IP1:5060 is forwarded to IP1:5070, then also the Route/Record-Route and Via headers should be populated correctly. For REGISTER routing I think it is best to use Path header (new Asterisks should support this).
regards Klaus
PS: I have not tried it but I am quite sure it should work.