Hello,
Using ser 0.8.11 with redhat 9. I am not using mysql or authentication.
The record-route call I'm making almost works, except for SER not passing
BYE's from our softswitch. I don't see why SER is blocking these. The ACK
is correctly following the record-route logic, the BYE looks like it is but
SER is
blocking passage. sip_scenario trace and ser.cfg routing logic are pasted
here
but the full sip_scenario file with packet contents are attached as a file.
I don't see anything wrong with how the record-route and route headers are
being used.
Please help!
Thank you VERY much !!! This group is terrific.
Tim
Attached file has sip_scenario trace
10.16.1.218 6037534033 is SER registered phone who initiates call
10.16.1.147 is SER
172.17.4.102 is our softswitch acting as back2back user agent.
10.16.1.214 6032251114 is softswitch registered phone answers/terminates
call.
10.16.1.218 10.16.1.147 172.17.4.102 10.16.1.214
| | | |
<Call><PFrame><Time>
| | | |
| F1 INVITE (sdp) | | |
|>---------------->| | |
| | | |
| ant to us 100 F2 | | |
|<----------------<| | |
| | | |
| | F3 INVITE (sdp) | |
| |>---------------->| |
| | | |
| | Trying 100 F4 | |
| |<----------------<| |
| | | |
| | | F5 INVITE (sdp) |
| | |>---------------->|
| | | |
| | | Ringing 180 F6 |
| | |<----------------<|
| | | |
| | Ringing 180 F7 | |
| |<----------------<| |
| | | |
| Ringing 180 F8 | | |
|<----------------<| | |
| | | |
| | | (sdp) OK 200 F9 |
| | |<----------------<|
| | | |
| | | F10 ACK |
| | |>---------------->|
| | | |
| | (sdp) OK 200 F11 | |
| |<----------------<| |
| | | |
| (sdp) OK 200 F12 | | |
|<----------------<| | |
| | | |
| F13 ACK | | |
|>---------------->| | |
| | | |
| | F14 ACK | |
| |>---------------->| |
| | | |
| | | BYE F15 |
| | |<----------------<|
| | | |
| | | F16 200 OK |
| | |>---------------->|
| | | |
| | BYE F17 | |
| |<----------------<| |
| | | |
| | BYE F18 | |
| |<----------------<| |
| | | |
| | BYE F19 | |
| |<----------------<| |
| | | |
| | BYE F20 | |
| |<----------------<| |
| | | |
| | BYE F21 | |
| |<----------------<| |
| | | |
| | BYE F22 | |
| |<----------------<| |
| | | |
| | BYE F23 | |
| |<----------------<| |
| | | |
| | BYE F24 | |
| |<----------------<| |
| | | |
| F25 BYE | | |
|>---------------->| | |
| | | |
| | F26 BYE | |
| |>---------------->| |
| | | |
| | OK 200 F27 | |
| |<----------------<| |
| | | |
| OK 200 F28 | | |
|<----------------<| | |
Here is routing logic:
# main routing logic
route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if (len_gt( max_len )) {
sl_send_reply("513", "Message too big");
break;
};
if (method=="INVITE") {
rewritehostport("172.17.4.102");
record_route();
t_relay();
# forward (172.17.4.102, 5060);
};
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's
# particularly good if upstream and downstream entities
# use different transport protocol
#record_route();
# loose-route processing
if (loose_route()) {
t_relay();
break;
};
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
# if (!www_authorize("iptel.org", "subscriber")) {
# www_challenge("iptel.org", "0");
# break;
# };
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
#if (!t_relay()) {
# sl_reply_error();
#};
}
<<rr9.txt>>