[asterisk-bugs] [JIRA] (ASTERISK-22417) RTP ports left open after using click to dial application

Patrick Beaumont (JIRA) noreply at issues.asterisk.org
Fri Sep 27 03:13:03 CDT 2013


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

Patrick Beaumont commented on ASTERISK-22417:
---------------------------------------------

Hi Rusty.

Apologies for the delay in getting back to you. Things are a bit hectic at work.

The good news is that I haven't noticed any side effects from my crude patch and the customer is no longer reporting any problems. I've rolled the patch out to the rest of my Asterisk servers (about 50 of them) and have not seen any other side effects. That patch is essentially:
channels/chan_sip.c
{noformat}
*! \brief Execute destruction of SIP dialog structure, release memory */
void __sip_destroy(struct sip_pvt *p, int lockowner, int lockdialoglist)
{
        struct sip_request *req;
        //extra call to stop_media_flows ensures the rtp ports are released
        stop_media_flows(p);

        /* Destroy Session-Timers if allocated */
        if (p->stimer) {
                p->stimer->quit_flag = 1;
                stop_session_timer(p);

{noformat}

I must stress that it is a fairly crude fix. The real issue seems to be that stop_media_flows isn't called earlier in the channels life cycle but I haven't really had the time to properly track down why.
                
> RTP ports left open after using click to dial application
> ---------------------------------------------------------
>
>                 Key: ASTERISK-22417
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-22417
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General
>    Affects Versions: 11.4.0
>         Environment: Linux 3.2.0-40-virtual #64-Ubuntu SMP i686 i686 i386 GNU/Linux, Ubuntu 12.04
>            Reporter: Patrick Beaumont
>            Assignee: Patrick Beaumont
>
> Ports in use at the start
> {noformat}
> root at CN1:~# netstat -tunap
> Active Internet connections (servers and established)
> Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
> tcp        0      0 0.0.0.0:5038            0.0.0.0:*               LISTEN      428/asterisk    
> tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      313/lighttpd    
> tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      129/sshd        
> tcp        0      0 10.0.3.101:22           10.0.3.1:60572          ESTABLISHED 339/sshd: steve [pr
> tcp6       0      0 :::22                   :::*                    LISTEN      129/sshd        
> udp        0      0 0.0.0.0:30000           0.0.0.0:*                           428/asterisk    
> udp        0      0 10.0.3.101:30001        0.0.0.0:*                           428/asterisk
> {noformat}
> First I initiate a call using dialer.exe through the application Siptapi.
> My desk phone rings.
> I pick it up.
> My mobile phone then rings (the destination I set in dialer.exe).
> I answer on my mobile phone.
> I place the call on hold using my desk phone.
> I initiate another call to my mobile using dialer.exe through the application Siptapi.
> My desk phone indicates I have a call waiting.
> I hang up the call I have on hold and my desk phone starts ringing.
> I pick up my desk phone and my mobile phone starts ringing.
> I answer the call on my mobile.
> I hang up the call on my mobile.
> I hang up my desk phone.
> Ports in use at the end:
> {noformat}
> root at CN1:~# netstat -tunap
> Active Internet connections (servers and established)
> Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
> tcp        0      0 0.0.0.0:5038            0.0.0.0:*               LISTEN      428/asterisk    
> tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      313/lighttpd    
> tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      129/sshd        
> tcp        0      0 10.0.3.101:22           10.0.3.1:60572          ESTABLISHED 339/sshd: steve [pr
> tcp6       0      0 :::22                   :::*                    LISTEN      129/sshd        
> udp        0      0 0.0.0.0:30000           0.0.0.0:*                           428/asterisk    
> udp        0      0 10.0.3.101:30001        0.0.0.0:*                           428/asterisk    
> udp        0      0 10.0.3.101:30034        0.0.0.0:*                           428/asterisk    
> udp        0      0 10.0.3.101:30035        0.0.0.0:*                           428/asterisk  
> {noformat}
> This is very repeatable and if performed enough times Asterisk will complain about no longing being able to allocate RTP ports and will start rejecting calls.
> Performing a core restart appears to be the only way to release the ports.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list