Wednesday, November 23, 2016

Quick'n'dirty answer on Asterisk "Who hung up"?

Really fast and dirty solution for answer "Who put handset first?" on Asterisk. Idea based on "g" option in Dial, that works in a case if callee hangs up and not, if caller.

exten => _X.,1,Dial(SIP/Trunk/${EXTEN},,g)
 same => n,Set(HANGUP_CALLEE=True)

exten => h,1,GoToIf($["x${HANGUP_CALLEE}"="xTrue"]?hangup-callee)
 same => n,Set(CDR(userfield)=HANGUP_CALLER)
 same => n,GoTo(end)
 same => n(hangup-callee),Set(CDR(userfield)=HANGUP_CALLEE)
 same => n(end),NoOp

And in CDR in userfield we will get who hung up first, caller or callee.

Monday, November 14, 2016

Simple command to debug AMI without any client

 tcpdump -i lo -nqtttt -s 0 -A  '((src port 5038) or (dst port 5038))'