Page 1 of 1

How can I determine which carrier placed call

PostPosted: Tue Mar 21, 2017 11:10 am
by perlmutr
I am running a press 1 type campaign. I have 2 carriers for my outbound traffic and i round robin between the carriers as well as doing a failover on congestion, etc. In addition one of the carriers has 2 ip's and i round robin between those. I also have a carrier for my conversational/bridge traffic (on press 1) with 2 ip's that i round robin between. From what report (or file) can i determine where the call was actually routed?

my dialplan is below.... prefix 9 is outbound traffic, prefix 8 is my bridge traffic

Globals

MAX_PROVIDERS = 2
sip_provider = 1
Carrier2_bridge = 1
Carrier2_dialer = 1


;
; dial out on provider 1 and set provider 2
;
exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _91NXXNXXXXXX,n,GotoIf($[${sip_provider} = 2]?30)
exten => _91NXXNXXXXXX,n,Set(GLOBAL(sip_provider)=2)
exten => _91NXXNXXXXXX,n,Dial(SIP/${EXTEN:1}@carrier1,,To)
exten => _91NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?40)
exten => _91NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?40)
exten => _91NXXNXXXXXX,n,Hangup
;
; dial out on provider 2 and set provider 1
;
exten => _91NXXNXXXXXX,30,Set(GLOBAL(sip_provider)=1)
;
; round robin provider 2 dialer servers dial server 1
;
exten => _91NXXNXXXXXX,n,GotoIf($[${Carrier2_dialer} = 2]?35)
exten => _91NXXNXXXXXX,n,Set(GLOBAL(Carrier2_dialer)=2)
exten => _91NXXNXXXXXX,n,Dial(SIP/${EXTEN:1}@Carrier2,,To)
exten => _91NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?50)
exten => _91NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?50)
exten => _91NXXNXXXXXX,n,Hangup
;
; round robin provider 2 dialer servers dial server 2
;
exten => _91NXXNXXXXXX,35,Set(GLOBAL(Carrier2_dialer)=1)
exten => _91NXXNXXXXXX,n,Dial(SIP/${EXTEN:}@Carrier2Alt,,To)
exten => _91NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?50)
exten => _91NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?50)
exten => _91NXXNXXXXXX,n,Hangup
;
; congestion on 1 try provider 2
;
exten => _91NXXNXXXXXX,40, Dial(SIP/${EXTEN:1}@Carrier2,,To)
exten => _91NXXNXXXXXX,n,Noop("Tried failover to Carrier2")
exten => _91NXXNXXXXXX,n,Hangup
;
; congestion on 2 try provider 1
;
exten => _91NXXNXXXXXX,50, Dial(SIP/${EXTEN:1}@Carrier1,,To)
exten => _91NXXNXXXXXX,n,Noop("Tried failover to Carrier1")
exten => _91NXXNXXXXXX,n,Hangup
;
; Bridge calls go to Provider 2 unless congestion then provider 1 then provider 2 outbound
;
exten => _81NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _81NXXNXXXXXX,n,AGI(agi-NVA_recording.agi,BOTH---TRANSFER---Y---Y---Y)
;
; round robin provider 2 servers dial server 1
;
exten => _81NXXNXXXXXX,n,GotoIf($[${Carrier2_bridge} = 2]?60)
exten => _81NXXNXXXXXX,n,Set(GLOBAL(Carrier2_bridge)=2)
exten => _81NXXNXXXXXX,n,Dial(SIP/${EXTEN:1}@BridgeCall,,To)
exten => _81NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?70)
exten => _81NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?70)
exten => _81NXXNXXXXXX,n,Hangup
;
; round robin provider 2 servers dial server 2
;
exten => _81NXXNXXXXXX,60,Set(GLOBAL(Carrier2_bridge)=1)
exten => _81NXXNXXXXXX,n,Dial(SIP/${EXTEN:1}@BridgeCallAlt,,To)
exten => _81NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?70)
exten => _81NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?70)
exten => _81NXXNXXXXXX,n,Hangup
;
; congestion on 2 try provider 1
;
exten => _81NXXNXXXXXX,70,Noop("Try failover to carrier1")
exten => _81NXXNXXXXXX,n, Dial(SIP/${EXTEN:1}@carrier1,,To)
exten => _81NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?80)
exten => _81NXXNXXXXXX,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?80)
exten => _81NXXNXXXXXX,n,Hangup
;
; congestion on 1 try provider 2 dialer route
;
exten => _81NXXNXXXXXX,80,Noop("Try failover to carrier2")
exten => _81NXXNXXXXXX,n, Dial(SIP/${EXTEN:1}@Carrier2,,To)
exten => _81NXXNXXXXXX,n,Hangup




Vicidial Version 2.12b0.5 SVN 2564 DB schema version 1462 asterisk version 11.22.0-vici

3 machine cluster
Database machine, Dialer 1 and dialer 2.. both dialers have 2 nic's.. one internal and 1 external for traffic.

Re: How can I determine which carrier placed call

PostPosted: Tue Mar 21, 2017 11:32 am
by mflorell
Have you looked at the Carrier Log Report or the Hangup Cause Report?

If those won't work, you may have to resort to looking at the Asterisk CLI screenlog, because that's a VERY complex dialplan you've got there.