Hello Fulo,
Bogdan provided work around some time ago.
Inside  onreply route 

        # Drop other 200 OK
        if(isbflagset("RETRY_200OK_BFLAG")) {
                if(is_method("INVITE|UPDATE") && t_check_status("200")) {
                        drop();
                }
        }

       # mark first INVITE
        if(is_method("INVITE|UPDATE") && t_check_status("200")) {
                setbflag("RETRY_200OK_BFLAG");

volga629


On 8/30/21 4:22 AM, Fulo Lin wrote:
When the user has two devices answering the phone at the same time, I expect the first device to answer the call and the second device to be cancelled.

The current opensips will indeed cancel the second call, but the first call will have no sound, and the call will be disconnected after a few seconds.

I found that opensips sends all 200 Ok (SDP) to the caller, and I expect that the second 200 Ok (SDP) should not be sent to the caller.

I try to block the second 200 Ok(SDP) in onreply_route, like this.

onreply_route[handle_nat] {
         if (t_check_status("200")) {
                 # t_cancel_branch(); No effect
                 # drop(); No effect
                 #exit;
         }
}

But this seems to have no effect.

Is there a way to block the second 200 Ok (SDP) in onreply_route?

Or is there any other way to handle concurrent answering calls?

I use opensips 3.1.5 and rtpproxy 2.2.0.

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to