Random Call Drops

I have been working on putting an Asterisk server into production but am experiencing a huge issue with random calls being dropped. My situation is a little unique as I am having calls come in from PRIs to Cisco Call Manager which is then forwarding those calls to Asterisk via a Sip Trunk. Asterisk then queues the call and sends it back to an agent extension on Call Manager. The goal was to use Asterisk for call queuing but keep Cisco Call Manager as our main PBX since all our phones are on SCCP. We have up to 40 concurrent agents handling 12 or more concurrent calls.

Calls have been dropping mid conversation and crosstalk is occuring. This is happening on approximately 25% of all calls. Please Help!!

Below is relevant parts of my extensions.conf

;dial back to CCM
exten = _3XXX,1,Macro(dialout-callmanager,${EXTEN})
exten = _2XXX,1,Macro(dialout-callmanager,${EXTEN})
exten = 670000,1,Goto(CSIVR|s|1)
exten = 330,1,Goto(CSEvent|330|1)
exten = 331,1,Goto(CSRFP|331|1)
exten = 332,1,Goto(CSSURVEY|332|1)

exten => s,1,Dial(SIP/${ARG1}@callman01)
exten => s,1,Dial(SIP/${ARG1}@callman02)
exten => s,2,Hangup
exten => s,102,Congestion

comment = CS Support
alias_exten = 670000
exten = s,1,Answer
exten = s,2,Background(record/Attendant)
exten = 1,1,Goto(default|330|1)
exten = 3,1,Goto(default|332|1)
exten = 2,1,Goto(default|331|1)
exten = s,3,WaitExten(6)
exten = s,4,Goto(default|670000|1)
exten = 4,1,Playback(invalid)
exten = 4,2,Goto(default|670000|1)
exten = 5,1,Playback(invalid)
exten = 5,2,Goto(default|670000|1)
exten = 6,1,Playback(invalid)
exten = 6,2,Goto(default|670000|1)
exten = 7,1,Playback(invalid)
exten = 7,2,Goto(default|670000|1)
exten = 8,1,Playback(invalid)
exten = 8,2,Goto(default|670000|1)
exten = 9,1,Playback(invalid)
exten = 9,2,Goto(default|670000|1)
exten = 0,1,Playback(invalid)
exten = 0,2,Goto(default|670000|1)
exten = *,1,Playback(invalid)
exten = *,2,Goto(default|670000|1)
exten = #,1,Playback(invalid)
exten = #,2,Goto(default|670000|1)

exten = 330,1,Answer
exten = 330,2,GotoIfTime(0:00-8:30|sat||?default,3670,1)
exten = 330,3,GotoIfTime(17:30-23:59|sat||?default,3670,1)
exten = 330,4,GotoIfTime(21:00-23:59|fri||?default,3670,1)
exten = 330,5,GotoIfTime(0:00-8:30|sun||?default,3670,1)
exten = 330,6,GotoIfTime(17:30-21:00|sun||?default,3670,1)
exten = 330,7,Set(CALLERID(name)=CS Event Queue)
exten = 330,8,Playback(record/PleaseWait3final)
exten = 330,9,Queue(670001|t|||120)
exten = 330,10,Queue(670002|t|||120)
exten = 330,11,Queue(670003|t|||120)
exten = 330,12,Queue(670004|t|||60)
exten = 330,13,Queue(670005|t|||60)
exten = 330,14,Queue(670005|t|||60)
exten = 330,15,Queue(670006|t|||60)
exten = 330,16,Queue(670007|t|||15)
exten = 330,17,Goto(default|3670|1)


You need to either run wireshark with the switch port asterisk is connected to mirrored or use tcpdump then open the .cap file with wireshark to see whoes dropping the call.


What do you mean by cross-talk? Cross talk in the normal sense can only happen on analogue systems.

If this has to be escalated as a bug report, you will need the output from sip set debug, or at least relevant sip show history output, so you should consider using that, rather than network monitor output.

The reason I use wireshark for debugging intervendor sip issues is that you are looking at the actual sip packets as they traverse the network so will show out of order packets etc. Also wireshark has very good decoding and graphing of SIP calls as well as the abilty to record the RTP stream and play it back.
SIP debug on Asterisk is fine, but for the whole picture I have found over the last 13 years of intervendor voip work, ethereal and now wireshark give a full picture of the problems encountered as you still see the same info as you get on a sip debug trace but also get to see what else is going on.