Juha,
On 22.04.21 16:06, Juha Heinanen wrote:
Daniel-Constantin Mierla writes:
Hmm ... the issue seems to be related to missing record-route list for callee side in the transaction record.
I do not have a test bedwhere I can reproduce during the next days, would it be possible for you to use topos with db backend (mysql) instead of redis and send again the logs with debug=3? That should provide details of the db queries and indicate if the record-route values are stored/retrieved to/from database.
Daniel,
We did more tests, this time using topos mysql instead of redis. With exactly same config, PRACK to 183 is now forwarded correctly: A->P1->P2->P1-B. We then switched back to redis and P1 responded with 404 as before when it received the PRACK. So looks like there is some issue with redis.
OK, I will check topos_redis and see if something is missing there on this case.
But, there is another problem that showed up with mysql topos.
When A receives 200 OK to PRACK, it sends another PRACK with the same "CSeq: 2 PRACK" header, to which P1 responds with 200 OK without forwarding the PRACK. So looks like it thinks there is something with the 200 OK that A does not like . The same happens three more times. At the third time P1 forwards the PRACK to P2, which forwards is back to P1 starting a loop that finally gets terminated with "483 Too many hops".
Syslog of P1 shows these kind of error messages during PRACK processing:
Apr 22 12:49:49 edge /usr/bin/edge-proxy[402]: ERROR: {2 2 PRACK FQzhCOkpzqUJGaXntnCyKw} topos [topos_mod.c:416]: tps_prepare_msg(): mandatory headers missing - via1: (nil) callid: 0x7f0b1b67c5b0
Can you send me a pcap and debug logs for such case taken on P1? I will try to check what is missing/wrong there.
Lesson: do not try to use any dialog based stuff in a SIP proxy.
This has nothing to do with the dialog, the fact here is that topos was not designed for spirals, as I said in one of the previous emails. I am trying to fix the missing parts to make it work, if you can provide pcap/logs.
Cheers, Daniel