Hi Liviu.
Thank you for your reply!
I guess the second INVITE is a Re-INVITE, as you commented.
In this case, is it possible to keep stored the value of $avp(attr)
and use it when necessary even after receiving the Re-INVITE?
----------
Yes we have a retry, not a parallel forked call, but just when the
Re-INVITE is received by OpenSIPS. By other side, the first INVITE is
for a parallel forked call, if I'm well understanding the SIP here.
The first INVITE is:
SIP Message: INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/TLS
127.0.0.1:42194;rport;branch=z9hG4bKPjd3128578-0158-4c58-8c1c-676aa864d8ca;alias
Max-Forwards: 70
From: "ext1"
<sip:[email protected]>;tag=469b3a48-1548-4af6-8e03-a5c855ce85f4
To: <sip:[email protected]>
Contact: "ext1"
<sip:[email protected]:42194;transport=TLS;ob>;+sip.ice
Call-ID: 22cb74fc-3d3b-4a37-9572-32f48c9943ff
CSeq: 21431 INVITE
Route: <sip:[email protected];transport=tls;lr>
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE,
NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800
Min-SE: 90
Content-Type: application/sdp
Content-Length: 1267
There is more than one registered (on-line) subscriber g1r2u3p4o5. So,
g1r2u3p4o5 has more than one AOR. I have 3 devices online for the
subscriber g1r2u3p4o5.
The reply SIP OK comes from another network (not the local one), from
IP 10.0.60.246. After such reply, the Re-INVITE is:
SIP Message: INVITE sip:[email protected]:59673;transport=TLS SIP/2.0
Via: SIP/2.0/TLS
192.168.0.81:54188;rport;branch=z9hG4bKPjdde63995-7ed0-436a-983f-61d0e5df9498;alias
Max-Forwards: 70
From: "ext1"
<sip:[email protected]>;tag=469b3a48-1548-4af6-8e03-a5c855ce85f4
To: <sip:[email protected]>;tag=393a402c
Contact: "ext1"
<sip:[email protected]:42194;transport=TLS;ob>;+sip.ice
Call-ID: 22cb74fc-3d3b-4a37-9572-32f48c9943ff
CSeq: 21433 INVITE
Route: <sip:icchw.jflddns.com.br:5061;transport=tls;lr;did=d53.353e0122>
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE,
NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800;refresher=uac
Min-SE: 90
Content-Type: application/sdp
Content-Length: 332
In this moment I need to know if the device (callee) is in another
network, in fact, to take some fixes in SDP of INVITEs and SIP OKs.
The $(avp(attr)[$T_branch_idx]) should have the information that I need.
If it is not possible to keep the $(avp(attr)[$T_branch_idx]) stored,
is it possible to know if a device is in another network when it is a
callee?
Any hint will be very helpful !!
Best regards.
RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 979
------------------------------------------------------------------------
*De:* Users <[email protected]> em nome de Liviu Chircu
<[email protected]>
*Enviado:* terça-feira, 29 de agosto de 2017 12:34
*Para:* [email protected]
*Assunto:* Re: [OpenSIPS-Users] $(avp(attr)[$T_branch_idx]) is NULL
for second INVITE. How to solve it ?
Hi Rodrigo,
Just trying to understand the flow here - could it be actually a
Re-INVITE that goes through your sequential routing block, thus
lookup() is not called, leaving $avp(attr) NULL throughout that
transaction?
Regardless of the above, in OpenSIPS terms, each "branch" points to a
different destination. In our case, we're talking about a retry, not a
serial/parallel forked call. Which means that you should only bother
with $T_branch_idx if a lookup() could yield more than one device to
be contacted for the same AoR.
Best regards,
Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com
<http://www.opensips-solutions.com/>
Home — OpenSIPS Solutions <http://www.opensips-solutions.com/>
www.opensips-solutions.com
OpenSIPS is a mature Open Source implementation of a SIP server.
OpenSIPS is more than a SIP proxy/router as it includes
application-level functionalities.
On 29.08.2017 18:05, Rodrigo Pimenta Carvalho wrote:
Dear SIPusers,
In my project I use to keep a valuable information in table location.
This is about the state of a subscriber's localization.
I have to read such information for the callees, every time a new
branch is created and every time a INVITE is answered with SIP OK.
So, my OpenSIPS configuration has something similar to the following
code:
1 route{
2 ... // hidden code for simplification.
3 lookup("location","m")
4 ...
5 route(relay);
6 }
7 route[relay]{
8 if (is_method("INVITE")) {
9 ...
10 t_on_branch("per_branch_ops");
11 t_on_reply("handle_nat");
12 t_on_failure("missed_call");
13 }
14 ...
15 }
16 branch_route[per_branch_ops] {
17 ....
18 $(avp(attr)[$T_branch_idx])
19 ...
20 }
21 onreply_route[handle_nat] {
22 ...
23 $(avp(attr)[$T_branch_idx])
24 ...
25 }
26 ...
In a determined call, when the OpenSIPS receives the INVITE and then
a SIP OK (200), the code gets right value in lines 18 and 23.
In such call, the SIP OK (from callee) offers a kind of video that
the caller can't support. In this case the caller sends another SIP
INVITE with inactive video (SDP).
In this moment, OpenSIPS gets this second INVITE and create a new branch.
However, for this new branch, lines 18 and 23 give me NULL for
$(avp(attr)[$T_branch_idx]).
How to solve this issue?
Any hint will be very helpful!!
Best regards!
P.S.: I'm not expert in SIP.
RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 979
_______________________________________________
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