[Serusers] Need help with Record-Route
Jiri Kuthan
jiri at iptel.org
Thu Nov 20 03:46:50 CET 2003
Make sure your SER script includes route-processing, as in SER's
default config file in beginning. E.g, like
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
break;
};
-jiri
At 10:23 PM 11/19/2003, Garey, Tim wrote:
>I am using ser 0.8.11 with redhat 9. I am not using mysql or authentication
>and currently have a pretty simple config due to my limited programming
>skills.
>I have orig phone A registered to SER and have SER rewriting A's INVITES so
>our
>softswitch will be happy. Terminating phone B is registered to our
>softswitch.
>
>Phone A can call a phone B and 2 way voice is established. Phone B can
>terminate the call and the session will end. All is ok until I try and
>use Record-Route (by removing comment #) in my ser.cfg below.
>
>Using Record-Route, when the terminating phone answers, the 200 OK
>will propagate all the way through SER and to the originating phone but
>at this point the ACK will not get sent back by SER. Because of
>this our softswitch will continue to send the 200 OK and after some time
>it gives up and terminates both legs with BYE's. Please reference the
>attached sip_scenario trace file (which has end packets removed to conserve
>space)
>
>Could someone suggest how I might use Record-Route properly?
>
>Thanks in advance!
>
>Tim
>=========================================
>
>(10.16.1.218) 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) is softswitch registered phone answers/terminates call.
>================================================
>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();
> #};
>
>}
>
> <<test3.txt>>
>
>
>
>
>
>
>_______________________________________________
>Serusers mailing list
>serusers at lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
--
Jiri Kuthan http://iptel.org/~jiri/
More information about the sr-users
mailing list