linphone-developers
[Top][All Lists]
Advanced

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

Re: [Linphone-developers] Problem: ?eXosip: no ACK received during 20s:


From: IVAN FERNANDEZ
Subject: Re: [Linphone-developers] Problem: ?eXosip: no ACK received during 20s: dropping
Date: Wed, 3 Oct 2012 10:02:31 +0200

We have two versions of the linphone-iphone code;

- The first one is the one that we compiled at the beginning from the original sources. This is the one that we've loaded in XCode and all the modifications affecting the client part are made directly over this version and recompiled from XCode

- We have apart other version of the linphone-iphone sources. The changes affecting exosip or linphone core libraries are made over this version, that is recompiled after the changes by executing 'make clean && make all' from submodules/build. 

Once this recompilation has finished, we substitute the 'submodules' and 'linphone-sdk' folders in the first version with the recompiled ones from the second one.

We're not sure if this is the smartest way in order to apply this changes, but it works for us.

Regards

2012/10/3 Shu-Hsuan Lin <address@hidden>
How do you compile after making those changes?
I tried compiling with the same make command to compile whole project, but
doesn't seem to work.

Thanks,


-----Original Message-----
From: linphone-developers-bounces+s.lin=address@hidden
[mailto:linphone-developers-bounces+s.lin=address@hidden] On Behalf
Of address@hidden
Sent: Tuesday, October 02, 2012 12:36 AM
To: address@hidden
Subject: Linphone-developers Digest, Vol 116, Issue 2

Send Linphone-developers mailing list submissions to
        address@hidden

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.nongnu.org/mailman/listinfo/linphone-developers
or, via email, send a message with subject or body 'help' to
        address@hidden

You can reach the person managing the list at
        address@hidden

When replying, please edit your Subject line so it is more specific than
"Re: Contents of Linphone-developers digest..."


Today's Topics:

   1. Re: Problem: ?eXosip: no ACK received during 20s: dropping
      call? (IVAN FERNANDEZ)


----------------------------------------------------------------------

Message: 1
Date: Tue, 2 Oct 2012 09:36:16 +0200
From: IVAN FERNANDEZ <address@hidden>
To: address@hidden
Subject: Re: [Linphone-developers] Problem: ?eXosip: no ACK received
        during 20s: dropping call?
Message-ID:
        <address@hidden>
Content-Type: text/plain; charset="windows-1252"

We've had to add some lines more to the solution code to prevent certain
problem when the '200 OK' message doesn't include any contact field.

Here is the final solution:

*...

SSL *ssl = NULL;



   //*************************************************

   //the modification starts here:

char *msg;

char *contact;

char *newContact;

osip_contact_t *c;

char *result = NULL;

 //we get the message

osip_message_to_str(sip, &message, &length);

 //check if a 200OK message

msg = strtok(message, "\n");

if (strncmp(msg, "SIP/2.0 200 OK",14) == 0){

osip_contact_init(&c);

osip_message_get_contact(sip, 0, &c);


//check if 'contact' field exists
** if(c){**

osip_contact_to_str(c, &contact);

 //check if the ?contact? includes the ?transport? sufix

result = strstr(contact, "transport");

if (result == NULL){

contact[strlen(contact) - 1] = '\0';

newContact = (char *) osip_malloc(strlen(contact) + 16);

sprintf(newContact,"%s;transport=TLS>", contact);

/*OSIP_TRACE(osip_trace(__FILE__, __LINE__, OSIP_ERROR, NULL,

             "New Contact: %s\n", newContact));*/

 //update the ?contact? field to include the missing ?transport? sufix

osip_list_remove(&sip->contacts, 0);

osip_message_set_contact(sip, newContact);

}

}

}

   //the modification ends here

   //******************************************************************

if (host == NULL) {

?
*



2012/10/1 IVAN FERNANDEZ <address@hidden>

> *Hi all,
>
> Finally, after a deeper analysis of the issue, we?ve found a better
> solution for this problem, that looks a linphone issue after all.
>
> The analysis has revealed that in the described scenary,  Linphone
> isn?t forming correctly the ?SIP 200 OK? message that notifies the
> call
> acceptance: the ?contact? field must include the ?transport=tls? sufix
> but the packet that Linphone is generating doesn?t includes this
> sufix, what is causing a port mismatch that causes not only this problem
but any more.
>
> In order to solve this issue we?ve had to modified the eXtl_tls.c file
> for appending this ?transport=tls? sufix to the contact field in the
> following way (within tls_tl_send_message function):*
> *
> ...
>
> SSL *ssl = NULL;
>
>
>
>    //*************************************************
>
>    //the modification starts here:
>
>  char *msg;
>
> char *contact;
>
> char *newContact;
>
> osip_contact_t *c;
>
> char *result = NULL;
>
>  //we get the message
>
> osip_message_to_str(sip, &message, &length);
>
>  //check if a 200OK message
>
> msg = strtok(message, "\n");
>
> if (strncmp(msg, "SIP/2.0 200 OK",14) == 0){
>
>  osip_contact_init(&c);
>
>  osip_message_get_contact(sip, 0, &c);
>
>  osip_contact_to_str(c, &contact);
>
>   //check if the ?contact? includes the ?transport? sufix
>
>  result = strstr(contact, "transport");
>
>  if (result == NULL){
>
>  contact[strlen(contact) - 1] = '\0';
>
>  newContact = (char *) osip_malloc(strlen(contact) + 16);
>
>  sprintf(newContact,"%s;transport=TLS>", contact);
>
>  /*OSIP_TRACE(osip_trace(__FILE__, __LINE__, OSIP_ERROR, NULL,
>
>             "New Contact: %s\n", newContact));*/
>
>    //update the ?contact? field to include the missing ?transport?
> sufix
>
>  osip_list_remove(&sip->contacts, 0);
>
>  osip_message_set_contact(sip, newContact);
>
>  }
>
> }
>
>    //the modification ends here
>
>
> //******************************************************************
>
> if (host == NULL) {
>
> ?
>
> Any comments about this issue/solution?
>
> Thanks and regards...*
>
>
> 2012/8/23 Ramon Poca <address@hidden>
>
>> Then the problem is in the SIP routing setup, not on Linphone.
>> Breaking Linphone to fix whatever your Asterisk+opensips is doing
>> wrong seems an ugly fix.
>>
>> If the dialog is not ACKed after a certain timeout, the UA should
>> drop the call. You should look at your opensips/asterisk logs to
>> check if it's being dropped.
>>
>>
>> > We use opensips as proxy to register the softphones and this
>> > opensips routes the call between the softphones throught an asterisk
server.
>> > The problem with no ACK only appears if the called terminal is
>> registered
>> > with TLS transport. Despite this lost ACK, the call is coursed
>> > without other problems...
>> > Regards
>> > 2012/8/22 Ramon Poca <address@hidden>
>> > > If no ACK is being received there might be some trouble in the
>> > > call
>> setup
>> > > (e.g. the SIP proxy is dropping it). What is the exact scenario?
>> > >
>> > > Ramon Poca - address@hidden
>> > >
>> > >
>>
>>
>> Ramon Poca - address@hidden
>>
>> _______________________________________________
>> Linphone-developers mailing list
>> address@hidden
>> https://lists.nongnu.org/mailman/listinfo/linphone-developers
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.nongnu.org/archive/html/linphone-developers/attachments/201210
02/0716e965/attachment.html
>

------------------------------

_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone-developers


End of Linphone-developers Digest, Vol 116, Issue 2
***************************************************


_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone-developers


reply via email to

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