[asterisk-bugs] [JIRA] (ASTERISK-24464) ICE Candidates Gathering causes abort in pjproject code due to too small network interface array size

Andreas Steinmetz (JIRA) noreply at issues.asterisk.org
Sun Nov 2 13:54:28 CST 2014


    [ https://issues.asterisk.org/jira/browse/ASTERISK-24464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=223226#comment-223226 ] 

Andreas Steinmetz edited comment on ASTERISK-24464 at 11/2/14 1:53 PM:
-----------------------------------------------------------------------

It seems, just adjusting the array size isn't enough. The SDP sent by Asterisk seems to be limited somewhere else to 16. This results in the SDP containing only "a=candidate:XXXXXXXX 1 UDP" (note the " 1 ") lines and audio setup fails (no audio in call).
With a dirty hack to limit the amount of addresses to just one IPv4 and IPv6 address the SDP then looks like:

a=candidate:H76f0ae12 1 UDP 2130706431 [fda8:de2d:e95f:4811::1] 6054 typ host

a=candidate:Ha010a01 1 UDP 2130706431 10.1.10.1 6054 typ host

a=candidate:H76f0ae12 2 UDP 2130706430 [fda8:de2d:e95f:4811::1] 6055 typ host

a=candidate:Ha010a01 2 UDP 2130706430 10.1.10.1 6055 typ host

Now audio setup succeeds (two way audio).

Note that in the first case (no audio) Asterisk then seems to hang internally:

1. All peers get unregistered, reregistrations fail
2. Lots of CLI commands just do nothing anymore
3. Asterisk cannot be killed by SIGTERM, needs SIGKILL

To reproduce this just configure sufficient interfaces. Use e.g. VLANs not connected anywhere. SIPML5 will do as WebRTC client using Firefox 33.0 on Linux.



was (Author: anstein):
It seems, just adjusting the array size isn't enough. The SDP sent by Asterisk seems to be limited somewhere else to 16. This results in the SDP containing only "a=candidate:XXXXXXXX 1 UDP" (note the " 1 ") lines and audio setup fails (no audio in call).
With a dirty hack to limit the amount of addresses to just one IPv4 and IPv6 address the SDP then looks like:

a=candidate:H76f0ae12 1 UDP 2130706431 [fda8:de2d:e95f:4811::1] 6054 typ host

a=candidate:Ha010a01 1 UDP 2130706431 10.1.10.1 6054 typ host

a=candidate:H76f0ae12 2 UDP 2130706430 [fda8:de2d:e95f:4811::1] 6055 typ host

a=candidate:Ha010a01 2 UDP 2130706430 10.1.10.1 6055 typ host

Now audio setup succeeds (two way audio).

Note that in the first case (no audio) Asterisk then seems to hang internally:

1. All peers get unregistered, reregistrations fail
2. Lots of CLI commands just do nothing anymore
3. Asterisk cannot be killed by SIGTERM, needs SIGKILL

To reproduce this just configure sufficient interfaces. Use e.g. VLANs not connected anywhere. SIPML5 will do as WebRTC client.


> ICE Candidates Gathering causes abort in pjproject code due to too small network interface array size
> -----------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-24464
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24464
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_rtp_asterisk
>    Affects Versions: 11.13.0
>         Environment: Linux
>            Reporter: Andreas Steinmetz
>            Assignee: Andreas Steinmetz
>         Attachments: ice-candidates-length.patch
>
>
> The array size for network gathering for the ice candidates list  is too small (16). This can cause the required candidates not to be included which lateron triggers a pjproject abort.
> Thinking of VLANs and that every network interface has typically at least two addresses an array size of 64 seems to be more reasonable.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list