linphone-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linphone-users] Redirection fails


From: David . HENRY
Subject: [Linphone-users] Redirection fails
Date: Wed, 17 May 2006 18:58:47 +0200 (MEST)
User-agent: SquirrelMail/1.4.3a

Hello,

I'm a french student, currently in placement where I work with the SIP
protocol (sniffing packets, making redirections). I use linphone for
testing, but I can't get redirections working with linphone (unstable
1.3.99.1). I always have a dialog box with "Could not parse given sip
address. A sip url usually looks like sip:address@hidden".

Today I looked at the code, tracking the bug. Maybe I'm wrong... But here
is what I found:

Scenario:
 * I call Joe (INVITE)
 * Joe send me a redirect message (302 Moved Temporarily)
 * I should call the contact given in joe's redirect message, but I fail.

Inside the code:

 * linphone_core_invite() calls eXosip_initiate_call_with_body()
 * eXosip_initiate_call_with_body() calls
osip_transaction_set_your_instance(transaction, __eXosip_new_jinfo(jc,
NULL, NULL, NULL)); so the jinfo_t's jd member is NULL

 * then I receive the 302 message, cb_rcv3xx() is called
 * cb_rcv3xx() retrieve the jinfo_t by calling
osip_transaction_get_your_instance(). jinfo->jd is still NULL.
 * cb_rcv3xx() calls report_call_event_with_status(EXOSIP_CALL_REDIRECTED,
jc, jd, sip)
 * report_call_event_with_status() calls eXosip_event_init_for_call() but
jd == NULL, so fill_dialog_params() is not called, and the remote contact
from Joe's SIP message is not copied to je->remote_contact...
 * report_call_event_with_status() calls eXosip_event_add()

 * later, eXosip_event_wait() is called by linphone_core_iterate(), and
returns the event added previously
      (je = (eXosip_event_t *) osip_fifo_tryget(eXosip.j_events);)
 * then linphone_core_iterate() calls linphone_core_process_event()
 * linphone_core_process_event() calls
linphone_call_redirected(lc,ev->did,ev->status_code,ev->remote_contact),
but ev->remote_contact is empty...
 * linphone_call_redirected() calls linphone_do_automatic_redirect() with
the empty contact URL
 * linphone_do_automatic_redirect() calls linphone_core_invite() with the
empty contact URL
 * linphone_core_invite() calls linphone_core_interpret_url() which fails
because the URL is empty

Was linphone be known to perform redirections properly? I had this problem
with linphone 1.0, 1.2 and the last unstable (1.3.99.1).

Thank you,
David.


PS: sorry if I posted on the wrong list, I don't know if it should go to
the developer list or not.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]