Hi All,
Could someone tell me how to config openser 1.3.x route to support PRACK?
I had installed openser 1.3.x and didn't change any route configuration.
My scenario is:
A openser B
| --> INVITE (with 100rel) -> | --> INVITE (with 100rel) --> |
| | |
| <--183 <-- | <-- 183 <-- |
|
| --> PRACK --> |
| <-- 404 Not here <--- |
For the default the openser reply the "404 Not here" to A. I found the '404' was replied here:
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
if (is_method("BYE")) {
setflag(1); # do accouting ...
setflag(3); # ... even if the transaction fails
}
route(1);
} else {
/* !loose_route */
/* uncomment the following lines if you want to enable presence */
##if (is_method("SUBSCRIBE") && $rd == "your.server.ip.address") {
## # in-dialog subscribe requests
## route(2);
## exit;
##}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# non loose-route, but stateful ACK; must be an ACK after a 487 or e.g. 404 from upstream server
t_relay();
exit;
} else {
# ACK without matching transaction ... ignore and discard.\n");
exit;
}
## These code will cause openser reply 483 response to PRACK
if ( is_method("PRACK") ) {
t_relay();
exit;
}
}
## Here reply me the 404
sl_send_reply("404","Not here");
}
exit;
}
Than I added the green code to route the PRACK, But I received "483","Too Many Hops" from openser. And I found the Max-Forward is 70 not a wrong value.
Does anyone can help me?