CHEN XUEQIN
2010-Mar-19 06:50 UTC
[asterisk-users] rtp connection remained when call busy using agi for call control
Hi there: I compiled asterisk 1.6.2.6 and install it on my Ubuntu OS. I run a perl fastagi for call control. Two SIP ua register asterisk, here as UA_1, UA_2. The problem can be reproduced in following step. 1) SIP UA_1 and UA_2 successfully register to asterisk 2) UA_1 call UA_2, send invite to asterisk 3) asterisk execute a dialpan, as following exten => _X.,1,Agi(agi://127.0.0.1/dial_handler) exten => _x.,1,Hangup dial_handler is a perl FastAGI server, it just query some variable, call SetAMAFlags application, finally call Dial application for invite UA_2 3) UA_2 ring, but reject the call by send 486 busy 4) AGI call hangup then exit 5) call end, use netstat find two udp port used by asterisk like these netstat -anup udp 0 0 0.0.0.0:14634 0.0.0.0:* 4219/asterisk udp 0 0 0.0.0.0:14635 0.0.0.0:* 4219/asterisk It will remain forever, unless restart asterisk. For information, 1) UA_1 call UA_2 directly by dial application, rtp connection will be destroyed normal. 2) UA_1 call UA_2 also by AGI, if UA_2 answer, then hangup, rtp connection will also be destroyed normal. Why the rtp connection remained when UA_2 reject the call? If I use asterisk for many calls, the rtp connection resource will be occupied to much. Anything wrong in my AGI program or dialplan ? Thanks in advance. Regards, Chen