0
votes

I am facing a situation when my sip client sends a deregister with call ID without IP address. Call-ID: ZbTZ3VwsZoknVtlvROGGsOO8pt0hpFi. This message is causing looping of the 200 OK responses as the via header of the next register message from same client is changed.

The situation is as follows

Request

deregister :LanClient--->Proxy-->Server
Response
Repeat:
100 trying :Server-->Proxy--xx->LanClient
200 Ok :Server-->Proxy--xx->Lanclient
goto Repeat

When one deregister message(i.e register message with expires=0) goes to the server the Via header contains the WAN IP of our proxy rather than LAN Client IP.This causes the respones from the server to go the WAN IP than the LAN IP.

What I am curious about is about that out of multiple clients registered with the server only the problem client messages have Call-ID field without an IP address. I know that we can have call-ID without IP address. How would having an IP or not Having an IP in call ID make a difference in my scenario...

1
The meaning of "the Via header of the next register message from same client is changed" is not clear. Make it clear and add the call-flow!AymericM
Please add a real call-flow: list of Via of initial REGISTER, list of Via of initial 200ok, list of Via of REGISTER with expires=0 and list of Via of the new 200ok. Also, provide the IPs of your proxy and IP of your server.AymericM

1 Answers

1
votes

The value of the Call-Id header is just a string, at least from the perspective of the receiver of the request.

When a client deregisters, it should use the same Call-Id that was used for registration.

I don't understand the Via header part. Obviously, consequtive REGISTER requests (and other messages as well) has different Via headers since the branch parameter is new for every transaction.