[asterisk-dev] SIP NOTIFY failure, Asterisk 1.8.10-rc3

Kinsey Moore kmoore at digium.com
Thu Mar 1 08:37:11 CST 2012


On 03/01/2012 08:16 AM, Karsten Wemheuer wrote:
> Hi,
> Am Donnerstag, den 01.03.2012, 07:47 -0600 schrieb Kinsey Moore:
>> On 03/01/2012 07:33 AM, Karsten Wemheuer wrote:
>>> Hi,
>>>
>>> Am Donnerstag, den 01.03.2012, 07:08 -0600 schrieb Kevin P. Fleming:
>>>> On 03/01/2012 07:06 AM, Karsten Wemheuer wrote:
>>>>> Hi,
>>>>>
>>>>> maybe I found a bug or I am doing something wrong. I use the following
>>>>> scenario: SIP-Phones are registered at OpenSIPS which is installed on
>>>>> the same machine than asterisk. SIP messages are sent from asterisk via
>>>>> opensips to the phones. Asterisk is on UDP 25060, opensips uses udp
>>>>> 5060. All is working fine.
>>>>>
>>>>> When I trigger asterisk to sent out a SIP NOTIFY e.g. to resync a Snom
>>>>> phone configuration, the following is happening (shortened to the
>>>>> relevant parts):
>>> ....
>>>
>>>>> I tracked down this in the code and found out, that the statement
>>>>>            ast_sockaddr_stringify_remote(&p->ourip)
>>>>> returns the weird port number of the headers (both, Via and Contact
>>>>> header).
>>>>>
>>>>> I think, "ourip" is not initialized correctly. It should lead to the
>>>>> string (in out case) 192.168.10.72:25060 and not 192.168.10.72:0.
>>>>>
>>>>> Is it a bug or do I something wrong? Should I open a issue on jira?
>>>> You reported this yesterday on the asterisk-users list, and it's being
>>>> worked on already.
>>> Yes, I reported it, but as I did not get any response, I thought nobody
>>> on users list is interested in this.
>>>
>>> If I can do anything (debugging, coding etc), let me know.
>>>
>>> Karsten
>>>
>> I spent the larger part of yesterday working on this and tracking down
>> the changes beetween 1.6.2 and 1.8 that caused it.  I have it reproduced
>> in-house and a confirmed fix (from another reporter) that should go into
>> 1.8, 10, and trunk in the next hour or so.
>>
>> Kinsey
> Thank You for the information. If I'd knew someone working on it, I
> won't post on dev list.
>
> FYI: What I found out so far: In function reload_config() in chan_sip.c
> the value of internip gets initialized with bindaddr. At this point it
> seems to be correct. Right after the call to function ast_find_ourip()
> the value of internip is setup with port=0.
>
> Karsten
Yes, this is the same conclusion I came to.  When ast_find_ourip was 
changed to use ast_sockaddr, it was altered to use resolve_first() 
internally which does not preserve the port as the previous method did.  
Thanks for the offer of help, by the way.  The fix is now committed to 
1.8, 10, and trunk.

Kinsey



More information about the asterisk-dev mailing list