Summary:ASTERISK-12536: bad contact port keeps carriers from taking calls
Reporter:Private Name (falves11)Labels:
Date Opened:2008-08-07 13:50:56Date Closed:2008-08-14 10:23:36
Versions:Frequency of
Environment:Attachments:( 0) 13255-socketport.diff
( 1) intsize.c
( 2) selway-invalid-port.pcap
( 3) sip_bug.txt
Description:Attached is a packet capture of a test call. Please take not that the port in both the From and the Contact headers is 0, which is why the calls are being rejected.


seep attached capture file
Comments:By: snuffy (snuffy) 2008-08-07 16:08:24

could you provide a 'sip debug' of this and not just a pcap.
we need to know what asterisk is doing internally to have a better idea of where the issue might be

By: Private Name (falves11) 2008-08-08 18:20:21

I am caught between a rock and a hard place. Version 1.4 has an issue with CDR_ODBC. After a few hours the module existe memory, without crashing, or it is there loaded but stops writing the cdr to the database. I need to restart asterisk and it goes back to work. But Trunk has this issue that 1/2 of my carriers do not accept calls where port field in the "from" part of the INVITE has a zero. Please help.

By: Private Name (falves11) 2008-08-08 19:57:08

I deteced after a painfil regression analisys, that thast Trunk revision without the ":0" in the 'From: field of the INVIT is 135068. The next revision has the bug.

By: Private Name (falves11) 2008-08-08 20:10:55

But the revision 135068 blows up when compiled with "malloc debug", as per bug ASTERISK-12490. So It would be ideal if we could get the curent version fixed and I don't have to go back so many revisions.

By: Sean Bright (seanbright) 2008-08-12 13:23:04

The specific revision which broke this was 135126.  Assigning to Corydon.

By: Tilghman Lesher (tilghman) 2008-08-12 16:35:20

My part in that issue was simply in committing a patch, following the review of another person.  I am not in a position to review the change otherwise.

By: Russell Bryant (russell) 2008-08-12 17:50:28

If that revision introduced a regression, then just revert it and reopen issue ASTERISK-11304.

By: Jason Parker (jparker) 2008-08-12 18:46:36

I have some thoughts on this - I'll look into it tomorrow.

I think it may be an integer overflow in create_addr (and various other places) relating to int being signed.  The sscanf that was added there may have triggered an existing bug.

By: Jason Parker (jparker) 2008-08-13 10:48:49

Can you compile/run this small test app and put the output up here?

gcc intsize.c -o intsize; chmod +x intsize; ./intsize

By: Jason Parker (jparker) 2008-08-13 10:57:33

To clarify - this needs to be compiled/run on the system that is experiencing this issue.

By: Jason Parker (jparker) 2008-08-13 14:17:07

Forget the intsize thing.  Try this patch.

By: Private Name (falves11) 2008-08-13 23:55:26

It works fine, please merge before something happens. And thanks.

By: Digium Subversion (svnbot) 2008-08-14 10:23:30

Repository: asterisk
Revision: 137812

U   trunk/channels/chan_sip.c

r137812 | qwell | 2008-08-14 10:23:29 -0500 (Thu, 14 Aug 2008) | 8 lines

Make sure we set the socket port, so we don't try to use <ip address>:0.

(closes issue ASTERISK-12536)
Reported by: falves11
     13255-socketport.diff uploaded by qwell (license 4)
Tested by: falves11