Hi,
I had the same problem.
And I think you are right, concerning the branch parameter at Via: headers.
My workaround to overcome this problem :
I use as a branch value the following :
branch=z9hG4bK-[call_number]-XX
(where XX is an index and it's the same for every mesg that the branch value
should be the same).
For example for an INVITE-w-auth scenario, I have the following branch parameter
at Via: lines
- send INVITE
Via: SIP/2.0/[transport]
[local_ip]:[local_port];branch=z9hG4bK-[call_number]-01
- send ACK
Via: SIP/2.0/[transport]
[local_ip]:[local_port];branch=z9hG4bK-[call_number]-01
- send 2nd INVITE (w.auth)
Via: SIP/2.0/[transport]
[local_ip]:[local_port];branch=z9hG4bK-[call_number]-02
- send ACK (for 200 OK response)
Via: SIP/2.0/[transport]
[local_ip]:[local_port];branch=z9hG4bK-[call_number]-03
- send BYE
Via: SIP/2.0/[transport]
[local_ip]:[local_port];branch=z9hG4bK-[call_number]-04
regards,
Kostas
Michael Hirschbichler wrote:
> Hi Group!
>
> Currently I am trying to create an UAC with the following call-flow
>
> UAC Proxy
> INVITE--------------->
> <--------------100 Trying
> <--------------407 Proxy Auth Required
> ACK------------------>
> INVITE (w.auth)------>
> ....
>
> The problem is the ACK-request:
> <send rtd="true">
> <![CDATA[
>
> ACK sip:[EMAIL PROTECTED] SIP/2.0
> Via: SIP/2.0/[transport] [local_ip];branch=[branch]
> CSeq: 1 ACK
> ...
>
> !>
> </send>
>
> By using the [branch]-field as described in the help, I get as a result
> a new branch-parameter "z9hG4bK-1-4", but I _must_ have the same branch
> as in the INVITE:
>
> ====================RFC3261=======================
> 17.1.1.3 Construction of the ACK Request
>
> This section specifies the construction of ACK requests sent within
> the client transaction. A UAC core that generates an ACK for 2xx
> MUST instead follow the rules described in Section 13.
>
> The ACK request constructed by the client transaction MUST contain
> values for the Call-ID, From, and Request-URI that are equal to the
> values of those header fields in the request passed to the transport
> by the client transaction (call this the "original request"). The To
> header field in the ACK MUST equal the To header field in the
> response being acknowledged, and therefore will usually differ from
> the To header field in the original request by the addition of the
> tag parameter. The ACK MUST contain a single Via header field, and
> this MUST be equal to the top Via header field of the original
> request. ...
> ==================================================
>
> Currently, I am planning to use the regexp to parse this parameter.
> Does anyone has a better idea? What about extending the
> [last_...]-feature by creating something like:
> [last_header_field] or [last_header_index_field], like [last_Via_0_brach]?
>
> Best regards
> Michael
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Sipp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sipp-users