Hello Anca,

An ven., févr 05, 2010, Anca Vamanu schrieb:
>[email protected] wrote:
>> Unfortunately, b2b_logic doesn't pass on the Authorization header
>> from the client to the server so authorization is failing. The
>> module parameters of my script are:
>>
>>   modparam("b2b_logic", "custom_headers", 
>> "WWW-Authenticate;Proxy-Authenticate;Authorization;Subject")
>>
>> The page 'B2buaTutorial' says:
>>
>>   If type node with message value is present, it means that the
>>   client will be created using the info from received SIP message:
>>   the body, the caller URI, some SIP headers(Accept, Supported,
>>   Content-Type).
>>
>> It seems as if custom_headers are only passed from the server to the
>> client, or maybe b2b_logic only recognizes them in dialog (after the
>> first INVITE is accepted?)
>>
>No, these are not the cases. The Authorization header should be passed 
>from the first Invite(it's the same processing function as for the 200OK 
>reply - b2b_logic_notify). Do you see something in the log? Any Error?
>
The log has no entries at all with debug=1. When changed to debug=10
I see a ton of stuff but still no errors. I tried to find anything,
and only found the INVITE and 401 WWW-Auth that b2b_logic is
handling. All seems normal.

>However, there will be a problem in the second call setup if
>authorization will be requested again, because there is no way to
>get that authorization information from the caller in the middle of
>the call..
>
I don't understand. So far there is only one UA challenging and that
is the media server (looking at your diagram called ppaid.jpeg) By
the way, b2b_init_request("top hiding"); is working correctly.

Here is a shorthand transcription of what is happening:

Caller                  OpenSIPS B2B                  Mediaserver
  |                          |                             |
INVITE --------------------->| INVITE -------------------->|
  |                          |                             |
  |<--- 401 WWW-Authenticate |<---------------- 401 WWW-Authenticate
  |                          |                             |
INVITE + Authorization ----->| INVITE (no auth) ---------->|
  |                          |        !!!!!!!!!            |
  |                          |                             |
  |<--- 401 WWW-Authenticate |<---------------- 401 WWW-Authenticate
  |                          |                             |

I've left out ACKs of course. As you see from the line marked '!!!!'
the b2b_logic is dropping the 'Authorization' header from the INVITE.

Here's the b2b_logic config:

    modparam("b2b_logic", "custom_headers", 
"Proxy-Authenticate;Proxy-Authorization;WWW-Authenticate;Authorization;Subject")

Here's the route script piece:

    # sequential requests
    if (has_totag()) {
        if (loose_route()) {
            #[...]
        }
        #[...]
    }
    
    # initial requests
    if (is_method("INVITE") && src_ip != myself) {
        if (!t_newtran()) {
            sl_reply_error();
            exit;
        }
        b2b_init_request("prepaid", 
"sip:[email protected]:5080;transport=tcp", 
"sip:[email protected]:5080;transport=tcp");
        #b2b_init_request("top hiding");
        exit;
    }

If I print the message body from the route script (xlog...$mb) then
I can see that the Authorization header is there before calling
'b2b_init_request.' Is it a problem that b2b_init_request is being
called twice, once for the first INVITE (with no auth) and then
again for the second INVITE (with the Authorization header.)?

Regards,
Brian

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

Reply via email to