Am 29.01.2010 10:37, schrieb Klaus Feichtinger:
Klaus Feichtinger schrieb:
an alternative solution I think about (but have not yet tested) might be following:
- SIP server on place A fork the call to SIP servers on place B and C (both with a fix usrloc contact => parallel forking to two fix destinations)
- SIP server on place B fork the call to the gateways on place B serial
- SIP server on place C fork the call to the gateways on place C serial
The advantage of this solution might be that not one server is responsible for making the mixture of serial AND parallel forking. Each server is responsible for making EITHER parallel (= place A) OR serial (= places B and C) forking.
Could this be a practicable alternative?
Indeed, that should work. You do not even need 3 servers. You can do it completely within one server, just spiraling the request, for example:
- A calls sip:group01@domain
- proxy at "domain" will fork the call to sip:group01B@domain and sip:group01C@domain. Thus, the proxy will create 2 branches, sending both branches to itself again.
- proxy will receive the request for sip:group01B@domain and forwards the request with serial forking, according the the q- values of the contacts registered for sip:group01B@domain.
- further, the proxy proxy will receive the request for sip:group01C@domain and forwards the request with serial forking, according the the q- values of the contacts registered for sip:group01C@domain.
Every time the request is spiraled into the SIP proxy again, a new transcation is generated and you can define different failure route handling.
regards Klaus